• DİKKAT

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

Macro ile 2 excel arasında veri kopyalayıp yapıştırmak

Katılım
6 Temmuz 2011
Mesajlar
127
Excel Vers. ve Dili
2007 English
Merhaba iyi akşamlar,
Forumda baktım, benzer örnekler
çok var ama ben maalesef uyarlayamadım ve işin içinden çıkamadım.
Bu nedenle sizlerin yardımına ihtiyacım var.
Şöyleki "Stok_Ayırma ve Karşılaştırma_Macro_01.xlsm" dosyası içerisinde bulunan
"POS Seri Numara Listesi", "Pinpad Seri Numara Listesi", "Tc_Simcard" sheetlerinde bulunan verileri
"Rapor Formüllü_ TC Stok Raporu_25.11.2011.xlsx" isimli çalışma kitabındaki aynı isimli sheetlere macro yardımıyla
yapıştırmak istiyorum.Tabi yapıştırırken yapıştırılacak dosyadaki veriler öncelikle silinmesi lazım sonra yapıştırılması lazım.
Ekte örnek dosyaları gönderiyorum.

İlgilenme imkanınız olursa çok memnun olurum.
İyi çalışmalar
 

Ekli dosyalar

Günaydın kolay gelsin,
Bu konuda acaba herhangibir değerli hocamız vakti olduğunda bakma şansı olabilir mi acaba ,
Tşk ler
 
Merhaba iyi akşamlar,
Forumda baktım, benzer örnekler
çok var ama ben maalesef uyarlayamadım ve işin içinden çıkamadım.
Bu nedenle sizlerin yardımına ihtiyacım var.
Şöyleki "Stok_Ayırma ve Karşılaştırma_Macro_01.xlsm" dosyası içerisinde bulunan
"POS Seri Numara Listesi", "Pinpad Seri Numara Listesi", "Tc_Simcard" sheetlerinde bulunan verileri
"Rapor Formüllü_ TC Stok Raporu_25.11.2011.xlsx" isimli çalışma kitabındaki aynı isimli sheetlere macro yardımıyla
yapıştırmak istiyorum.Tabi yapıştırırken yapıştırılacak dosyadaki veriler öncelikle silinmesi lazım sonra yapıştırılması lazım.
Ekte örnek dosyaları gönderiyorum.

İlgilenme imkanınız olursa çok memnun olurum.
İyi çalışmalar

Merhaba
Bu kodu dener misiniz_?
Kod:
Option Explicit
Sub bilgi_çek_61()
Dim ts, kaplan, trabzonspor, hamsi As Date
Dim bordo, mavi, asi, kral
trabzonspor = MsgBox("Sayfaları Kopyalamaya Başlıyorum", vbYesNo, "Onay")
If trabzonspor = vbNo Then Exit Sub
Application.ScreenUpdating = False
hamsi = Time
ts = ActiveWorkbook.Name
For asi = 1 To Sheets.Count
Workbooks(ts).Sheets(asi).Select
kral = ActiveCell.Address
Sheets(asi).Cells.Delete
bordo = ThisWorkbook.Path & "\"
mavi = "Rapor Formüllü_ TC Stok Raporu_25.11.2011.xlsx"
Workbooks.Open (bordo & mavi)
Workbooks(mavi).Sheets(asi).Select
Workbooks(mavi).Sheets(asi).Cells.Copy _
Destination:=Workbooks(ts).Sheets(asi).Range("A1")
Application.CutCopyMode = False
Windows(ts).Activate
Workbooks(ts).Sheets(asi).Range(kral).Select
Next
Application.DisplayAlerts = False
Workbooks(mavi).Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox Format(hamsi - Time, "hh:mm:ss") & vbLf _
& "Sürede Kopyalama İşlemi Tamamlandı", , "Bitiş"
End Sub
 
