Makro dosyasını uzaktan güncelleme

dgdizayn

Altın Üye
Katılım
7 Mart 2011
Mesajlar
138
Excel Vers. ve Dili
OFFİCE 2019 EN
Altın Üyelik Bitiş Tarihi
04-05-2028
Merhabalar,

Biraz araştırma yaptım fakat istediğim şeyi bulamadım. Bir makro dosyası var, bu dosya tahmini 50 kişiye dağıtılıyor. Herkes bu dosyada işlem yapıyor.
Bu excel dosyası açılır açılmaz, gir uzak sunucundan dosyası aç oradan veriyi kopyala açık olan tabloya yapıştır ve makroda buradaki hücreden veriyi al ona göre çalış,

Daha sonrasında Benim makroda şöyle bir kodum var: KynkSyf.Range("B2").Value = HdfSyf.Range("B2").Value Örneğin bu kodun tamamını hücreye yazırsam makro bu kodun tamamını hücreden alabilir mi. Bunu niçin istiyorum, Buradaki kodu değiştirebilirim yada B2 yazan hücre değerlerini değiştirebilirim. Bu şekilde uzaktan bir güncelleme yapabilir miyim, excelin böyle çalışma mantığı var mıdır.

Teşekkürler.
 

dgdizayn

Altın Üye
Katılım
7 Mart 2011
Mesajlar
138
Excel Vers. ve Dili
OFFİCE 2019 EN
Altın Üyelik Bitiş Tarihi
04-05-2028
Merhabalar,
Rastgele kendi kodlarımdan deneme yanılma yöntemiyle çözdüm ve aşağıdaki kodları paylaşıyorum.

Buradaki kod excel sayfanızda açıldığında otomatik olarak çalışmasını sağlıyor.
Kod:
Sub Auto_Open()
End sub
Buradaki kod ise sağ taraftaki uzak sunucu, sol taraf ise açık olan excel sayfası
Kod:
KynkSyf.Range(CellValuee).Value = HdfSyf.Range(CellValue).Value
Makrodaki kodlardan hücreden veri alma olayı. Hücreye ne yazarsam yazayım makro buradan veri alıp buna göre çalışıyor
Kod:
Dim CellValue As String
    Dim CellValuee As String
 CellValue = Range("A1").Value 'Açık olan excel sayfasının örneğin A1 hücresine yazmış olduğun değer A1 yada A1:D100 vb yazdığınızda uzak sunucundan olanı seçer ve kopyalar
    CellValuee = Range("A2").Value 'Açık olan excel sayfasının örneğin A2 hücresine yazmış olduğun değer A1 yada A1:D100 vb yazdığınızda uzak sunucundan olanı seçer ve kopyalar

Kodların tamamı ise
Kod:
Sub Auto_Open()
    Dim KynkSyf As Worksheet, Hdf As Workbook, HdfSyf As Worksheet
    Dim Yol As String, Dosya_Adi As String, Zamn As Date, sonsatir As Integer
    Dim CellValue As String
    Dim CellValuee As String
    Application.ScreenUpdating = False
    Zamn = Time
    CellValue = Range("A1").Value 'Açık olan excel sayfasının örneğin A1 hücresine yazmış olduğun değer A1 yada A1:D100 vb yazdığınızda uzak sunucundan olanı seçer ve kopyalar
    CellValuee = Range("A2").Value 'Açık olan excel sayfasının örneğin A2 hücresine yazmış olduğun değer A1 yada A1:D100 vb yazdığınızda uzak sunucundan olanı seçer ve kopyalar
    
    Set KynkSyf = ThisWorkbook.ActiveSheet
    
    Yol = "D:\"            'Kapalı Dosyanın yolu
    Dosya_Adi = "kapali.xlsx" 'Kapalı Dosyanın Adi
 
    Set Hdf = Workbooks.Open(Yol & Dosya_Adi, False, False)
    Set HdfSyf = Hdf.Sheets("Sheet1") 'Kapalı Dosyanın Sayfa adi
              
  KynkSyf.Range(CellValuee).Value = HdfSyf.Range(CellValue).Value
        
    
    Hdf.Close True
    Application.ScreenUpdating = True
    MsgBox Format(Time - Zamn, "hh:mm:ss") & " Surede Islem Tamamlandi" & vbLf & Application.Username, vbInformation
    
End Sub

