excel dosyası kapalıyken güncelleştirme

Katılım
14 Kasım 2005
Mesajlar
81
Merhaba arkadaşlar basit bir sorum olacak bir klasör içinde 1 ana olmak üzere ve 21 adet excel dosyası var. 20 adet bağlı dosyamdaki veriler bu ana dosyadaki excele formüle edildi yani ana dosyamda verileri güncellediğimde 20 adet bağlı excel dosyası güncelleniyor fakat bu bağlı dosyaları açınca güncelleme oluyor ben ise ana dosyada ilgili verileri yüklediğimde diğer 20 excel dosyasını açmadan güncellemesini istiyorum . Nasıl yapabilirim yardımlarınızı rica ediyorum .Kısaca aynı kalasör içindeki ana dosyamda veri girişlerini yapıp dosyayı kaydet dediğim zaman ona bağlı 20 adet excel dosyasını açmadan güncelleştirme yapmadan güncellediğim verilerin 20 adet bağlı dosyada güncellemesini istiyorum . Umarım anlatabilmişimdir.
 
Katılım
14 Kasım 2005
Mesajlar
81
günaydın
anladığım kadarıyla bilgisayardan görev zamanlayıcı programlamadan bu işlemi yapamayacağım yani excel dosyalarını muhakkak açılması gerekiyor.
 
Katılım
14 Kasım 2005
Mesajlar
81
peki son olarak şunu sormak istiyorum ana programıma bir makro yazsam güncellemeyi alan 20 dosyayı açıp kapatabilir miyim. Örneğin ana dosyama veri girişi yaptım ve buna bağlı 20 dosyayı tek tek açıp kaydetmek yerine ana dosyadan bir komutla ona bağlı 20 excel dosyası açılsın kaydetsin ve kapansın bunu yapabilir miyim arkadaşlar . Şimdiden çok teşekkürler
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hedef dosyaları belirtmek koşulu ile "Evet" yapabilirsiniz...
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Yukarıda 2. mesajda turist nickli arkadaşın söylemek istediği şey; kapalı dosyalara veri aktarılabilir. Konu hakkında örneklerin olduğu bir link de verilmiş.

Eğer söz konusu ana dosyanız ve verilerin aktarılacağı dosyalar düzgün tablolardan oluşmuşsa, ADO/DAO ile diğer dosyalardaki veriler, bu dosyalar açılmadan güncellenebilir/aktarılabilir.

Kısacası; yapılır, yapıldığı zaman da güzel olur ama emek harcamak lazım...

Korhan bey ise; sizin 1. mesajınızdan yola çıkarak, sadece söz konusu dosyaların açılıp daha sonra kapanmasının yeterli olacağını belirtmeniz üzerine, söz konusu dosyalara ait bir örnek dosya yolu verirseniz, bunun VBA ile yapılabileceğini söylemiş ama muhtemelen meşgul olduğu için henüz size cevap vermedi. Kendisinden bir cevap gelene kadar siz aşağıdaki kodları deneyebilirsiniz.

Bu kodlarda; sizin söz konusu 20 adet dosyanızın bilgisayarda C:\TestFolder klasöründe olduğu varsayılmıştır. Bu klasör yolunu siz kendinize göre değiştirebilirsiniz. Aşağıda söz konusu dosyaları açmak ve kapatmak için 2 ayrı kod vardır.

Kod:
Sub Test_DosyaAc()
    Dim MyDir As String, MyFile As String
    MyDir = "C:\TestFolder"
    If Dir(MyDir, vbDirectory) = "" Then
        MsgBox MyDir & " bulunamadı, programdan çıkılacak !"
        Exit Sub
    End If
  
    MyFile = Dir(MyDir & Application.PathSeparator & "*.xls*")
  
    Do While MyFile <> ""
        If MyFile <> ThisWorkbook.Name Then
            Workbooks.Open Filename:=MyDir & Application.PathSeparator & MyFile
        End If
        MyFile = Dir
    Loop
End Sub
'
Sub Test_DosyaKapat()
    Dim WB As Workbook
    For Each WB In Workbooks
        If WB.Name <> ThisWorkbook.Name Then
            Application.DisplayAlerts = False
                WB.Save
                WB.Close
            Application.DisplayAlerts = True
        End If
    Next
End Sub
.
 
Son düzenleme:
Katılım
7 Kasım 2015
Mesajlar
2
Excel Vers. ve Dili
2010
Haluk bey merhaba. Sizin için basit bir soru olacağını düşünüyorum. Yukarda vermiş olduğunuz formulleri (açma ve kapama) birleştirebilir misiniz. Yani bende bir dosyanın içinde 400 adet excel var. 1 tanede ana dosyam var. 400 excel ana dosyadan veri alıyor. Bu verileri alabilmesi için dosyaları açıp, kapattırmam lazım. Yukarıdaki formülde önce açma sonra kapama ayrı ayrı çalıştığından 400 exceli açmaya çalışıyor buda yavaş oluyor. Sırasıyla önce açacak kaydedip kapatacak sonra diğerine geçecek şeklinde yapabilir miyiz?
 
Üst