Geliştirici

Excelde Makro ile Döviz Kurlarını Getirmek


Microsoft Excel ‘de veri getirme tekniklerini daha önce çeşitli konu başlıklarıyla detaylı olarak incelemiştik. Bunlardan birkaç Makro ve Excel örneklerini aşağıdaki linklerden inceleyebilirsiniz.

bkz. Excel Döviz Kuru Aktarma | TCMB

bkz. Excel Makro VBA ile Web ‘den Veri Getirme

Bu değerli konuların önem derecesini arttırmak adına bloğumda daha fazla yer ayırmaya karar verdim, böylece siz değerli okurlarıma alternatif çözüm seçenekleri sunmak isterim. Temel mantık yukarıdaki konular ile aynıdır, Excel ‘de Makro ile webden veri getirme tekniğini kullanarak QNB Finansbank Enpara sitesinde bulunan Döviz kurlarını nasıl getirebilirim sorusuna hep birlikte yanıt bulacağız. ( Aşağıda tercih edilen web sitesi yalnızca temsili bir örnektir.) 

Paylaştığım daha önceki konularımı inceleyen takipçilerim için işler biraz daha kolay olacaktır ama korkmayın yeni adaylar için de güzel bir başlangıç olabilir. Makro ile webden nasıl veri getirilebileceğini detaylıca tüm hatlarıyla birlikte anlatacağım.

  • Başlayalım;

Excel ‘de uygulanan her işlemi makro sayesinde kolaylaştırabilirsiniz. Bu olayların yapı taşı olarak adlandıracağımız editör ekranının adı ise Excel‘ de Visual Basic Editör penceresidir.

Önemli
1.Kural : Daha önceki konularda anlattığım gibi, webden veri çekmek için öncelikle ilgili web sayfasının HTML kodlarını kontrol etmemiz gerekir.

Bunun için örnek olarak baz aldığımız aşağıdaki döviz kurlarını içeren siteyi açıyoruz,

www.qnbfinansbank.enpara.com/doviz-kur-bilgileri/doviz-altin-kurlari.aspx

Daha sonra açılan sayfadan tag isimlerini tespit ediyoruz.Bunun için aşağıdaki resmi inceleyin. Mesela Excel’de hücreye getirmek istediğimiz kur değerinin adresini öğrenmek için o değerin üzerine sağ tıklayıp incele diyoruz, açılan ek pencereden gördüğünüz gibi “dlCont” ismini yakalıyoruz. Neden dlCont derseniz, mouse ile dlCont yazısının üstine gelirseniz, web sayfasında kur hücresinin seçili alana dönüştüğünü fark edebilirsiniz.

Adres tespitini yaptık, şimdi dönelim Excel ‘e … Yeni bir sayfa açıyoruz, sonra da Visual Basic Editor penceresine ulaşıyoruz. Bu işlevin kısayol tuş kombinasyonu Ctrl + F11’dir arkadaşlar.

excel makro ile webden veri getirmek

excel makro ile webden veri getirmekBu pencereyi gördüğünüz gibi aşağıdaki şu kodları yazarak ilk çerçeveyi oluşturalım.

Belirlenen kod aralığına ihtiyacımız doğrultusunda komutlar yazacağız.


  • Web’den veri getirmek için ;

Excel > Veri > Dış Veri Al > Web ‘den seçeneğini hepimiz biliyoruz. Bu yöntem bir tarayıcı sayesinde web sitesine bağlanıp, bir tabloyu Excel sayfamıza getirmemiz için kullanılır. Lakin, biliyoruz ki web sayfasındaki tüm verileri getirmek bizim için uygun işlem değil, amacımız istediğimiz alanlarda nokta atışı yaparak istenilen veriyi getirebilmektir.

Anlattığım uzun yol mantığını makroda yazmak için şöyle bir tanımlama gerekir.

