• DİKKAT

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

Kapalı Dosyadan Veri Alma

Selamlar,

Aşağıdaki kod döngü ile "Örnek.xls" isimli dosyanın "Sayfa1" isimli sayfasındaki "A1:E100" aralığını aktarmaktadır.

Kodun çalışması için iki dosyada aynı klasörde olmalıdır. Farklı klasör için "Dosya_Yolu" tanımlamasını değiştirmelisiniz.

Kod:
Option Explicit
 
Sub VERİ_AL()
    Dim Dosya_Yolu As String, Satır As Integer, Sütun As Byte
 
    Dosya_Yolu = ThisWorkbook.Path & "\[Örnek.xls]"
 
    Application.ScreenUpdating = False
 
    Range("A1:E100").ClearContents
 
    For Satır = 1 To 100
        For Sütun = 1 To 5
            Cells(Satır, Sütun) = Application.ExecuteExcel4Macro("'" & Dosya_Yolu & "Sayfa1'!R" & Satır & "C" & Sütun)
        Next
    Next
 
    Application.ScreenUpdating = True
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Hocam yazdığınız kodu denedim.
örnek dosyasının sayfa1 sayfasına 5 satır 5 sütundan oluşan veri girdim.
aynı klasörde bukunan başka bir dosyaya (veri al dosyası) kodu yazdım.çalıştırdım. örneğin A1 hücresine veriyi çekmek için dosya yolunu kullandıktan sonra sırasıyla B1,B2,B3,B4,B5,A2,A3.........E5 e kadar 25 defa kullanmak zorunda kalıyorum. Dosya yolunu bir defa kullansak verinin tamamını tek seferde almamız mümkün değilmidir ? Bunun için dosya yolunu döngü dışına çıkarsak olmaz mı ki ?
 
Selamlar,

Üstteki mesajımdaki verdiğim kod zaten döngü ile belli bir hücre aralığını aktarmaktadır. Yani 25 defa kullanmanıza gerek yok. Zaten üstteki mesajımda da belirtmiştim.

...
Aşağıdaki kod döngü ile "Örnek.xls" isimli dosyanın "Sayfa1" isimli sayfasındaki "A1:E100" aralığını aktarmaktadır.
...


Eğer uygulamakta zorlanıyorsanız örnek dosyalarınızı ekleyin ve aktarılacak hücre aralığını belirtin kodları yeniden düzenleyelim.
 
Peki hocam derdimi açık bir şekilde tam olarak anlatayım. çekmek istediğim veriler masa üstünde bulunan döküm klasörünün içindeki D_1_1 ismindeki dosyanın yine D_1_1 sayfasında bulunmaktadır. Verileri almak istediğim dosya da masa üstünde bulunmaktadır.

Sizin yazdığınız cevabın aynı klasör içerinde bulunan dosyalar arasında ver çekme ile ilgili olduğunu biliyorum. Ben hocaları fazla uğraştırmamak için bu çözüme de razı idim fakat beceremedim. Hazır doktoru bulmuş iken madem içimi tam olarak dökeyim dedim. Döküm klasörünün adresi aşağıdaki şekildedir.

Z:\Documents and Settings\44444\Desktop\döküm

verilerin bulunduğu dosya döküm klasörünün içindedir.

dosyayı ekliyorum. yardımlarınız için şimdiden teşekkürler.
 

Ekli dosyalar

eklediğim dosyada sayfa adı xxx gözüküyor doğu şekli D_1_1 olacak hocam özür diliyorum
 
Selamlar,

Dosyanızda BİRLEŞTİRİLMİŞ hücreler kullanmışsınız. Bu şekliyle verileri döngü ile bu yöntemle almak imkansızdır. Tek tek hücre adresleri vermeniz gerekir ki, siz tablonun alt sınırı yok diyorsunuz.

Ayrıca eklediğiniz dosya boş. En azından farklı veriler girerek verilerim bunlar ben bunları şu şekilde listelemek istiyorum gibi açıklamalar yaparak dosyalarınızı eklemeniz gerekir. Yoksa bu şekilde konu boşuna uzar gider.
 
