Skip to main content

AccessTr.neT


Klasör İçerisindeki 3 Yardımcı Kitaptan Ana Kitaba Veri Aktarımı

Klasör İçerisindeki 3 Yardımcı Kitaptan Ana Kitaba Veri Aktarımı

#8
Alttaki kod işinizi görür.Çalışmazsa Tr karakterlerini düzeltin.

Sub GetData()

Dim sFile As Workbook, tFile As Workbook
Dim dosya As String, kes, parcaAl
Dim s1 As Worksheet, s2 As Worksheet, s3 As Worksheet

Set tFile = ThisWorkbook
Set s1 = tFile.Sheets("Senelik Mazeret")
Set s2 = tFile.Sheets("Dr.Raporlu Sevk")
Set s3 = tFile.Sheets("Ücretsiz")

Application.ScreenUpdating = False
dosya = Dir(ThisWorkbook.Path & Application.PathSeparator & "*.*")
    With s1
        .Range(.Cells(2, 1), .Cells(.Rows.Count, .Columns.Count)).ClearContents
    End With

    With s2
        .Range(.Cells(2, 1), .Cells(.Rows.Count, .Columns.Count)).ClearContents
    End With
   
    With s3
        .Range(.Cells(2, 1), .Cells(.Rows.Count, .Columns.Count)).ClearContents
    End With
   
        Do While dosya <> ""
            If dosya <> ThisWorkbook.Name Then
                Set sFile = Workbooks.Open(ThisWorkbook.Path & Application.PathSeparator & dosya)
                kes = Split(dosya, ".")
                parcaAl = Mid(dosya, 1, Len(dosya) - Len(kes(UBound(kes))) - 1)
                If parcaAl = "Liste1(Senelik Mazeret)" Then
                    sFile.Worksheets("Sayfa1").Range("A1").CurrentRegion.Offset(1).Copy _
                    s1.Cells(Rows.Count, 1).End(3).Offset(1, 0)
                    Application.CutCopyMode = False
                ElseIf parcaAl = "Liste2(Dr.Raporlu Sevk)" Then
                    sFile.Worksheets("Sayfa1").Range("A1").CurrentRegion.Offset(1).Copy _
                    s2.Cells(Rows.Count, 1).End(3).Offset(1, 0)
                    Application.CutCopyMode = False
                ElseIf parcaAl = "Liste3(Ücretsiz)" Then
                    sFile.Worksheets("Sayfa1").Range("A1").CurrentRegion.Offset(1).Copy _
                    s3.Cells(Rows.Count, 1).End(3).Offset(1, 0)
                    Application.CutCopyMode = False
                End If
                Application.CutCopyMode = False
                sFile.Close
            End If
            dosya = Dir
        Loop
    Application.ScreenUpdating = True
s1.Activate
s1.Cells(1, 1).Activate
    MsgBox "Bitti"
    Set sFile = Nothing: Set tFile = Nothing: parcaAl = vbNullString
    Set s1 = Nothing: Set s2 = Nothing: Set s3 = Nothing
End Sub

Sadece deger ve formatlar kopyalansın derseniz koddaki ilgili yerleri alttaki gibi değiştirin.

If parcaAl = "Liste1(Senelik Mazeret)" Then
                    sFile.Worksheets("Sayfa1").Range("A1").CurrentRegion.Offset(1).Copy
                    s1.Cells(Rows.Count, 1).End(3).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
                    Application.CutCopyMode = False
ElseIf parcaAl = "Liste2(Dr.Raporlu Sevk)" Then
                    sFile.Worksheets("Sayfa1").Range("A1").CurrentRegion.Offset(1).Copy
                    s2.Cells(Rows.Count, 1).End(3).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
                    Application.CutCopyMode = False
ElseIf parcaAl = "Liste3(Ücretsiz)" Then
                    sFile.Worksheets("Sayfa1").Range("A1").CurrentRegion.Offset(1).Copy
                    s3.Cells(Rows.Count, 1).End(3).Offset(1, 0).PasteSpecial xlPasteValuesAndNumberFormats
                    Application.CutCopyMode = False
  End If
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
RE: Klasör İçerisindeki 3 Yardımcı Kitaptan Ana Kitaba Veri Aktarımı - Yazar: feraz - 07/05/2021, 01:34
Task