VBA ile iki dosya arası veri çekme

Katılım
26 Kasım 2021
Mesajlar
23
Excel Vers. ve Dili
excell 2016
Herkes'e merhaba Öncelikle konuyu doğru bir yere mi ekledim bilmiyorum ama bu sayfada yeniyim yanlış yere kelediysem lütfen düzeltmem için bana yardımcı olunuz.

benim şöyle bir sorum var

Kod:
Private Sub CommandButton1_Click()
Dim w1 As Workbook
Dim s1 As Worksheet

Dim w2 As Workbook
Dim s2 As Worksheet
Dim dosya As Variant

Set w1 = ThisWorkbook
Set s1 = w1.Worksheets("DataPo_S")

With Application.FileDialog(msoFileDialogOpen)
  .InitialFileName = "C:\Excel"
  .Title = "Dosya Seç"
  .ButtonName = "Search PO"
  .Filters.Clear
  .Filters.Add "Excel Files", "*.xlsx, *.csv, *.xls, *.*xls*"
  .FilterIndex = 1
 
  If .Show = 0 Then
    Exit Sub
    Else
    dosya = .SelectedItems(1)
    End If

End With
Application.ScreenUpdating = False
Set w2 = Workbooks.Open(dosya)
Set s2 = w2.Worksheets(1)

s1.Range("B1:B10000") = s2.Range("A1:A10000")
s1.Range("C1:C10000") = s2.Range("B1:B10000")

Application.ScreenUpdating = True
w2.Close

End Sub
yukarıda bulunan koda'da

s1.Range("B1:B10000") = s2.Range("A1:A10000")
s1.Range("C1:C10000") = s2.Range("B1:B10000")

bu aralıkları girdiğimde yazıları getirmiyor ama

s1.Range("B1) = s2.Range("A1")
s1.Range("C") = s2.Range("B1")

bu şekilde nokta atış istediğimde geliyor bunun sebebi cok basit sanırım ama ben bilmiyorum bu excell konusuna da yeni başladım yardımcı olursanız sevinirim

Şimdiden herkes'e teşekkürler
 
Katılım
26 Kasım 2021
Mesajlar
23
Excel Vers. ve Dili
excell 2016
sanırım zor soru sormuşum :) 47 kişi görüntelemiş ama kimse bilmiyormuş :)
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
İlgili satırı aşağıdaki ile değiştirerek deneyin.

s1.Range("B1:B10000") = s2.Range("A1:A10000").Value
s1.Range("C1:C10000") = s2.Range("B1:B10000").Value
 
Katılım
26 Kasım 2021
Mesajlar
23
Excel Vers. ve Dili
excell 2016
İlgili satırı aşağıdaki ile değiştirerek deneyin.

s1.Range("B1:B10000") = s2.Range("A1:A10000").Value
s1.Range("C1:C10000") = s2.Range("B1:B10000").Value
ilgi ve alakanız için çok teşekkür ederim yani forum'a yazdığımdan beri araştırıyorum çok basit olduğunu tahmin etmiştim ama yeni ve çok bilgili olmamak böyle basit hataları getiriyor tekrar çok teşekkür ederim.
 
Üst