• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Soru VBA ADO ve SQL ile Kapalı Excel Dosyalarından Veri Çekme

sertac87

Yeni Üye
Katılım
3 Eyl 2026
Mesajlar
2
Aldığı beğeni
0
Excel V
Office 2024 TR
Konu Sahibi
Windows 10 Google Chrome 152
Selamlar herkese, forumda yeniyim. Şirkette bir ana havuz dosyam var. Her gün farklı departmanlardan gelen 15-20 adet kapalı Excel dosyasındaki verileri bu ana dosyada birleştirmek (konsolide etmek) zorundayım.Şu an klasik Workbooks.Open yöntemiyle dosyaları tek tek arka planda açıp, veriyi kopyalayıp kapatan bir makro döngüsü kullanıyorum. Fakat dosyaların her biri yaklaşık 50'şer bin satır olduğu için makronun çalışması bazen 4-5 dakika sürüyor, işlem esnasında Excel tamamen kilitleniyor ve yanıt vermiyor moduna düşüyor.Dosyaları hiç açmadan, arka planda ADO ve SQL (Select * From...) bağlantısı kurarak bu verileri ana dosyama saniyeler içinde çekmenin bir yolu var mıdır? Kod yapısını bir türlü oturtamadım, bağlantı (Connection string) sürekli hata veriyor. Örnek taslak dosyamı ekliyorum, VBA mimarisinde uzman hocalarımızın desteğini bekliyorum.
Şimdiden çok teşekkürler.
 

Ekli dosyalar

Android 10 Google Chrome 152
Merhaba,

Link faydalı olacaktır...

 
Konu Sahibi
Android 10 Google Chrome 152
Selamlar hocalarım,
Korhan AYHAN hocam link için teşekkürler, inceledim fakat VBA ve ADO bağlantı (Connection string) konularında çok yeni olduğum için oradaki kodları kendi örnek dosyama tam olarak entegre etmeyi beceremedim, sürekli hata alıyorum.
İlk mesajda eklediğim vba_ado_kapali_dosya_taslak.xlsx dosyam üzerinden doğrudan revize yapıp, çalışan kod bloğunu paylaşabilecek uzman hocalarımızın değerli çözümlerini bekliyorum. Şimdiden vakit ayıran herkese teşekkürler
 
Windows 10 Google Chrome 152
Selamlar herkese, forumda yeniyim. Şirkette bir ana havuz dosyam var. Her gün farklı departmanlardan gelen 15-20 adet kapalı Excel dosyasındaki verileri bu ana dosyada birleştirmek (konsolide etmek) zorundayım.Şu an klasik Workbooks.Open yöntemiyle dosyaları tek tek arka planda açıp, veriyi kopyalayıp kapatan bir makro döngüsü kullanıyorum. Fakat dosyaların her biri yaklaşık 50'şer bin satır olduğu için makronun çalışması bazen 4-5 dakika sürüyor, işlem esnasında Excel tamamen kilitleniyor ve yanıt vermiyor moduna düşüyor.Dosyaları hiç açmadan, arka planda ADO ve SQL (Select * From...) bağlantısı kurarak bu verileri ana dosyama saniyeler içinde çekmenin bir yolu var mıdır? Kod yapısını bir türlü oturtamadım, bağlantı (Connection string) sürekli hata veriyor. Örnek taslak dosyamı ekliyorum, VBA mimarisinde uzman hocalarımızın desteğini bekliyorum.
Şimdiden çok teşekkürler.

Merhaba.

Doğru yönlendirmek adın birkaç sorum olacak.
1-) He dosyada ellişerbin satır var demişsiniz. Bu dosyalar her gün farklı verilerle mi hazırlanıyor yoksa, aynı dosyaya ilaveler yapılarak mı ilerliyor.
2-) Bu dosyalardaki veriler manuel mi giriliyor yoksa hali hazırda kullanılan bir program varda oradan döküm alınarak mı hazırlanıyor.

İlk sorumun cevabına göre şöyle bir kurgu kurulabilir, aktarılan verinin tekrar aktarılmaması değerlendirile bilir, böylelikle aynı veriler sürekli aktarılmaktansa önceden aktarılanlar yerine yeni eklenenler aktarılır böylelikle işlem süresi kısalabilir.

Hali hazırda bir programdan döküm alınıyorsa zaten veriler bir veri tabanında var demektir, oradan direk çekilebilir.

Excel dosyaları, önce SQL gibi bir veri tabanına aktarılır, orada eğer analiz yada gruplama gibi işlemler yapılacaksa, veri tabanı üzerinde Her zaman hazır tablo halinde bulunan bir view tablo kurgulanır ve bu tablo direk excele aktarılır yine süreç kısalabilir.

Büyük datalarda çözüm yolu çok, önce mevcut durumu işlem tekrarlarını önlemek için iyi değerlendirmek gerekir.

Şunu da unutmamak gerekir, " Alet işler el övünür." Bilgisayarın gücüne ve işlem anındaki durumuna göre süreler değişecektir. Çoğu hızlı çalışan kodlar Ram da geçicide olsa bir alan kapladığı için çok büyük datalarda illaki bir yavaşlama olacaktır, bu nedenle donanım da önemli.

Geri dönüşünüze göre çözümler üretebiliriz.
İyi çalışmalar.
 
Geri
Üst