Çözüldü Makro düzenleme

Katılım
4 Ekim 2018
Mesajlar
14
Excel Vers. ve Dili
2013 english
Merhaba Arkadaşlar

Aşağıdaki makroda filename dosyasının içerisindeki, her sayfada range Y15:AD41 i başka bir çalışma kitabının içine kopyalamam lazım.Ama excel bu işlemi tek bir sayfa için yapıp kalan sayfalara işlem yapmadan makroyu sonlandırıyor.Yanlış olabileceği yeri işaretledim.Yardım edebilir misiniz ?

Not :For each worksheet in workbook(filename) olarak denediğimde de aynı şekilde tek sayfaya işlem yapıp kalan sayfalara işlem yapmadan makroyu sonlandırıyor

Yanlış olabileceğini düşündüğüm yeri işaretledim.Yardım edebilir misiniz ?


Sub b()
Dim directory As String, fileName As String

Application.ScreenUpdating = False
Application.DisplayAlerts = False

directory = "C:\Users\CEM\Desktop\Özel Office Şablonları 1" & "\"

For i = 1 To Sayfa1.Range("A100000").End(xlUp).Row
fileName = Cells(i, 1)
If fileName <> "" Then
Sayfa1.Range("B" & Sayfa1.Cells(i, "A").Row & ":D" & Sayfa1.Cells(i, "A").Row).Copy
Sayfa4.Range("B5").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

Workbooks.Open (directory & fileName)
For kl = 1 To Workbooks(fileName).Sheets.Count
Range("Y15:AD41").Select
Selection.Copy
Windows("deneme.xlsm").Activate
Sheets("TUMU").Select
ABC = [a65536].End(3).Row + 1
Range("a" & ABC).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
kl = kl + 1
Windows(fileName).Activate




Next kl

Workbooks(fileName).Close SaveChanges:=False
On Error Resume Next
End If

Sheets("GENEL").Select

Next i
End Sub
 

turist

Destek Ekibi
Destek Ekibi
Katılım
18 Kasım 2009
Mesajlar
5,102
Excel Vers. ve Dili
2013 64Bit
English
Aşağıdaki gibi deneyin.
Kod:
Sub b()
Dim directory As String, fileName As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = "C:\Users\CEM\Desktop\Özel Office Şablonları 1" & "\"
For i = 1 To Sayfa1.Range("A100000").End(xlUp).Row
fileName = Cells(i, 1)
If fileName <> "" Then
Sayfa1.Range("B" & Sayfa1.Cells(i, "A").Row & ":D" & Sayfa1.Cells(i, "A").Row).Copy
Sayfa4.Range("B5").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Workbooks.Open (directory & fileName)
For kl = 1 To Workbooks(fileName).Sheets.Count
Range("Y15:AD41").Select
Selection.Copy
Windows("deneme.xlsm").Activate
Sheets("TUMU").Select
ABC = [a65536].End(3).Row + 1
Range("a" & ABC).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows(fileName).Activate
Workbooks(fileName).Close SaveChanges:=False
On Error Resume Next
Next kl
End If
Next i
Sheets("GENEL").Select
End Sub
 
Son düzenleme:
Katılım
4 Ekim 2018
Mesajlar
14
Excel Vers. ve Dili
2013 english
Merhaba
For kl = 1 To Workbooks(fileName).Sheets.Count burada hata veriyor
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Bu bölüm belki işinize yarar

Kod:
Workbooks.Open (directory & fileName)
dosya = ActiveWorkbook.Name
ThisWorkbook.Worksheets(ActiveSheet.Name).Range("A1:CN" & Rows.Count).ClearContents
sayfa = ActiveSheet.Name
For kl = 1 To Workbooks(dosya).Sheets.Count
ActiveWorkbook.Worksheets(ActiveSheet.Name).Range("Y15:AD41").Copy
ABC = [a65536].End(3).Row + 1
ThisWorkbook.Sheets("TUMU").Paste Destination:=ThisWorkbook.Sheets("TUMU").Range("a" & ABC)
Workbooks(dosya).Close SaveChanges:=False
Next kl
 
Katılım
4 Ekim 2018
Mesajlar
14
Excel Vers. ve Dili
2013 english
Merhaba bu ikisinin yerini değiştirerek makroyu çalıştırabildim.Ama aynı şekilde dosyayı açtığı zaman hangi sayfa aktifse sadece ona işlem yapıyor.Diğer sayfalara yapmıyor.

Workbooks(dosya).Close SaveChanges:=False
Next kl
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Merhaba alıntı yaparak cevap yazarmısınız
Örnek dosyaları ekleyin bir görelim
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
kod:
Rich (BB code):
Sub b()
Dim directory As String, fileName As String

