makro ile farklı excel dosyaları arası geçiş

Katılım
19 Eylül 2023
Mesajlar
19
Excel Vers. ve Dili
2016-türkçe
Rica ederim.
İyi çalışmalar
Hocam Merhaba bir şey daha sormak istiyorum. dün hallettiğiniz aşağıda verdiğim komutla belirttiğimiz ezcelin içindeki tüm çalışma sayfalrında işlem yapıyoruz. bu kısım çok iyi. peki ben belli çalışma sayfalarına kadar bu işlemi yap şu sayfa sayısından sonra yapma kısmını nasıl yazabilirim. zannediyorum if komutu ile çözeceğim ama yapamadım. yani şöyle bir örnek vereyim diyelim çalışma sayfalarımın isimleri 1, 2, 3, ...20 olsun ben bu komutu 10 isimli çalışma sayfasına kadar yap sonrakilerde yapma nasıl derim acaba

Workbooks.Open Filename:=ThisWorkbook.Path & "\export.xlsm"
i = 13
For Each ws In ActiveWorkbook.Sheets
Workbooks("değerlendirme").Worksheets("main").Cells(i, "B") = ws.Name
ws.Select
i = i + 1
Next ws
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,860
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar

Kodlarınıza if bloğu ekleyerek yapabilirsiniz.
Örnek ;
Eğer ws.Index (Sayfa numarası) 11 den küçükse if bloğu arasındaki işlemleri yap

Kod:
  Workbooks.Open Filename:=ThisWorkbook.Path & "\export.xlsm"
    i = 13
For Each ws In ActiveWorkbook.Sheets
If ws.Index < 11 Then
Workbooks("Değerlendirme").Worksheets("main").Cells(i, "B") = ws.Name
ws.Select
End If
i = i + 1
Next ws
 
Katılım
19 Eylül 2023
Mesajlar
19
Excel Vers. ve Dili
2016-türkçe
Selamlar

Kodlarınıza if bloğu ekleyerek yapabilirsiniz.
Örnek ;
Eğer ws.Index (Sayfa numarası) 11 den küçükse if bloğu arasındaki işlemleri yap

Kod:
  Workbooks.Open Filename:=ThisWorkbook.Path & "\export.xlsm"
    i = 13
For Each ws In ActiveWorkbook.Sheets
If ws.Index < 11 Then
Workbooks("Değerlendirme").Worksheets("main").Cells(i, "B") = ws.Name
ws.Select
End If
i = i + 1
Next ws
Hocam merhaba müsaitseniz bir sorum daha var size, isterseniz örnek gönderirim ama önden anlatayım dedim.
iki excelim var birinin içinde birden fazla çalışma sayfası var. her birinin içindeki belli değerleri diğer excelde bir çalışma sayfası açıp o sayfaya yapıştırmak istiyorum. Aslında bir şeyler yapmıştım baya da ilerdim ama sonuç elde edemedim. benim aslında ilk hedefim şuydu; bir çalışma sayfasındaki veriyi kopyala o bitince bir diğer çalışma sayfasına geç onu da ikinci bir sütun (isim verdiğim bir sütuna) yapıştır ama bunu başaramadım
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,860
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
Son gönderdiğim dosya işinizi görmedi mi?
Bu en son istediğiniz farklı başka bir soru mu?
 
Katılım
19 Eylül 2023
Mesajlar
19
Excel Vers. ve Dili
2016-türkçe
yok Hocam işimi gördü bir şeyleri halledince insan bütün dosyayı düzenlemek istiyor başka düzenlemeler yapmak istedim de
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,860
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
Hangi sayfalardan hangi verileri alacağınızı örnek dosyada belirtirseniz, cevap verecek arkadaşlar için daha anlaşılır olur
 