İhsan Bey ,
10 numara olmuş elinize sağlık sadece bir isteğim olabilir mi sizden.
Şöyleki ;şuan kodu "Rapor Formüllü_ TC Stok Raporu_25.11.2011" isimli kitaba yazdık bunun tam tersini yapabilirmiyiz yani "Stok_Ayırma ve Karşılaştırma_Macro_01.xlsm" isimli kitaptan veriyi oraya yazmak istiyorum.
Neden derseniz bu macroda çalışan bir sürü macro var (bu macroları da sağolsun Ayhan Korhan Bey yapmıştı.) sizin yapmış olduğunuz bu son iki macroda bunların devamı niteliğinde.O yüzden sizin bu en son yaptığınız macroyu "Stok_Ayırma ve Karşılaştırma_Macro_01.xlsm" bu kitaba yapıştırmak istiyorum.

Acaba mümkün mü ?
 
İhsan Bey ,
10 numara olmuş elinize sağlık sadece bir isteğim olabilir mi sizden.
Şöyleki ;şuan kodu "Rapor Formüllü_ TC Stok Raporu_25.11.2011" isimli kitaba yazdık bunun tam tersini yapabilirmiyiz yani "Stok_Ayırma ve Karşılaştırma_Macro_01.xlsm" isimli kitaptan veriyi oraya yazmak istiyorum.
Neden derseniz bu macroda çalışan bir sürü macro var (bu macroları da sağolsun Ayhan Korhan Bey yapmıştı.) sizin yapmış olduğunuz bu son iki macroda bunların devamı niteliğinde.O yüzden sizin bu en son yaptığınız macroyu "Stok_Ayırma ve Karşılaştırma_Macro_01.xlsm" bu kitaba yapıştırmak istiyorum.

Acaba mümkün mü ?

Üstteki makroyu güncelledim. Tekrar deneyin.
 
İhsan Bey çok teşekkürler ancak sizi uğraştırıyorum bunun farkındayım ütfen kusura bakmayın.
Bilgileri "Stok_Ayırma ve Karşılaştırma_Macro_01.xlsx" kitabından "Rapor Formüllü_ TC Stok Raporu_25.11.2011.xlsx" kitabına yapıştırması lazım.
Şuanki kodda "Rapor Formüllü..." dosyasından alıp "Stok ayırma ..." kitabına yapıştırıyor.

Şunu diyebilirsiniz ilk yazdığım kod bu şekilde çalışıyordu ancak orada kodu "Rapor formüllü.." dosyanın içerisinde çalışıyordu.

Size zahmet verdim çok teşekkürler
 
araya telefonlar vb girince uzadı.
emek harcadım boşa gitmesin.

Kod:
Sub Sayfa_Kopya()

Dim wbTWB As Workbook, wbRF As Workbook
Dim wsSil As Worksheet, wsKopya As Worksheet
Dim RFAd As String, klasor As String, sayfalar

Set wbTWB = ThisWorkbook 'kodlar Stok_Ayırma ve Karşılaştırma_Macro_01.xlsm içinde

klasor = ThisWorkbook.Path 'aynı klasörde olduğu farz edildi. farklı ise buraya tam yolu yazın.
RFAd = klasor & "\" & "Rapor Formüllü_ TC Stok Raporu_25.11.2011.xlsx"

On Error Resume Next
Set wbRF = Workbooks("Rapor Formüllü_ TC Stok Raporu_25.11.2011.xlsx") 'dosya açıksa bu, değilse aşağıdaki
On Error GoTo 0

If wbRF Is Nothing Then
    Set wbRF = Workbooks.Open(RFAd) 'kapalı ise
End If

sayfalar = Array("POS Seri Numara Listesi", "Pinpad Seri Numara Listesi", "Tc_Simcard")

With wbRF
    For i = LBound(sayfalar) To UBound(sayfalar)
        .Worksheets(sayfalar(i)).Cells.Clear
    Next
End With

For i = LBound(sayfalar) To UBound(sayfalar)
    wbTWB.Worksheets(sayfalar(i)).UsedRange.Copy wbRF.Worksheets(sayfalar(i)).Range("a1")
Next

End Sub
 
