Sayfalara Aktar Makrosu Hatası

Katılım
20 Ekim 2005
Mesajlar
299
Excel Vers. ve Dili
excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
28/06/2023
Daha önce sitenin yardımıyla oluşturulmuş olan makro da e sütununda bir veya birden fazla satır atlayarak veri girişi yaparak aktar yaptığımda şu hata mesajını alıyorum. "son = Sheets(Sayfa).[B65536].End(3).Row + 1" sarı renge dönüyor birkaç değişiklik yaptım ama hatayı gideremedim .Satır atlayarak veri girişi yapılsa da dağıtımı nasıl yapabiliriz. Makronun tamamı şöye:

Sub Sayfalara_Dağıt()
Dim Sayfa As Variant, i As Long, son As Long, S1 As Worksheet
Set S1 = Sheets("Sayfa6")
For i = 1 To Worksheets.Count
If Sheets(i).Name <> "Sayfa6" Then
Sheets(i).Range("A3:D65536").ClearContents
End If
Next i

For i = 3 To S1.[E65536].End(3).Row
Sayfa = S1.Cells(i, "E")
son = Sheets(Sayfa).[B65536].End(3).Row + 1
Sheets(Sayfa).Cells(son, "A") = son - 2
S1.Range("B" & i & ":C" & i & ":D" & i & ":E" & i & ":F" & i & ":G" & i & ":H" & i).Copy Sheets(Sayfa).Cells(son, "B")
Next i

MsgBox "Aktarım tamamlandı."
End Sub
 
Katılım
15 Aralık 2008
Mesajlar
202
Excel Vers. ve Dili
excel 2010
son = Worksheets("Sayfa6").Range(B65536).End(3).Row + 1 olarak değiştirin satırı
 
Katılım
20 Ekim 2005
Mesajlar
299
Excel Vers. ve Dili
excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
28/06/2023
Sayın muysun35 yardımınız için teşekkür ederim ama sorun yine devam ediyor. Listede E sütununa farklı şube isimleri verilenler olduğu gibi verilmeyenlerde olacak bu nedenle veri girilmeyen satır aralığı değişebilir.(1,3 5,10 da olabilir )Dosyayı ekliyorum
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Boş satırları atlamak için bir IF sorgusu yeterli olacaktır.

C++:
Option Explicit

Sub Sayfalara_Dağıt()
    Dim Sayfa As Variant, i As Long, son As Long, S1 As Worksheet
    
    Set S1 = Sheets("Sayfa6")
    
    For i = 1 To Worksheets.Count
        If Sheets(i).Name <> S1.Name Then
            Sheets(i).Range("A3:D65536").ClearContents
        End If
    Next i
 
    For i = 3 To S1.[E65536].End(3).Row
        If S1.Cells(i, "E") <> "" Then
            Sayfa = S1.Cells(i, "E")
            son = Sheets(Sayfa).[B65536].End(3).Row + 1
            Sheets(Sayfa).Cells(son, "A") = son - 2
            S1.Range("B" & i).Resize(, 7).Copy Sheets(Sayfa).Cells(son, "B")
        End If
    Next i
 
    MsgBox "Aktarım tamamlandı."
End Sub
 
Katılım
15 Aralık 2008
Mesajlar
202
Excel Vers. ve Dili
excel 2010
Üstad çözmüş zaten.. Elinize sağlık Korhan Hocam.
 
Katılım
20 Ekim 2005
Mesajlar
299
Excel Vers. ve Dili
excel 2010 Türkçe
Altın Üyelik Bitiş Tarihi
28/06/2023
Yardımlarınız için teşekkür ederim Sayın muysun35 ve Korhan Ayhan sorun çözüldü. Minnettarım .Elinize yüreğinize sağlık
 
Üst