Başka sayfadan sadece dolu hücreleri almak

mustafa

Altın Üye
Katılım
8 Eylül 2004
Mesajlar
205
Excel Vers. ve Dili
Excel 365 - Türkçe
Altın Üyelik Bitiş Tarihi
23-12-2024
Ekyeki belgede Sayfa2 de Ekdersine Hayır dediğim ya da Boş bıraktığım personele sıra numarası verilmiyor.

İstediğim, Sayfa1 e formülle Sayfa2 den personel alırken sıra numarası boş olanların alınmaması. Hangi formülle yapılacağını bulamadım.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Makro ile çözüm olmaz mı? İlla fonksiyonla mı çözüm istiyorsunuz, makro ile çok kolay olur.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,369
Excel Vers. ve Dili
Ofis 365 Türkçe
Sayın mustafa,

istediğiniz gibi fonksiyonlarla yaptım, dosya ektedir.
Ama benden önce makro ile çözüm bulunmuş :)
 

mustafa

Altın Üye
Katılım
8 Eylül 2004
Mesajlar
205
Excel Vers. ve Dili
Excel 365 - Türkçe
Altın Üyelik Bitiş Tarihi
23-12-2024
veyselemre' Alıntı:
Makro ile çözüm olmaz mı? İlla fonksiyonla mı çözüm istiyorsunuz, makro ile çok kolay olur.
Ã?ncelikle ilgi ve yardımınız için teşekkür ederim. Makro ile aktarmaktan ziyade kodunuzu ağağıdaki haliyle sayfanın koduna yazdım ve çalıştı. Mümkünse kodlarınızın açıklamasını yazarsanız çok memnun olacağım.
Kod:
Private Sub Worksheet_Activate()
Set sh1 = Sheets("sayfa1")
Set sh2 = Sheets("sayfa2")

sh1.Range("c4:e65536").ClearContents
c = 3
For x = 7 To sh2.[d65536].End(3).Row
If sh2.Cells(x, 3) <> "" Then
    c = c + 1
    For t = 3 To 5
    sh1.Cells(c, t) = sh2.Cells(x, t)
    Next
End If
Next

End Sub

Necdet_Yesertener' Alıntı:
Sayın mustafa,

istediğiniz gibi fonksiyonlarla yaptım, dosya ektedir.
Size de ilgi ve yardımınız için teşekkür ederim. Sizin yaptığınızda da keşke makrolu çözümde olduğu gibi arada hiç boş satır kalmasaydı daha güzel olacaktı.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Private Sub Worksheet_Activate()
Set sh1 = Sheets("sayfa1") 'sh1 değişkeni sayfa1 olarak tanıtılıyor
Set sh2 = Sheets("sayfa2")

sh1.Range("c4:e65536").ClearContents ' sayfa1 c4:e65536 aralığının içeriği temizleniyor
c = 3 ' c 3 olarak atanıyor sayfa1 de sayfa2 den aktarılacak dolu bilgilerin yazdırılacağı satır numarası olarak kullanılacak
For x = 7 To sh2.[d65536].End(3).Row 'x 7 den sayfa2 nin son dolu satırına kadar döngü
If sh2.Cells(x, 3) <> "" Then 'döngü içerisinde sayfa2 de 3.sütun boş değilse
c = c + 1 '3.sütun boş değilse c yi bir artır
For t = 3 To 5
sh1.Cells(c, t) = sh2.Cells(x, t) 'sayfa1 de c satır t sütuna yazdır
Next
End If
Next

End Sub
 

mustafa

Altın Üye
Katılım
8 Eylül 2004
Mesajlar
205
Excel Vers. ve Dili
Excel 365 - Türkçe
Altın Üyelik Bitiş Tarihi
23-12-2024
Sayın veyselemre,

Açıklama için teşekkür ederim. Mantığını anladım galiba. Galiba diyorum çünkü epeyce denedim. Fakat sonradan bir aksilik çıkmasın diye galiba çekincesini koydum.
 

mustafa

Altın Üye
Katılım
8 Eylül 2004
Mesajlar
205
Excel Vers. ve Dili
Excel 365 - Türkçe
Altın Üyelik Bitiş Tarihi
23-12-2024
Sayın veyselemre,

Az önce bahsettiğim galiba maalesef gerçekleşti. Sayfa2 deki verileri Sayfa1 de ki C3 yerine Q10 a aktarmak istedim ama yapamadım.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
doğru anladıysam şu şekilde olması lazım, denemedim

Private Sub Worksheet_Activate()
Set sh1 = Sheets("sayfa1")
Set sh2 = Sheets("sayfa2")

sh1.Range("c4:e65536").ClearContents
c = 9
For x = 7 To sh2.[d65536].End(3).Row
If sh2.Cells(x, 3) <> "" Then
c = c + 1
For t = 17 To 19
sh1.Cells(c, t) = sh2.Cells(x, t)
Next
End If
Next

End Sub
 

mustafa

Altın Üye
Katılım
8 Eylül 2004
Mesajlar
205
Excel Vers. ve Dili
Excel 365 - Türkçe
Altın Üyelik Bitiş Tarihi
23-12-2024
Sayın veyselemre,

Belki fazla oluyorum fakat yine yapamadım. Belgeyi tekrar gönderiyorum. Bakabilirseniz memnun olurum.
 

mustafa

Altın Üye
Katılım
8 Eylül 2004
Mesajlar
205
Excel Vers. ve Dili
Excel 365 - Türkçe
Altın Üyelik Bitiş Tarihi
23-12-2024
Sayın veyselemre, size baya zahmet verdim fakat çok güzel bir çalışma oldu. İlgi ve yardımınız için teşekkür ederim.
 
Üst