Sayın Mancubus ,
çok çok teşekkür ederim 10 numara olmuş elinize sağlık.Aynı şekilde İhsan bey size de teşekkürker.

Sayın Mancubus sadece bir şey daha sorabilirmiyim normalde "Rapor Formüllü_ TC Stok Raporu_25.11.2011.xlsx" isimli dosyanın bütün ismini alıyor ve bu dosyaya göre yapıyor.
Şöyle bir şey mümkün mü "Rapor Formüllü_ TC Stok Raporu_25.11.2011.xlsx" isimli dosyanın SADECE "Rapor Formüllü_ TC Stok Raporu" kısmını arasa ve bulduğunda aynı işlemi yapabilir mi
Eğer sizleri uğraştıracaksa hiç zahmet etmeyin

Teşekkürler
 
tabii. aşağıdakini deneyiniz. anacak bu şekilde başlayan 1 adet dosya olması lazım. 1'den fazla olursa da çalışır. yalnız ismi en küçük (A'dan Z'ye sıralandığında) dosyayı açar.

Rapor Formüllü_ TC Stok Raporu_25.11.2011
Rapor Formüllü_ TC Stok Raporu_26.11.2011
Rapor Formüllü_ TC Stok Raporu_27.11.2011

Rapor Formüllü_ TC Stok Raporu_25.11.2011 dosyası üzerinde çalışır.

Kod:
Sub Sayfa_Kopya()

Dim wbTWB As Workbook, wbRF As Workbook
Dim wsSil As Worksheet, wsKopya As Worksheet
Dim RFAd As String, klasor As String, dosya
Dim sayfalar

klasor = ThisWorkbook.Path 'aynı klasörde olduğu farz edildi. farklı ise buraya tam yolu yazın.
dosya = klasor & "\" & "Rapor Formüllü_ TC Stok Raporu*"
RFAd = Dir(dosya)

Set wbTWB = ThisWorkbook 'kodlar Stok_Ayırma ve Karşılaştırma_Macro_01.xlsm içinde

On Error Resume Next
Set wbRF = Workbooks(RFAd) 'dosya açıksa bu, değilse aşağıdaki
On Error GoTo 0

If wbRF Is Nothing Then
    Set wbRF = Workbooks.Open(RFAd) 'kapalı ise
End If

sayfalar = Array("POS Seri Numara Listesi", "Pinpad Seri Numara Listesi", "Tc_Simcard")

With wbRF
    For i = LBound(sayfalar) To UBound(sayfalar)
        .Worksheets(sayfalar(i)).Cells.Clear
    Next
End With

For i = LBound(sayfalar) To UBound(sayfalar)
    wbTWB.Worksheets(sayfalar(i)).UsedRange.Copy wbRF.Worksheets(sayfalar(i)).Range("A1")
Next

End Sub
 
Sayın mancubus ,
kodu yapıştırdım ama şöyle bir hata verdi
Diğer dosya (Rapor formüllü...) kapalıyken macro ekte gönderdiğim hatayı veriyor.
Bakma imkanınız yoksa sizi uğraştıracaksa hiç zahmet etmeyin ben diğer şekli ile de idare ederim.Çok zahmet verdik.Teşekkürler
İyi çalışmalar
 

Ekli dosyalar

  • Hata Mesajı.JPG
    Hata Mesajı.JPG
    68.8 KB · Görüntüleme: 7
Sayın mancubus ,
kodu yapıştırdım ama şöyle bir hata verdi
Diğer dosya (Rapor formüllü...) kapalıyken macro ekte gönderdiğim hatayı veriyor.
Bakma imkanınız yoksa sizi uğraştıracaksa hiç zahmet etmeyin ben diğer şekli ile de idare ederim.Çok zahmet verdik.Teşekkürler
İyi çalışmalar

Ben sizin probleminizi anlamadım ilk verdiğim kod işinize yarıyordu değiştirin dedin değiştirdim
Şimdi problem nedir.
Rapor Formüllü_ TC Stok Raporu_25.11.2011.xlsx
Bu kitaba nasıl kayıt yapılacak onu söylerseniz yardımcı olabilirim sanırım.
 
