VBA ile Farklı Excel'den Düşeyara Şeklinde Veri Çekmek

Katılım
14 Mart 2022
Mesajlar
2
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019 - Sürüm 1808 - Türkçe
Arkadaşlar Merhaba,

Forumda aradım ancak kodlar çok detaylıydı, uyarlama yapamadım.
2 Farklı excel dosyam var. Birincisinde sözleşme numaraları ve adres bilgileri, ikincisinde ise sözleşme numaraları ve tüketim miktarları mevcut.
İkinci exceldeki tüketim miktarlarını birinci excele VBA ile düşeyara gibi yazdırmak istiyorum. Veriler yaklaşık 70.000 satır ve çok fazla dosya olduğu için düşeyara kullanmam mümkün değil.

Aşağıdaki şekilde bir kod yazdım, aynı exceliçerisindeki sayfalardan veri alışverişi yapabiliyorum ancak farklı bir excel dosyasından veri almak için gereken workbook komutunu uyarlayamadım. Kod; 1.Sayfadaki b sütunu ile 2.sayfadaki b sütunundaki sözleşme numaraları eşleştiriyor ve ikinci sayfadanın c sütunundan aldığı tüketim verilerini 1.sayfa d sütununa yazıyor. 70.000 Satırlık ana veri tabanıma yaklaşık 20-25 farklı excelden veri alacağım için VBA ile halletmem gerek. Her excele göre uyarlama yapıp teker teker bu kodu gömeceğim. Şuan acil ihtiyaç söz konusu, daha sonra geliştirmeye çalışacağım.

Sub Makro1()
'

Dim say1, say2, i, j As Integer
say1 = WorksheetFunction.CountA(Sayfa1.Range("b2:b70000"))
say2 = WorksheetFunction.CountA(Sayfa2.Range("b2:b70000"))
For i = 2 To say1 + 5
For j = 2 To say2 + 5
If Sayfa1.Range("b" & i) = Sayfa2.Range("b" & j) Then
Sayfa1.Range("d" & i) = Sayfa2.Range("c" & j)
End If

Next j
Next i

End Sub

Yardımlarınız için çok teşekkür ederim.
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,867
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
Formumuza Hoş geldiniz.
Harici dosya yükleme sitelerinden birine örnek dosya ekleyerek yapmak istediğinizi dosya üzerinde manuel olarak belirtirseniz, daha çabuk yanıtlar alırsınız.
 
Katılım
14 Mart 2022
Mesajlar
2
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019 - Sürüm 1808 - Türkçe
Arkadaşlar Merhaba,

Aşağıda belirttiğim kodlar ile problemimi çözdüm. Öncelikle bir değişken atıyoruz ve değişkeni "Set" ile belirliyoruz. Daha sonra yazdığımız koda WB1-WS1 gibi atadığımız değişkenlerle devam ediyoruz.

Dim WB1 As Workbook
Set WB1 = Workbooks("Makro1.xlsm")
Set WS1 = WB1.Worksheets("Sayfa1")
 
Üst