Çözüldü Excell Dosyamdaki Isim Ve Verileri Ayrı Excellere Çıkarma

Katılım
2 Nisan 2019
Mesajlar
6
Excel Vers. ve Dili
microsoft excell 2013- 2016
Benim her ay oluşturduğum bir parmak okuma veri dosyam var. Program kişileri toplu olarak excell e atıyor. Ben her ay tek tek filtreleme yaparak kişilerin listelerini ayrı excellerde oluşturuyorum. Bunun daha basit yapabilir miyim yardımcı olur musunuz.
Adı Soyadı ve zamanı olacak her excel kişi kişi ayrılacak yanlarında da zaman yazacak. Bunu kişilere gönderiyorum. Mesai vs varsa yazıyorlar geri gönderiyorlar

 
Son düzenleme:

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,113
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
Örnek dosyanızı (özel isim vs.. değiştirerek);
https://dosya.co/
adresine yukleyerek linkini paylaşın.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,614
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub sayfalaraBol_Kaydet()
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    If Dir("C:\Dosyalar", vbDirectory) = "" Then MkDir "C:\Dosyalar"

    Sheets("Sayfa1").Copy
    Set s2 = ActiveSheet
    Do
        shf = s2.Range("c2")
        son = Cells(Rows.Count, 3).End(3).Row
        [H:H].ClearContents
        For i = 2 To son
            If Cells(i, 3).Value = shf Then Cells(i, 8) = "*"
        Next i

        s2.Copy After:=Sheets(Sheets.Count)
        ActiveSheet.Name = shf

        Intersect([H:H].SpecialCells(xlCellTypeBlanks).Cells, Rows("2:" & son + 1)).EntireRow.Delete
        [H:H].ClearContents
        ActiveSheet.Copy
        ActiveWorkbook.Close True, "C:\Dosyalar\" & ActiveSheet.Name

        s2.Select
        s2.Range("H" & son + 1) = "*"
        Intersect(s2.[H:H].SpecialCells(xlCellTypeConstants).Cells, s2.Range("H2:H" & son + 1)).EntireRow.Delete
        s2.[H:H].ClearContents

    Loop Until s2.Range("c2") = ""
    'ActiveWorkbook.Close False
    s2.Delete
    ActiveWorkbook.Close True, "C:\Dosyalar\TumPersonelSayfalarHalinde"
    Application.Speech.Speak ("OK")
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
Kod:
Sub sayfalaraBol_Kaydet2()
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    If Dir("C:\Dosyalar", vbDirectory) = "" Then MkDir "C:\Dosyalar"
    Sheets("Sayfa1").Copy
    Set s2 = ActiveSheet
    Do

        shf = s2.Range("c2")
        son = Cells(Rows.Count, 3).End(3).Row
        [H:H].ClearContents
        ActiveSheet.Range("$A$1:$G" & son).AutoFilter Field:=3, Criteria1:=shf
        Intersect([H:H], [A:A].SpecialCells(xlCellTypeVisible).Cells.EntireRow, Rows("1:" & son)).Value = "*"
        Cells.AutoFilter

        s2.Copy After:=Sheets(Sheets.Count)
        ActiveSheet.Name = shf
        Intersect([H:H].SpecialCells(xlCellTypeBlanks).Cells, Rows("2:" & son + 1)).EntireRow.Delete
        [H:H].ClearContents

        ActiveSheet.Copy
        ActiveWorkbook.Close True, "C:\Dosyalar\" & ActiveSheet.Name & "_"
        s2.Select
        s2.Range("H" & son + 1) = "*"
        Intersect(s2.[H:H].SpecialCells(xlCellTypeConstants).Cells, s2.Range("H2:H" & son + 1)).EntireRow.Delete
        s2.[H:H].ClearContents

    Loop Until s2.Range("c2") = ""
    'ActiveWorkbook.Close False
    s2.Delete
    ActiveWorkbook.Close True, "C:\Dosyalar\TumPersonelSayfalarHalinde_"
    Application.Speech.Speak ("OK")
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
 
Son düzenleme:

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
432
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Kod:
Sub sayfalaraBol_Kaydet()
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    If Dir("C:\Dosyalar", vbDirectory) = "" Then MkDir "C:\Dosyalar"

    Sheets("Sayfa1").Copy
    Set s2 = ActiveSheet
    Do
        shf = s2.Range("c2")

        s2.Copy After:=Sheets(Sheets.Count)
        Set s3 = ActiveSheet
        s3.Name = shf

        For i = 2 To Cells(Rows.Count, 3).End(3).Row
            If Cells(i, 3).Value <> shf Then Cells(i, 3).ClearContents
        Next i
        [C:C].SpecialCells(xlCellTypeBlanks).EntireRow.Delete

        For i = 2 To s2.Cells(Rows.Count, 1).End(3).Row
            If s2.Cells(i, 3).Value = shf Then s2.Cells(i, 3).ClearContents
        Next i
       
        s2.[C:C].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        s3.Copy
        ActiveWorkbook.Close True, "C:\Dosyalar\" & s3.Name

    Loop Until s2.Range("c3") = ""
    ActiveWorkbook.Close False
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
Sorunsuz ve hızlı çalışıyor, elinize sağlık Sayın @veyselemre
 
Üst