Soru Farklı Excel Dosyasını Aynı Anda Yazma

Katılım
7 Temmuz 2022
Mesajlar
8
Excel Vers. ve Dili
office 2019
Merhabalar

2 ayrı excel dosyası var. A ve B isimli olduğunu farzedelim. A isimli excel dosyasının 2.sütunundaki yazılan tüm yazıların;aynı zamanda
B isimli excel dosyasının 3.sütununda yazmasını istiyorum. Bunu yapmak mümkünmü? Nasıl yapılabilir yardımcı olurmusunuz.
 

Korhan Ayhan

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

Aynı anda yazmak yerine dosyayı kapatırken yazmak daha sağlıklı olacaktır.

Aşağıdaki kodu A isimli dosyanızın ThisWorkbook bölümüne uygulayınız.

A isimli dosyayı kapatırken 2. sütunu B isimli dosyanın ilk sayfasında 3. sütuna yapıştıracaktır.

Ben 2 dosyayı aynı klasörde olacak şekilde kurguladım. Siz kendinize göre kod satırlarını revize edersiniz.

C++:
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim File_Path As String, My_File As String
    Dim WB As Workbook, S1 As Worksheet, S2 As Worksheet
   
    Application.ScreenUpdating = False
    Set S1 = ActiveSheet
    File_Path = ThisWorkbook.Path & "\"
    My_File = "B.xlsx"
    Set WB = Workbooks.Open(File_Path & My_File)
    Set S2 = WB.Sheets(1)
    S1.Columns(2).Copy S2.Columns(3)
    WB.Close True
    Set S1 = Nothing
    Set S2 = Nothing
    Set WB = Nothing
    Application.ScreenUpdating = True
End Sub
 
Katılım
7 Temmuz 2022
Mesajlar
8
Excel Vers. ve Dili
office 2019
Merhaba,

Aynı anda yazmak yerine dosyayı kapatırken yazmak daha sağlıklı olacaktır.

Aşağıdaki kodu A isimli dosyanızın ThisWorkbook bölümüne uygulayınız.

A isimli dosyayı kapatırken 2. sütunu B isimli dosyanın ilk sayfasında 3. sütuna yapıştıracaktır.

Ben 2 dosyayı aynı klasörde olacak şekilde kurguladım. Siz kendinize göre kod satırlarını revize edersiniz.

C++:
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim File_Path As String, My_File As String
    Dim WB As Workbook, S1 As Worksheet, S2 As Worksheet
  
    Application.ScreenUpdating = False
    Set S1 = ActiveSheet
    File_Path = ThisWorkbook.Path & "\"
    My_File = "B.xlsx"
    Set WB = Workbooks.Open(File_Path & My_File)
    Set S2 = WB.Sheets(1)
    S1.Columns(2).Copy S2.Columns(3)
    WB.Close True
    Set S1 = Nothing
    Set S2 = Nothing
    Set WB = Nothing
    Application.ScreenUpdating = True
End Sub
Çok teşekkür ederim Korhan Bey yardımcı olduğunuz için. Bayram dönüşü deneyeceğim.Tekrardan çok teşekkürler.
 
Katılım
7 Temmuz 2022
Mesajlar
8
Excel Vers. ve Dili
office 2019
Merhaba,

Aynı anda yazmak yerine dosyayı kapatırken yazmak daha sağlıklı olacaktır.

Aşağıdaki kodu A isimli dosyanızın ThisWorkbook bölümüne uygulayınız.

A isimli dosyayı kapatırken 2. sütunu B isimli dosyanın ilk sayfasında 3. sütuna yapıştıracaktır.

Ben 2 dosyayı aynı klasörde olacak şekilde kurguladım. Siz kendinize göre kod satırlarını revize edersiniz.

C++:
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim File_Path As String, My_File As String
    Dim WB As Workbook, S1 As Worksheet, S2 As Worksheet
  
    Application.ScreenUpdating = False
    Set S1 = ActiveSheet
    File_Path = ThisWorkbook.Path & "\"
    My_File = "B.xlsx"
    Set WB = Workbooks.Open(File_Path & My_File)
    Set S2 = WB.Sheets(1)
    S1.Columns(2).Copy S2.Columns(3)
    WB.Close True
    Set S1 = Nothing
    Set S2 = Nothing
    Set WB = Nothing
    Application.ScreenUpdating = True
End Sub
Korhan Bey,
Kodu denedim güzel çalışıyor teşekkür ederim..
Fakat excelde çok satırlı veri olduğundan kaydetmesi uzun sürüyor ve bazen donup hata verip kapanıyor.
Ben A,B,C,.....P sütunlarını kopyala yapıştır yaptığımdan çok fazla veri olduğundan kaynaklanıyor.

Benim asıl yapmak istediğim Q ve sonraki sütunları gizlemek. Orada ürün fiyatları yazıyor. Kendi dosyamda ürün fiyatlarını görebileceğim. Diğer excel kullanıcısı ürün içeriğini görecek fakat fiyatlarını göremiyecek yapmak istediğim bu. Bunun için bir çözüm öneriniz varmıdır?

 
Üst