Katılım
19 Eylül 2023
Mesajlar
19
Excel Vers. ve Dili
2016-türkçe
Selamlar
Hangi sayfalardan hangi verileri alacağınızı örnek dosyada belirtirseniz, cevap verecek arkadaşlar için daha anlaşılır olur
Hocam aşağıdaki linke işlem yapacağım dosyayı yükledim. İstediğim şey şu:
Birden fazla .dat uzantılı dosyam var. Bunları bu sizlerden aldığım bilgiler doğrultusunda makro ile açıyorum (export exceli içinde). Değerlendirme isimli excele ise export adlı excelde açılan verileri çağırıp üzerinde işlemler yapıyorum. Ancak exportta birden fazla çalışma sayfasında bulunan değerleri tek bir sayfaya almayı başaramadım. Exportta bulunan ilk çalışma sayfası sonucunu Değerlendirme excelinde C sütununa döküyorum ve işlem yapıyorum. bir çalışma sayfasından veri aldıktan sonra sırasıyla diğer çalışma sayfasına geç veri al ve örneğin I6 hücresinden başlayarak yapıştır demek istiyorum. Böyle böyle ne kadar çalışma sayfası var ise hepsine benzer işlemi yap demek istiyorum. Mümkün müdür? Karmaşık oldu ama dosyayı gördüğünüzde anlayacağınızı düşünüyorum.

 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,860
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Katılım
19 Eylül 2023
Mesajlar
19
Excel Vers. ve Dili
2016-türkçe
Selamlar
Yanlış anlamış olabilirim.
İnceleyiniz
Hocam ellerinize sağlık tam istediğim gibi ben i=i+2 ifadenizdeki sayıyı değiştirerek istediğim sütuna da yazdırdım. Ancak kendi dosyama bunu entegre ettiğimde şöyle bir sorunla karşılaştım. benim export isimli dosyamda dat uzantılı dosyalar dışında başka çalışma sayfalarım da var bu sebeple hatta If li komut yazıp yalnızca adında .dat olanları çağır demiştim siz de fark etmişsinizdir. böyle olunca sizin yazdığınız makroyu çalıştırdığımda bendeki dat olmayan çalışma sayfaları kadar boşluk bırakıp ona göre kaydediyor. mesela ben i=i+6 demiştim. 5 tane de dat uzantılı olmayan çalışma sayfam var bu sebeple yazdırmaya AG sütunundan başladı. bunu Else if vs bir komutla engelleyebilir miyiz?
 
Katılım
19 Eylül 2023
Mesajlar
19
Excel Vers. ve Dili
2016-türkçe
Hocam ellerinize sağlık tam istediğim gibi ben i=i+2 ifadenizdeki sayıyı değiştirerek istediğim sütuna da yazdırdım. Ancak kendi dosyama bunu entegre ettiğimde şöyle bir sorunla karşılaştım. benim export isimli dosyamda dat uzantılı dosyalar dışında başka çalışma sayfalarım da var bu sebeple hatta If li komut yazıp yalnızca adında .dat olanları çağır demiştim siz de fark etmişsinizdir. böyle olunca sizin yazdığınız makroyu çalıştırdığımda bendeki dat olmayan çalışma sayfaları kadar boşluk bırakıp ona göre kaydediyor. mesela ben i=i+6 demiştim. 5 tane de dat uzantılı olmayan çalışma sayfam var bu sebeple yazdırmaya AG sütunundan başladı. bunu Else if vs bir komutla engelleyebilir miyiz?
Hocam çözdüm End If komutunu İ=i+6 nın altına ekledim sorun çözüldü.
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,860
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Kolay gelsin
İyi çalışmalar
 
Katılım
19 Eylül 2023
Mesajlar
19
Excel Vers. ve Dili
2016-türkçe
Kolay gelsin
İyi çalışmalar
Hocam aşağıdaki verdiğim kodda;
isminde dat olan çalışma sayfalarında kopyaladığım D:E sütunundan belli bir yeri "i" ile tanımladığım sütuna yapıştırıyorum. İşlem bitince next ws diyorum. Ben bu işlem döngüsüne yeni bir ws açarak o bilgileri oraya yapıştırmayı nasıl yaparım.
Yani "i" tanımlamak yerine ben desem ki ""isminde dat olan çalışma sayfasını aç, D:E sütunundan belli bir yeri kopyala, bunu yeni bir ws açarak onun içinde B6'ya yapıştır. bir sonraki ws e geç. Aynı işlemleri yap."" bunu nasıl yazarım?

Kod:
Sub Makro7()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

    Workbooks.Open Filename:=ThisWorkbook.Path & "\export.xlsm"
    i = 2
           For Each ws In ActiveWorkbook.Sheets
            If ws.Name Like "*.dat" Then
            ws.Activate
        
   Dim son As Long
   son = Range("E1000000").End(3).Row
   Range("D7:E" & son).Copy
    Windows("degerlendirme.xlsm").Activate
    Cells(6, i).Select
'    Range("B6").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
     :=False, Transpose:=False
        Application.CutCopyMode = False
'      Windows("export.xlsm").Activate
   i = i + 7
  End If
  Next ws 
  End Sub
 
Üst