Tarihe göre ay olarak belirtilen sayfalara ilgili satırları aktarma

Katılım
10 Haziran 2011
Mesajlar
31
Excel Vers. ve Dili
office 2010 PRO
Merhaba arkadaşlar. öncelikli olarak bu siteyi ziyaret ederk gerçekten çok şey öğrendiğimi belirtmek isterim. Burada bilgi paylaşan herkese çok teşekkür ederim. Herkesin emeğine sağlık. Soruma gelince ekteki tabloda örneklediğim gibi ana sayfadaki bu verileri, her bir satırın kendi tarihine göre ilgili aya ait sayfaya tarih sıralı olarak aktarılması gerekli. Bütün konuları inceledim ama ne yaptıysam olmadı. Makro bilgim çok kısıstlı olduğu için sadece kullanılan kodları ufak tefek değiştirmeye çalıştım ama olmadı. Yardımcı olabilirseniz seviinirim. şimdiden çok teşekkür ederim.
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Bu şekilde deneyin.

Kod:
Sub Sayfalara_Dagit()
 
    Dim syf As String, i As Long, j As Long
 
    Application.ScreenUpdating = False
    Sheets("2011 SEVKİYAT").Select
 
    On Error Resume Next
    For i = 3 To Cells(Rows.Count, "A").End(xlUp).Row
        syf = Format(Cells(i, "A"), "mmmm")
        With Sheets(syf)
            j = .Cells(Rows.Count, "A").End(xlUp).Row + 1
            Range("A" & i, "H" & i).Copy .Cells(j, "A")
        End With
    Next i
 
    MsgBox "Aktarım Tamamlandı.", , "excel.web.tr"
 
    Application.ScreenUpdating = True
 
End Sub
.
 
Katılım
10 Haziran 2011
Mesajlar
31
Excel Vers. ve Dili
office 2010 PRO
merhaba,

bu şekilde deneyin.

Kod:
sub sayfalara_dagit()
 
    dim syf as string, i as long, j as long
 
    application.screenupdating = false
    sheets("2011 sevkiyat").select
 
    on error resume next
    for i = 3 to cells(rows.count, "a").end(xlup).row
        syf = format(cells(i, "a"), "mmmm")
        with sheets(syf)
            j = .cells(rows.count, "a").end(xlup).row + 1
            range("a" & i, "h" & i).copy .cells(j, "a")
        end with
    next i
 
    msgbox "aktarım tamamlandı.", , "excel.web.tr"
 
    application.screenupdating = true
 
end sub
.
çok teşekkür ederim ellerinize sağlık ama bunu her yazdığımda kaydetmem gerekiyor ve bir satırı yanlış yazdığımda ana sayfadan silme işlemi yapınca ilgili sayfadaki değer silinmiyor. Bunu nasıl halledebilirim acaba.
 
Katılım
10 Haziran 2011
Mesajlar
31
Excel Vers. ve Dili
office 2010 PRO
Ve her aktarma işleminde önceki aktardığı verileri tekrar aynı sayfaların altına aktarıyor. Anlamadım ki ben :(
 
Katılım
4 Ocak 2010
Mesajlar
2,074
Excel Vers. ve Dili
OFFICE 2007 PRO TR - Win7 X64
Altın Üyelik Bitiş Tarihi
18.06.2019
Merhabalar,


Ömer hocama vermiş oldugu kodlar için teşekkür ederim.

Koda ekleme yaptım.

Koyu renkli yerdir.

Kod:
Sub Sayfalara_Dagit()
 
    Dim syf As String, i As Long, j As Long
 
    Application.ScreenUpdating = False
    Sheets("2011 SEVKİYAT").Select
 
    On Error Resume Next
    For i = 3 To Cells(Rows.Count, "A").End(xlUp).Row
        syf = Format(Cells(i, "A"), "mmmm")
        With Sheets(syf)
            [B]j = .Range("A3:H" & Rows.Count).ClearContents[/B]
            j = .Cells(Rows.Count, "A").End(xlUp).Row + 1
            Range("A" & i, "H" & i).Copy .Cells(j, "A")
        End With
    Next i
 
    MsgBox "Aktarım Tamamlandı.", , "excel.web.tr"
 
    Application.ScreenUpdating = True
 
End Sub
 
Katılım
10 Haziran 2011
Mesajlar
31
Excel Vers. ve Dili
office 2010 PRO
Merhabalar,


Ömer hocama vermiş oldugu kodlar için teşekkür ederim.

Koda ekleme yaptım.

Koyu renkli yerdir.

Kod:
Sub Sayfalara_Dagit()
 
    Dim syf As String, i As Long, j As Long
 
    Application.ScreenUpdating = False
    Sheets("2011 SEVKİYAT").Select
 
    On Error Resume Next
    For i = 3 To Cells(Rows.Count, "A").End(xlUp).Row
        syf = Format(Cells(i, "A"), "mmmm")
        With Sheets(syf)
            [B]j = .Range("A3:H" & Rows.Count).ClearContents[/B]
            j = .Cells(Rows.Count, "A").End(xlUp).Row + 1
            Range("A" & i, "H" & i).Copy .Cells(j, "A")
        End With
    Next i
 
    MsgBox "Aktarım Tamamlandı.", , "excel.web.tr"
 
    Application.ScreenUpdating = True
 
End Sub
hocam emeğinize sağlık. ancak bu kodu kullandığım zaman mesela ocak ayındaki en son işlediğim satırı ilgili sayfaya kopyalıyor. diğerlerini eklemiyor.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Bu şekilde deneyin.

Kod:
Sub Sayfalara_Dagit()
 
    Dim syf As String, i As Long, j As Long
 
    Application.ScreenUpdating = False
    Sheets("2011 SEVKİYAT").Select
 
    On Error Resume Next
    
    For i = 1 To Worksheets.Count
        With Sheets(i)
            If .Name <> "2011 SEVKİYAT" Then
                .Range("A3:H" & Rows.Count).ClearContents
            End If
        End With
    Next i
    
    For i = 3 To Cells(Rows.Count, "A").End(xlUp).Row
        syf = Format(Cells(i, "A"), "mmmm")
        With Sheets(syf)
            j = .Cells(Rows.Count, "A").End(xlUp).Row + 1
            Range("A" & i, "H" & i).Copy .Cells(j, "A")
        End With
    Next i
 
    MsgBox "Aktarım Tamamlandı.", , "excel.web.tr"
 
    Application.ScreenUpdating = True
 
End Sub
.
 
Katılım
10 Haziran 2011
Mesajlar
31
Excel Vers. ve Dili
office 2010 PRO
Hocam emeğinize sağlık. çok teşekkür ederim tam istediğim gibi olmuş. Ellerinize sağlık.
 
Üst