• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Kapalı dosyadan çoketopla almak

  • Konbuyu başlatan Konbuyu başlatan bebar
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Kasım 2014
Mesajlar
255
Excel Vers. ve Dili
2013
Merhaba,

Aynı dosya içinde bulunan farklı bir kapalı excel dosyasından çoketopla ile veri alamak istiyorum
Aşağıdaki gibi bir kodum var fakat çok fazla kasıyor.
etopla gibi örnekler mevcut ama çoketopla yapılabilen bir kod bulamadım
yardımcı olursanız memnun olurum.



Kod:
Sub getir2()
Dim kaynak As Workbook, s1 As Worksheet, KPL As Excel.Application
Dim hedef As Workbook, s2 As Worksheet, i As Long, yol As String
Dim wf As WorksheetFunction
Set wf = Application.WorksheetFunction
Set hedef = ActiveWorkbook
Set s2 = hedef.ActiveSheet
Set KPL = CreateObject("Excel.Application")
KPL.Visible = False
yol = ThisWorkbook.Path & "\"


Set kaynak = KPL.Workbooks.Open(yol & "kaynak.xlsx")
Set s1 = kaynak.Sheets("Sayfa1")
For i = 10 To 13
      s2.Range("c10" & i) = wf.SumIfs(s1.Range("d:d"), s1.Range("b:b"), s2.Range("b" & i), s1.Range("c:c"), s2.Range("c5"))
Next i
kaynak.Close 0
End Sub
 
Merhaba,

Aynı dosya içinde bulunan farklı bir kapalı excel dosyasından çoketopla ile veri alamak istiyorum
Aşağıdaki gibi bir kodum var fakat çok fazla kasıyor.
etopla gibi örnekler mevcut ama çoketopla yapılabilen bir kod bulamadım
yardımcı olursanız memnun olurum.


Merhaba,
Aşağıdaki kodu dener misiniz,

Kod:
Sub getir2()
Dim kaynak As Workbook, s1 As Worksheet
Dim hedef As Workbook, s2 As Worksheet, i As Long, yol As String
Dim wf As WorksheetFunction
    Dim Arg1 As Range
    Dim Arg2 As Range
    Dim Arg4 As Range
    
    Dim a1 As Variant, a2 As Variant

Set wf = Application.WorksheetFunction
Set hedef = ThisWorkbook
Set s2 = hedef.ActiveSheet

yol = ThisWorkbook.Path & "\"

Set kaynak = Workbooks.Open(yol & "Kaynak.xlsx")

Set s1 = kaynak.Sheets("Sayfa1")

    Set Arg1 = s1.Range("D2:D10000")
    Set Arg2 = s1.Range("B2:B10000")
    Set Arg4 = s1.Range("C2:C10000")
    
    a2 = s2.Range("C1").Value

For i = 10 To 13

a1 = s2.Range("B" & i).Value

   s2.Range("c" & i) = wf.SumIfs(Arg1, Arg2, a1, Arg4, a2)

Next i

kaynak.Close 0

End Sub
 
hocam teşekkür ederim ama veriler 0 geldi, sizin kodlarınıza göre örnek bir dosya ekledim.
 

Ekli dosyalar

tamamdır çözdüm hocam
a2 = s2.Range("C1").Value
yerine
a2 = s2.Range("C5").Value

olmalıydı sorun çözüldü
çok teşekkür ederim.
allah razı olsun.
 
tamamdır çözdüm hocam
a2 = s2.Range("C1").Value
yerine
a2 = s2.Range("C5").Value

olmalıydı sorun çözüldü
çok teşekkür ederim.
allah razı olsun.

Hücre adlarını istediğiniz gibi düzenleyebilirsiniz.

sorunun çözülmesine sevindim.
 
Geri
Üst