Zaten çokta karışık birşey değil, internet explorer sayfasını açmamızı ve belirlediğimiz adrese bağlanmasını sağlayacak komutlar bunlar. Sondaki Do Loop Until döngüleri için Excel VBA Döngüleri ve Detaylar konusunu inceleyebilirsiniz. Burada Excel ‘e ait tüm makro döngülerini detaylı, resimli ve örnekli bir şekilde inceleme şansınız bulunuyor.

Konuyu dağıtmadan devam edelim, şimdi makro kodu yardımıyla birlikte, getElements tanımlarını yapacağız. Blog takipçilerim için bu konuya bağlı olan birçok zengin makale linki veriyorum, bu konulara göz atarak anlattıklarımı pekiştirebilir, tecrübenizi arttırabilir aynı zamanda yaptığınız işlemleri pratiğe dönüştürebilirsiniz. Excel Makro VBA ile Web ‘ den Veri Getirme konusunda getElements tanımını anlatmıştım, bu konuda aynı mantığı kullanarak makro kodları oluşturacağım.

Yukarıda yazılan makro kodlarında anlatılmak istenen, KurAlis isminde bir tanımlama yapıyorum, bu tanımlamanın işlevinde internet.explorer.Dökümanını açıyoruz, getElemens yani getir kardeşim dlCont elementinin 1.sırasındaki değeri…. sondaki innerText ise, bu değeri Excel sayfasına metin olarak yapıştır demektir. Buraya kadar yazılan komutlar, web sayfasına ulaştırır, belirlenen noktalardan verileri alır… şimdi ise bu verileri Excel ‘de nereye yazılacağını belirleyelim. Bunun için ;

kodlarını kullanabiliriz, KurAlis değerini A1 hücresine getirir, KurSatis değerini B1 hücresine getirir.

Son olarak işlemler bittiğinde, Excel içerisinde açılan explorer penceresinin kapatılması için ” ie.Quit ” yazılır.

Sırasıyla anlattığım kodları, en başta yazdığım Sub – EndSub komutlarının arasına ekleyin ve sonucu test edin 🙂

excel makro webden veri getirmek

excel makro webden veri getirmek


Olabildiğince detaylı, açıklayıcı şekilde her satırı, her makro kodunu açıklamaya çalıştım. Başlangıç seviyesinden, ileri düzey seviyesine kadar her kullanıcının yapabileceği kolaylıktadır.

Soru ve görüşleriniz için, ayrıca dosyayı hazırlamakta sorun yaşayan olursa yorum kısmından örnek dosya talebinde bulunabilirsiniz.

[ Excel , makro , VBa , Web ‘den veri al ,veri getirme , veri çekmek , döngüler , getElements , Makro ile web sitesinden nasıl veri getirilir , Excel ‘de makro kodları ile veri çekmek, makro lie web sayfası açmak , makro ile veri getirme , Excel teknikleri, webten al, webten veri getir, webden getirmek, istenilen değerleri webden excele aktarmak,]

 


This Post Has 3 Comments

  1. ertan Reply

    benzer bir şekilde bilanço analizi için “isyatirim com tr/tr-tr/analiz/hisse/sayfalar/sirket-karti.aspx?hisse=EREGL” adresinden finansal değerleri çekmek mümkün mü ? Tamamını excele aktar butonu var ilgili sitede ancak ben bunu otomatik ve istediğim hisse ismini excelde girerek yapma istiyorum. Bununla ilgili örnek bir çalışma yapabilir misiniz ?
    iyi çalışmalar.

  2. Ferdi Reply

    Yazınızı okudum uyguladım. Döviz/ altın yatırımlarımı excel aracılığı ile yönetiyordum. Verileri el ile getiriyordum. Artık excelde makro ile döviz kurlarını getirebiliyorum. Bitcoin ve altcoin işlemleri içinde yapmaya çalıştım ama yapamadım. Konu ile ilgili bir yazı yazarsanız sevinirim.

  3. hakan Reply

    Dediklerini aynen uyguladım işe de yaradı ancak kur ile birlikte örn. 3,654567 TL yazıyor ve bunu elimdeki parayla çarp işlemi yapınca TL yüzünden #DEĞER hatası veriyor. Bunu nasıl çözebilirim ki.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir