• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Başka sayfadan sadece dolu hücreleri almak

mustafa

Altın Üye
Katılım
8 Eylül 2004
Mesajlar
245
Excel Vers. ve Dili
Excel 365 - Türkçe
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.
 
Makro ile çözüm olmaz mı? İlla fonksiyonla mı çözüm istiyorsunuz, makro ile çok kolay olur.
 
Sayın mustafa,

istediğiniz gibi fonksiyonlarla yaptım, dosya ektedir.
Ama benden önce makro ile çözüm bulunmuş :)
 
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ı.
 
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
 
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.
 
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.
 
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
 
Sayın veyselemre,

Belki fazla oluyorum fakat yine yapamadım. Belgeyi tekrar gönderiyorum. Bakabilirseniz memnun olurum.
 
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.
 
Geri
Üst