Kapalı İki Dosyanın Birinden Diğerine Veri Kopyalama

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
488
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Merhaba Excel hocalarımız

Bilgisayardaki bir konumda (masaüstü değil, herhangi bir konum) birbirinin aynısı olan iki excel dosyası var.

Birinin adı DOSYA1
Diğerinin adı DOSYA2

DOSYA1 adlı dosyanın içinde birçok sayfa var.
Bu sayfalardan birinin adı RAPORLAR sayfasıdır.

DOSYA2 adlı dosyanın içinde de sayfalardan birinin adı doğal olarak RAPORLAR sayfasıdır.

Amacım, talebim şudur:

DOSYA1'in RAPORLAR sayfasında B2:AP10000 alanında (bu alan önemli) çeşitli hücrelerde veriler var. Ve her hücrede açıklama notları var.

Bu iki dosya KAPALI HALDE bir konumda duruyor.
İşte amacım şudur, ÜÇÜNCÜ BİR DOSYADAKİ MAKRO İLE,
DOSYA1'in, RAPORLAR sayfasındaki, B2:AP10000 alanındaki hücreleri ve ekli olan açıklamaları kopyalayıp,
DOSYA2'nin RAPORLAR sayfasına, B2:AP10000 alanına, YAPIŞTIRMAK.
(DOSYA2'nin B2:AP10000 alanı boştur!)

Alan çok büyük olduğu için, bu işi elle yaparsam, hata yapabileceğimden, makro ile hatasız yapılacağını düşündüğümden, bu kodu hocalarımızdan talep ediyorum.

......

Kısaca tekrar etmek gerekirse:
DOSYA1 deki RAPORLAR sayfasındaki B2:AP10000 alanındaki verileri ve ekli açıklamaları kopyalayıp,

DOSYA2 deki RAPORLAR sayfasındaki B2:AP10000 alanına yapıştırmak.

(Yapıştırırken herhangi bir biçimlendirme kesinlikle olmayacak. Verileri yapıştırması yeterlidir.)

Bu iki dosya kapalı olacak, üçüncü bir dosyadaki kodlar bu işi yapacak.

Üç dosya da aynı konumda (adreste ) bulunacak.

DOSYA1'E ya da DOSYA2'YE, makro ilave etmek istemiyorum, zira dosyalar çok fazla kod içeriyor. Bundan dolayı üçüncü bir dosyadaki kodlar bu işi yapmalı.

.......


Otomatik konum bulma sanıyorum Filename:=ThisWorkbook.Path
oluyor. Bu şekilde kodlara konum adresi veya User bilgisi girmeye gerek kalmıyor. Biraz daha pratik oluyor. Onun için masaüstünde değil de dosyaların bulunduğu konumda kopyalama işini yaparsa daha pratik, daha kolay olur diye düşünüyorum.

.....

Şimdiden teşekkür ederim emekleriniz için.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Bütün dosyalarınız aynı klasörde olsun...

C++:
Option Explicit

Sub Data_Transfer()
    Dim File_Path As String, XL_App As Object
    Dim WB1 As Workbook, WB2 As Workbook
    
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    File_Path = ThisWorkbook.Path & "\"
    
    Set XL_App = VBA.CreateObject("Excel.Application")
    XL_App.Visible = False
    XL_App.Application.EnableEvents = False
    
    Set WB1 = XL_App.Workbooks.Open(File_Path & "DOSYA1.xlsm")
    Set WB2 = XL_App.Workbooks.Open(File_Path & "DOSYA2.xlsm")
    
    WB1.Sheets("RAPORLAR").Range("B2:AP10000").Copy
    WB2.Sheets("RAPORLAR").Range("B2").PasteSpecial xlValues
    WB2.Sheets("RAPORLAR").Range("B2").PasteSpecial xlComments
    WB2.Sheets("RAPORLAR").Select
    WB2.Sheets("RAPORLAR").Range("A1").Select
    
    Application.DisplayAlerts = False
    WB1.Application.CutCopyMode = False
    WB2.Close True
    WB1.Close False
    XL_App.Application.EnableEvents = True
    XL_App.Quit
    Application.DisplayAlerts = True
    
    Set WB1 = Nothing
    Set WB2 = Nothing
    Set XL_App = Nothing
    
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    
    MsgBox "Veri transferi başarıyla tamamlanmıştır.", vbInformation
End Sub
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
488
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Değerli Korhan hocamız önce emeğinize sağlık.

Örnek dosyalarda hiç sorun olmadı.
Fakat gerçek dosyalarda deneyince PasteSpecial kısmında hata verdi.

Gerçek dosyalarımın RAPORLAR sayfası bölümünde birçok kod vardı.
Bu kodlarla çakışabileğini düşündüm ve bu kodların tamamını Blokladım geçici olarak (Comment Block)

Böyle deneyince gerçek dosyalarda da sorunsuz çalışmış oldu.
Teşekkürler Korhan hocam.

Aslında çakışma hiç olmasaydı tabi daha iyi olurdu ama sorun yok, zira (daha önceden çok karşılaştım) çok fazla kod içeren komplike dosyalarda, özelllikle yeteri kadar deneme yanılmalar yapılmaz ve kodlar aceleyle eklenirse, mutlaka hatalar çakışmalar oluyordu.

Başka üyelerin örnek dosyalarında bunu çok gördüm.
Bilhassa userformlu dosyalarda.
Bu yüzden userform bana çok uzak bir özellik gibi gelmiştir hep ve hiç kullanamadım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Önerdiğim koda bir-iki küçük ekleme yaptım. Belki bu haliyle kodlardaki çakışmalar sorun yaratmaz.
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
488
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Hemen deniyorum hocam.
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
488
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Korhan hocam bravo.
Hatta öyle ki, önceki mesajımda belirtmemiştim;
bazı sayfalarda yanlışlıkla değişiklik yapılmasın diye şifresiz koruma kullanıyordum.
O korumaları da kaldırmıştım.

İkinci kodunuzla deneyince korumalı sayfalar bile hataya neden olmadı.

İlk kodda hataya sebep oluyordu korumalı sayfalar

Sağ olunuz hocam.
 
Üst