baska dosyadan veri alan macro

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Paylaşım için teşekkürler.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Şu kodlar bir deneyiniz.

Kod:
Sub Emre()
    Dim con As Object, rs As Object
    Dim dosya As String, sorgu As String
    Set con = CreateObject("adodb.connection")
    Set rs = CreateObject("adodb.recordset")
    dosya = ThisWorkbook.Path & "\AMBAR ÇIKIŞ BONOSU KAYIT.xlsm"
    con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dosya & _
        ";Extended Properties=""Excel 12.0;hdr=yes"""
        sorgu = "Select [MALZEME ADI] FROM [AMBAR ÇIKIŞ BONOSU VERİ GİRİŞİ$]"
        rs.Open sorgu, con, 1, 1
        Range("BJ3").CopyFromRecordset rs
    Set rs = con.Execute("select [BONO NO1 :  ] from [AMBAR ÇIKIŞ BONOSU VERİ GİRİŞİ$]")
        Range("BL3").CopyFromRecordset rs
    rs.Close: con.Close
    Set con = Nothing: Set rs = Nothing
    dosya = vbNullString: sorgu = vbNullString
End Sub
Birkaç farklı yolla çözülebilirdi ben bunu tercih ettim.


Dosyada iki yerde değişiklik yaptım.
1.si: C sütunu başlığını BONO NO1 yaptım.
2.si: Malzeme adının olduğu satırı en başa aldım.
Dosyada göreceksiniz zaten.
Eğer sizin uygun değilse; ya başka yolla çözeriz, ya da zaten siz bir yolunu bulmuşsunuz...

İyi geceler...
 

Ekli dosyalar

Katılım
22 Ocak 2010
Mesajlar
112
Excel Vers. ve Dili
2007 türkçe
Şu kodlar bir deneyiniz.

Kod:
Sub Emre()
    Dim con As Object, rs As Object
    Dim dosya As String, sorgu As String
    Set con = CreateObject("adodb.connection")
    Set rs = CreateObject("adodb.recordset")
    dosya = ThisWorkbook.Path & "\AMBAR ÇIKIŞ BONOSU KAYIT.xlsm"
    con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dosya & _
        ";Extended Properties=""Excel 12.0;hdr=yes"""
        sorgu = "Select [MALZEME ADI] FROM [AMBAR ÇIKIŞ BONOSU VERİ GİRİŞİ$]"
        rs.Open sorgu, con, 1, 1
        Range("BJ3").CopyFromRecordset rs
    Set rs = con.Execute("select [BONO NO1 :  ] from [AMBAR ÇIKIŞ BONOSU VERİ GİRİŞİ$]")
        Range("BL3").CopyFromRecordset rs
    rs.Close: con.Close
    Set con = Nothing: Set rs = Nothing
    dosya = vbNullString: sorgu = vbNullString
End Sub
Birkaç farklı yolla çözülebilirdi ben bunu tercih ettim.


Dosyada iki yerde değişiklik yaptım.
1.si: C sütunu başlığını BONO NO1 yaptım.
2.si: Malzeme adının olduğu satırı en başa aldım.
Dosyada göreceksiniz zaten.
Eğer sizin uygun değilse; ya başka yolla çözeriz, ya da zaten siz bir yolunu bulmuşsunuz...

İyi geceler...
Teşekkür Ederim Murat bey. Ancak dediğiniz gibi bir sekilde halletmiştim.
Vermiş olduğunuz kodu denedim c_1 ile c_2 arsında 12 satır boşluk bırakarak aktarmakta alt alta aktarması gerekmekteydi.

Birde Makronuzun aktarılacağı sayfayı Tanımlanmamış bende
Dim S2 As Worksheet
Set S2 = Sheets("VERİ")
eklemesi yaparak revize etmiştim.

İlgilendiğiniz için teşekkürler.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Aktarılacağı sayfa çokta önemli değil.. Hücrelerin başına sayfa adını yazmanız yeter.
C sütunundaki verileri alt alta BL3 hücresinden itibaren listeliyor. Bir sorun görünmüyor. Olmazsa tekrar bakarım..

Çözdüyseniz iyi günler dilerim..
 
Katılım
10 Ekim 2007
Mesajlar
113
Excel Vers. ve Dili
exel 365 64 bit
Altın Üyelik Bitiş Tarihi
06/02/2021
öncelikle iyi günler siteyi taradım fakat aradığım formül yada macroyu bulamadım bana yardımcı olursanız çok sevinirim.
aradığım formül: BİRİNCİ SAYFADAN A1 DEN A6000 E KADAR OLAN LİSTEDEKİ VERİLERİ DİĞER SAYFADAN TEK TEK A1 DEN A6000 E KADAR OLAN LİSTEDEN ARAYIP B SÜTÜNUNDAKİ VERİYİ BİRİNCİ SAYFADAKİ ARANANIN KARŞISINDAKİ B SÜTUNUNA YAZMAK.
 
Katılım
15 Aralık 2011
Mesajlar
19
Excel Vers. ve Dili
Excel 2010 EN
merhaba

arkadaşlar en uygun kategori bu konuyu bulduğum için buraya yazıyorum. yukarıda belirtildiği şekilde benim de bir veri excellim var, ama bu ecxell içerisinde 30-40 bin kayıt bulunuyor. ben her ay bu sayfadan filtreyelerek veya Pivot kullanarak istediğim kişilerin yapmış olduğu işlemleri tek tek rapor alıyorum, e malumunuz bu da benim baya bir zamanımı alıyor. :(

yapmak istediğim bu excell dosyası içerisinde bulunan 30 kullanıcı için ayrı ayrı exceller oluşturmak, oluşturduğum her excell örnek ahmet.xlsm dosyası nı açtığım zaman bana ana excellden ahmet ismini bulacak ve bu oluşturduğum excelle ahmet isminin bulunduğu sütun'u ilgili excell içerisine update edecek, yalnız burada sofor hata olması çok önemli. ana dosyada Ahmet 3, Ahmet Suat, gibi isimler var ise bunu bana getirmemelidir. sadece Ahmet olan stunları hatasız getirmelidir.

uzman bilgilerinize dayanarak yardımlarınızı rica ederim.

teşekkürler
iyi çalışmalar

yardım lütfen.
 
Üst