merhaba

ben "a" dosyasındaki "aa" excel verilerini , "b" dosyasındaki "bb" excel'ine makro ile aktarmak istiyorm yani "bb" exceline makro yazıp istedigim sütnları belirtip verileri aktarmak istiyorm..

yazdıklarınızı okudum fakat hiç bir şey anlamadım :S
istedigimiz zaman bizimde uygulayabilecegimiz ögrenebilecegimiz şekilde olursa en azından kod olmadan nasıl yapıldıgı konusunda fikrimiz olur yada kodu nerden nasıl aldıgını ögrenebiliriz.

daha açık ve net kolayca anlıyabilecegimiz şekilde yardımcı olabilecek uzman arkadasların destegini rica ediyoruz..
 
Selamlar,

Aşağıdaki kod döngü ile "Örnek.xls" isimli dosyanın "Sayfa1" isimli sayfasındaki "A1:E100" aralığını aktarmaktadır.

Kodun çalışması için iki dosyada aynı klasörde olmalıdır. Farklı klasör için "Dosya_Yolu" tanımlamasını değiştirmelisiniz.

Kod:
Option Explicit
 
Sub VERİ_AL()
    Dim Dosya_Yolu As String, Satır As Integer, Sütun As Byte
 
    Dosya_Yolu = ThisWorkbook.Path & "\[Örnek.xls]"
 
    Application.ScreenUpdating = False
 
    Range("A1:E100").ClearContents
 
    For Satır = 1 To 100
        For Sütun = 1 To 5
            Cells(Satır, Sütun) = Application.ExecuteExcel4Macro("'" & Dosya_Yolu & "Sayfa1'!R" & Satır & "C" & Sütun)
        Next
    Next
 
    Application.ScreenUpdating = True
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub

arkadaşlar kapali klasörü içinde dosya1.xls, dosya2.xls ve gercek.xls adlı 3 excel dosyam var. açık olan gercek.xls dosyamın dosya1_verileri adlı sayfaya kapalı olan dosya1.xls kitabındaki verileri, "dosya2_verileri" sayfasına ise yine kapalı olan dosya2.xls kitabındaki verileri bir türlü çekemedim.
Yukarıdaki kodları kullanarak verileri çekmeye çalıştım fakat bir türlü sorunumu çözemedim. Örnek dosyalarım ektedir.
bu konuda yardımlarınızı bekliyorum. saygılarımla....
 

Ekli dosyalar

makro

Sn.Korhan Ayhan;
merhaba;ekte göndereceğim LİST sayfasındaki kodların ; aynı isimli .xls uzantılı farklı formatta (SAPtan indirilmiş-35000033535.xls) dökümanları(masaüstü\reçeteler klasörü altında); yine ekte göndereceğim REÇETELER adlı döküman altına aynı isimle olarak taşımalı;örnekte görüleceği şekliyle düzenleyerek kaydetmek.
umarım bu konuda yardımcı olabilirsiniz.LİST sayfasındaki tüm kodları bu şekilde sayfalar halinde oluşturmalı ve kaydetmeli.35000033535.xls dosyasında alacağı değerler; malzeme,miktar,aşağıdaki aktiviteleri ve aktivitelere ait toplam değerleri (EPOKSI= 1,01) getirebilmesi gerekiyor.
Umarım bu konuda yardımcı olabilirsiniz?
not:bu konuya acemi düzeyinde olduğum için yanlış bir şey yazdıysam kusura bakmayın;şuna kadar yaptığım ;

Sub copy()

Sheets("Sayfa1").Select
Sheets("Sayfa1").copy Before:=Sheets(1)
Sheets("Sayfa1 (2)").Select
Sheets("Sayfa1 (2)").Name = Sheets("Sheet3").Range("a2")
Sheets("Sheet3").Select
Range("a2").Delete

End Sub
 

Ekli dosyalar

Çok teşekkürler Sayın Korhan Ayhan, 21. mesajda harika bir kod var.
 
Geri
Üst