Kapalı Excel Kitabını Açmadan Makro ile İçinden Veri Çekmek

DEGARADO isimli Youtube kanalımız üzerinden bir arkadaşımız aşağıdaki gibi bir soru sormuş. Bende sorusuna binaen bu yazıyı hazırlayarak hem kendisine hemde aynı dertten muzdarip olabilecek herkese yardımcı olabilmek istedim. Arkadaşımızın sorusunu aynen buraya kopyalıyorum.

“Abi ağzına sağlık çok teşekkür ederiz. Abi bir sürü aynı tipte excel raporlarım var. Ben bu excel raporlarımın belli hücrelerinden bilgi alıp ayrı bir rapor oluşturmak istiyorum. Normalde her bilgi almak istediğin çalışma kitabını açıp kapatman gerekiyor. Çalışma kitabını hiç açmadan hücreden veriyi okumanın daha hızlı bir yolu varmıdır acaba? Şimdiden teşekkür ederim.”

Bu soruya cevabım elbette mümkün şeklinde olacaktır. Ancak bunu yapmak için Excel VBA (Visual Basic Application) yani kısaca makro yöntemini kullanmamız gerekmekte. Şimdi bunu nasıl yapabileceğimizi kısaca anlatmak istiyorum.

Soruyu daha kolay anlaşılabilmesi için kısaca özetlemek gerekirse;

Excel üzerinde kapalı olan çalışma kitabımızdaki verileri geçerli yani açık olan çalışma kitabımıza nasıl kopyalama ve aktarma işlemini yapabiliriz?

VBA Penceresine Açmanın Yolları

Bunun için öncelikle Aktif olarak çalışılacak Ms Excel dosyamızı açıyoruz ve ardından kod yazabilmek için VBA Penceresine (Visual Basic Application) geçiş yapıyoruz. Bunun için Sayfa adının üzerine sağ tık ve açılan pencereden Kod görüntüle diyebiliriz. Yada ALT + F11 tuşlarına basabiliriz. Yada Geliştirici sekmesi açıksa direk bu sekmeden Visual Basic bölümüne tıklayarak geçiş yapabiliriz.

Geliştirici sekmesi açık olmayan kişiler bu konuda detaylı bir anlatım yapmış olduğum yazıyı buraya tıklayarak inceleyebilirler.

Ardından açılan pencerede Sekmeler bölümünden Insert sekmesine ardından Module bölümüne tıklayarak yeni bir modül oluşturuyoruz. 

Böylelikle açılan yeni pencerede kodlarımızı yazmaya başlayabiliriz. Aşağıdaki kodları kopyalayıp bu açılan pencereye yapıştırmanız yeterlidir.

Kopyalamanız Gereken VBA Kodları

Alt KapaliExceldenVeriCekme () 
Dim ilk, ikinci Çalışma Kitabı olarak 
Dim Hucre1, Hucre2 As Range 
Set orijinalini = Application.ActiveWorkbook 
Baslik = "https://dilaverajder.com" 
ile Application.FileDialog (msoFileDialogOpen) 
    .Filters.Clear 
    .Filters.Add "Excel 2007-13" , "* .xlsx; * .xlsm; * .xlsa" 
    .AllowMultiSelect = False 
    .Show 
    .SelectedItems.Count> 0 Sonra ise 
        Application.Workbooks.Open .SelectedItems (1) 
        Ikinci Set = Application.ActiveWorkbook 
        Seti Hucre1 = Application.InputBox (prompt: = "Kopyalamak İstediğiniz Hücreleri Seçin", Başlık: = Baslik, Varsayılan: = "A1", Tür: = 8) 
        ilk.Activate
        Set Hucre2 = Application.InputBox (prompt: = "Yapıştıracağınız Yeri Seçin", Başlık: = Baslik, Varsayılan: = "A1", Tür: = 8) 
        Hucre1.Copy Hucre2 
        Hucre2.CurrentRegion.EntireColumn.AutoFit 
        ikinci.Close False 
    End If 
Son 
Alt ile Son

Makroyu Çalıştırma Yöntemleri

İşlemimizi tamamladık. Şimdi yapmamız gereken makroyu çalıştırıp işimize bakmaktır. Ancak bu makroyu çalıştırmak için bir kaç yöntem var ve sırası gelmişken kısaca bunlardan da bahsedeyim.

  1. Makromuzu VBA penceresinde F5 tuşuna basarak çalıştırabiliriz. 
  2. Excel üzerinden çalıştırmak için Excel de bize uygun bir bölüme bir şekil ekleyerek hazırladığımız makroyu bu şekle sağ tık yöntemi ile atayabiliriz.
  3. Daha kolay yöntemi ise yine Excel üzerinden Youtube kanalımda anlatımını yapmış olduğum Menülere makromuzu atayarak çalıştırabiliriz. Video muza buraya tıklayarak ulaşabilirsiniz.
  4. En kolay kullanım için ve tüm MS Excel Kitaplarımızda Makromuzu çalıştırabilmek için ise oluşturmuş olduğumuz makroyu bir eklenti haline haline getirerek her Excel kitabımızda kullanmayı sağlayabiliriz. Bunun içinde hazırlamış olduğum videoyu buraya tıklayarak izleyebilirsiniz.

Evet hangi yöntemi seçerseniz seçin yapmanız gereken Makroyu çalıştırdığınızda açılan pencereden veri çekmek istediğiniz Excel dosyasını seçmek ardından kopyalamak istediğiniz hücreleri mouse ile seçerek Tamam tuşuna basmaktır. Hemen ardından ise Aktif olan pencerede kopyalamış olduğunuz verileri yapıştıracağınız hücreyi seçerek tekrar Tamam tuşuna basmanız yeterli olacaktır.

Artık sadece veri almak için her Excel dosyasını açıp kopyalama işlemini yaptıktan sonra tekrar kapatmanıza gerek kalmayacaktır. Soruyu soran arkadaşımıza özel bir yazı gibi görünse de aslında bir çok kişinin işine yarayacak ve işlemlerini hızlandıracak pratik bir özellik olduğunu düşündüğüm için bu yazıyı hazırladım. Umarım faydasını görürsünüz.. Yazıyı uzun görüp işlemden sakın korkmayın ben sadece anlaşılmayan hiçbir nokta kalmasın diye detaylı bir şekilde anlatım yaptım. Bu yüzden yazımız biraz uzun oldu. İşlemimiz gerçekten çok kolay ve işlemimizi çok hızlandıracaktır.

Bu arada sizlere tekrar etmek istediğim bir konuyu da burada belirtmek istiyorum. Şayet konudan fayda gördüyseniz konunun altına yazacağınız bir ufak teşekkür yorumu ve herkesin yararlanabilmesi için sitemi referans göstererek paylaşım yapabilmeniz benim için gerçekten yazma şevkimin yok olmayarak yazma isteğimin devamını sağlamaktadır.  



1 yorum

Anonim · 31 Ekim 2019 01:30 tarihinde

teşekkürler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.