Buradaki kodlara niye ihtiyaç duyduğumu söyleyeyim. Bir excel dosyasını başkalarına gönderdiğinizde ve kodlarda güncelleme yaptığınızda yeniden excel göndermeniz gerekecek. Buradaki yaptığım çalışma ise sanki o dosyaya güncelleme yapıyoruz. Elimde kapali.xlsx dosyası var ve bu hücrelere istediğim zaman uzak sunucunda güncelleme yapabiliyorum. Bu kodlarla aynı şekilde bir modül daha oluşturup A1 ve A2 dosyasına ne yazılacağına uzak dosyadan yazıp kaydediyorum ve istediğim güncellemeler herkese gitmiş oluyor. Bu kurguyu farklı şekilde düşündükçe daha güzel şeyler çıkacağını düşünüyorum.
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Merhabalar,
Rastgele kendi kodlarımdan deneme yanılma yöntemiyle çözdüm ve aşağıdaki kodları paylaşıyorum.

Buradaki kod excel sayfanızda açıldığında otomatik olarak çalışmasını sağlıyor.
Kod:
Sub Auto_Open()
End sub
Buradaki kod ise sağ taraftaki uzak sunucu, sol taraf ise açık olan excel sayfası
Kod:
KynkSyf.Range(CellValuee).Value = HdfSyf.Range(CellValue).Value
Makrodaki kodlardan hücreden veri alma olayı. Hücreye ne yazarsam yazayım makro buradan veri alıp buna göre çalışıyor
Kod:
Dim CellValue As String
    Dim CellValuee As String
CellValue = Range("A1").Value 'Açık olan excel sayfasının örneğin A1 hücresine yazmış olduğun değer A1 yada A1:D100 vb yazdığınızda uzak sunucundan olanı seçer ve kopyalar
    CellValuee = Range("A2").Value 'Açık olan excel sayfasının örneğin A2 hücresine yazmış olduğun değer A1 yada A1:D100 vb yazdığınızda uzak sunucundan olanı seçer ve kopyalar

Kodların tamamı ise
Kod:
Sub Auto_Open()
    Dim KynkSyf As Worksheet, Hdf As Workbook, HdfSyf As Worksheet
    Dim Yol As String, Dosya_Adi As String, Zamn As Date, sonsatir As Integer
    Dim CellValue As String
    Dim CellValuee As String
    Application.ScreenUpdating = False
    Zamn = Time
    CellValue = Range("A1").Value 'Açık olan excel sayfasının örneğin A1 hücresine yazmış olduğun değer A1 yada A1:D100 vb yazdığınızda uzak sunucundan olanı seçer ve kopyalar
    CellValuee = Range("A2").Value 'Açık olan excel sayfasının örneğin A2 hücresine yazmış olduğun değer A1 yada A1:D100 vb yazdığınızda uzak sunucundan olanı seçer ve kopyalar
   
    Set KynkSyf = ThisWorkbook.ActiveSheet
   
    Yol = "D:\"            'Kapalı Dosyanın yolu
    Dosya_Adi = "kapali.xlsx" 'Kapalı Dosyanın Adi

    Set Hdf = Workbooks.Open(Yol & Dosya_Adi, False, False)
    Set HdfSyf = Hdf.Sheets("Sheet1") 'Kapalı Dosyanın Sayfa adi
             
  KynkSyf.Range(CellValuee).Value = HdfSyf.Range(CellValue).Value
       
   
    Hdf.Close True
    Application.ScreenUpdating = True
    MsgBox Format(Time - Zamn, "hh:mm:ss") & " Surede Islem Tamamlandi" & vbLf & Application.Username, vbInformation
   
End Sub

Buradaki kodlara niye ihtiyaç duyduğumu söyleyeyim. Bir excel dosyasını başkalarına gönderdiğinizde ve kodlarda güncelleme yaptığınızda yeniden excel göndermeniz gerekecek. Buradaki yaptığım çalışma ise sanki o dosyaya güncelleme yapıyoruz. Elimde kapali.xlsx dosyası var ve bu hücrelere istediğim zaman uzak sunucunda güncelleme yapabiliyorum. Bu kodlarla aynı şekilde bir modül daha oluşturup A1 ve A2 dosyasına ne yazılacağına uzak dosyadan yazıp kaydediyorum ve istediğim güncellemeler herkese gitmiş oluyor. Bu kurguyu farklı şekilde düşündükçe daha güzel şeyler çıkacağını düşünüyorum.
Hocam kaynak dosya ile uzaktan işlem yapılan dosyaları paylaşabilir misiniz.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
DLL yazılırsa daha kolay olur gibi görünüyor.
 
Üst