Merhaba arkadaşlar,
Aşağıdaki kod ile klasördeki tüm excel dosyaları tek bir excel dosyasında toplanabilmekte ancak Sheets(1).Range("a1:l15000").Copy satırı nedeniyle diğer dosyalardaki sadece ilk sheet kopyalanmakta. Bunu klasördeki diğer dosyadaki bütün sheetleri kopyalacak şekilde nasıl değiştirebilirim?
İkinci bir sorumda excel çalışma dosyası içindeki sheetleri isimlerindeki tarihe göre sıralamak mümkün müdür?
Bir dosyada 12 ayın bazı günlerinin adını taşıyan sayfalar bulunmakta ve bunları örneğin; 01.01.2000, 01.02.2000,01.03.2000 şeklinde sıralanmakta ancak benim amacım takvimsel sıralama ile 01.01.2000, 02.01.2000...... 31.01.2000 devamında 01.02.2000, 02.02.2000....28.02.2000 şeklinde yapmak. Ayrıca bu isimler 01.01.2000 olduğu gibi 01-Oca-2000 şeklinde de varlar.Bu konuda yardımcı olabilir misiniz?
Aşağıdaki kod ile klasördeki tüm excel dosyaları tek bir excel dosyasında toplanabilmekte ancak Sheets(1).Range("a1:l15000").Copy satırı nedeniyle diğer dosyalardaki sadece ilk sheet kopyalanmakta. Bunu klasördeki diğer dosyadaki bütün sheetleri kopyalacak şekilde nasıl değiştirebilirim?
İkinci bir sorumda excel çalışma dosyası içindeki sheetleri isimlerindeki tarihe göre sıralamak mümkün müdür?
Bir dosyada 12 ayın bazı günlerinin adını taşıyan sayfalar bulunmakta ve bunları örneğin; 01.01.2000, 01.02.2000,01.03.2000 şeklinde sıralanmakta ancak benim amacım takvimsel sıralama ile 01.01.2000, 02.01.2000...... 31.01.2000 devamında 01.02.2000, 02.02.2000....28.02.2000 şeklinde yapmak. Ayrıca bu isimler 01.01.2000 olduğu gibi 01-Oca-2000 şeklinde de varlar.Bu konuda yardımcı olabilir misiniz?
Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set bukitap = ThisWorkbook
Set fso = CreateObject("scripting.filesystemobject")
For Each dosya In fso.getfolder(ThisWorkbook.Path).Files
isim = Split(dosya.Name, ".")(0)
If dosya.Name <> ThisWorkbook.Name And Mid(dosya.Name, 2, 1) <> "$" Then
Set ac = Workbooks.Open(dosya)
Sheets(1).Range("a1:l15000").Copy
bukitap.Sheets.Add After:=Sheets(Sheets.Count)
bukitap.ActiveSheet.Range("a65536").End(3)(2, 1).PasteSpecial xlPasteValues
bukitap.ActiveSheet.Name = isim
ac.Close False
End If
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Set ac = Nothing: Set dosya = Nothing: Set fso = Nothing
End Sub