Application.ScreenUpdating = False
Application.DisplayAlerts = False

directory = "C:\Users\Viola\Desktop\Cem\Özel Office Şablonları 2" & "\"
For i = 2 To ThisWorkbook.Sheets("GENEL").Cells(Rows.Count, "A").End(3).Row

dosya = directory & ThisWorkbook.Sheets("GENEL").Cells(i, 1)
If dosya <> "" Then
son = ThisWorkbook.Sheets("GENEL").Cells(Rows.Count, "b").End(3).Row
ThisWorkbook.Sheets("GENEL").Range(ThisWorkbook.Sheets("GENEL").Cells(2, 2), ThisWorkbook.Sheets("GENEL").Cells(son, "d")).Copy
ThisWorkbook.Sheets("Ana Sayfa").Paste Destination:=ThisWorkbook.Sheets("Ana Sayfa").Range("B5")
Workbooks.Open (dosya)

dosya2 = ActiveWorkbook.Name
sayfa = ActiveSheet.Name
For kl = 1 To Workbooks(dosya2).Sheets.Count
ActiveWorkbook.Worksheets(Sheets(kl).Name).Range("Y15:AD41").Copy
ABC = ThisWorkbook.Sheets("TUMU").Cells(Rows.Count, "a").End(3).Row + 1
ThisWorkbook.Sheets("TUMU").Paste Destination:=ThisWorkbook.Sheets("TUMU").Range("a" & ABC)
Next kl
Workbooks(dosya2).Close SaveChanges:=False
End If

Next i
End Sub
 
Son düzenleme:
Katılım
4 Ekim 2018
Mesajlar
14
Excel Vers. ve Dili
2013 english
kod:

Kod:
Sub b()
Dim directory As String, fileName As String

Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = "C:\Users\Viola\Desktop\Cem\Özel Office Şablonları 2" & "\"
For i = 2 To ThisWorkbook.Sheets("GENEL").Cells(Rows.Count, "A").End(3).Row

dosya = directory & ThisWorkbook.Sheets("GENEL").Cells(i, 1)
If dosya <> "" Then
son = ThisWorkbook.Sheets("GENEL").Cells(Rows.Count, "b").End(3).Row
ThisWorkbook.Sheets("GENEL").Range(ThisWorkbook.Sheets("GENEL").Cells(2, 2), ThisWorkbook.Sheets("GENEL").Cells(son, "d")).Copy
ThisWorkbook.Sheets("Ana_Sayfa").Paste Destination:=ThisWorkbook.Sheets("Ana_Sayfa").Range("B5")
Workbooks.Open (dosya)

dosya2 = ActiveWorkbook.Name
sayfa = ActiveSheet.Name
For kl = 1 To Workbooks(dosya2).Sheets.Count
ActiveWorkbook.Worksheets(Sheets(kl).Name).Range("Y15:AD41").Copy
ABC = ThisWorkbook.Sheets("TUMU").Cells(Rows.Count, "a").End(3).Row + 1
ThisWorkbook.Sheets("TUMU").Paste Destination:=ThisWorkbook.Sheets("TUMU").Range("a" & ABC)
Next kl
Workbooks(dosya2).Close SaveChanges:=False
End If

Next i
End Sub
ThisWorkbook.Sheets("Ana_Sayfa").Paste Destination:=ThisWorkbook.Sheets("Ana_Sayfa").Range("B5")

burada hata gösteriyor
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Söylemeyi unutmuşum
dosyanızdaki sayfa adı (Ana Sayfa) bu ben sayfa adını (Ana_Sayfa) bunu yapmıştım.
eğer dosyanızdaki sayfa adını kırmızı yerdeki gibi değiştirirseniz kod çalışacaktır.
 
Katılım
4 Ekim 2018
Mesajlar
14
Excel Vers. ve Dili
2013 english
Söylemeyi unutmuşum
dosyanızdaki sayfa adı (Ana Sayfa) bu ben sayfa adını (Ana_Sayfa) bunu yapmıştım.
eğer dosyanızdaki sayfa adını kırmızı yerdeki gibi değiştirirseniz kod çalışacaktır.
Doğru söylüyorsunuz.Bende atlamışım bunu.

Emeğinize sağlık sorunsuz çalışıyor.Yardımlarınız için çok teşekkür ederim
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Doğru söylüyorsunuz.Bende atlamışım bunu.

Emeğinize sağlık sorunsuz çalışıyor.Yardımlarınız için çok teşekkür ederim
Teşekkürler iyi çalışmalar
 
Üst