Sayın İhsan Bey ,
Şöyleki sizin en son güncellediğiniz macro da
"Rapor Formüllü_ TC Stok Raporu_25.11.2011.xlsx deki bilgileri "Stok_Ayırma ve Karşılaştırma_Macro_01.xlsx" isimli dosyaya yapıştırıyordu. (Kodlar bu dosyanın içerisindeydi)
Benim isteğim ise şöyle idi "Stok_Ayırma ve Karşılaştırma_Macro_01.xlsx" deki bilgileri "Rapor Formüllü_ TC Stok Raporu_25.11.2011.xlsx isimli dosyaya yapıştırmasını istemiştim.
Sizden hemen sonra Sayın mancubus cevap verdi.Onun verdiği kodlar doğru çalıştı.Sadece macubus Bey den dosya kapalıyken çalışmıyor diye mesaj yazdım.
Şuan ki haliyle ben işimi hallettim siz hiç zahmet etmeyin. Sizlerede çok zahmet verdim gerçekten
çok teşekkür ederim.
İyi çalışmalar
 
Sayın mancubus ,
kodu yapıştırdım ama şöyle bir hata verdi
Diğer dosya (Rapor formüllü...) kapalıyken macro ekte gönderdiğim hatayı veriyor.
Bakma imkanınız yoksa sizi uğraştıracaksa hiç zahmet etmeyin ben diğer şekli ile de idare ederim.Çok zahmet verdik.Teşekkürler
İyi çalışmalar

rica ederim.
hata veren bölümü aşağıdaki ile değiştirerek dener misiniz?
Kod:
If wbRF Is Nothing Then
    Set wbRF = Workbooks.Open(klasor & "\" & RFAd) 'kapalı ise
End If
 
Sayın mancubus,
çok teşekkürler tamamdır.Ellerinize sağlık Allah bütün hocalarımızın gönlüne göre versin
 
Bu mesajı dikkate almayın lütfen.Sorunu halletim, benden kaynaklıymış.
Teşekkürler


Sayın Mancubus merhaba ,
tekrar ben, az önce sizin kodları gerçek dosya üzerinde denedim ancak şöyle bir hata aldım

ekte hata resmini gönderiyorum.Bakabilirseniz memnun olurum.
 

Ekli dosyalar

  • Hata2.jpg
    Hata2.jpg
    94.2 KB · Görüntüleme: 3
Son düzenleme:
çözülmüş gerçi ama bilgilendirme amaçlı ekleyelim.


Kod:
sayfalar = Array("POS Seri Numara Listesi", "Pinpad Seri Numara Listesi", "Tc_Simcard")
diyerek sayfa isimlerini diziye atadık.

döngü sayfalar dizisinin elemanlarını tek tek sayfa ismi olarak kullanıyor. eğer sayfalar dizisinde yer alan isimlerden herhangi biri kitapta yoksa bu hatayı verecektir.
 
ellerinize sağlık benimde çok işime yarayacak sanırım ...
rica ederiz.


çözülmüş gerçi ama bilgilendirme amaçlı ekleyelim.

Kod:
sayfalar = Array("POS Seri Numara Listesi", "Pinpad Seri Numara Listesi", "Tc_Simcard")
diyerek sayfa isimlerini diziye atadık.

döngü sayfalar dizisinin elemanlarını tek tek sayfa ismi olarak kullanıyor. eğer sayfalar dizisinde yer alan isimlerden herhangi biri kitapta yoksa bu hatayı verecektir.


bir ilave: "isimlerden herhangi biri yoksa" derken "bire bir aynı değilse" anlaşılmalıdır. sayfa ismi "veriler" olsun. biz bunu koda 1 harf fazlası ile "verilerr" olarak yazarsak örtüşmeyecektir.

çoklukla başka kitaplardan aldığımız kodları kendi kitabımıza uyarlarken başımıza gelen hatalardandır.
 
Geri
Üst