• 24-07-2023, 15:42:00
    #1
    Merhaba, excel kullanarak A!,A2,A3... A1000 e kadar giden şeklinde tarihler yazıyor alt alta. Ben bu tarihlerin karşısına o günlerin dolar kurlarını yazdırmak istiyorum. Sadece geçmiş tarihli değil. Zannediyorum ki elimde bir veritabanı olmalı. Veritabnında tarihler ve karşısında kurlar yazdıktan sonra tarihe göre kurları eşleştirmeyi düşeyara gibi formüllerle ben yapabilirim diye düşünüyorum. Fakat bu veritabınını nasıl elde edebilirim ? EVDS üzerinden geçmiş yıllardan bugüne kadar olan kurları excel olarak indirebiliyorum fakat bu da geçmiş tarihli oluyor bir sonraki güne geçtiğimizde. Yani istediğim şeyi şöyle tanımlayabilirim: 10 Yıl öncesinden başlayarak bu veriyi çektiğim güne kadar gün gün döviz kurunu bana verecek ( Bunu EVDS üzerinden basitçe yapabiliyorum ) + Ben bu veriyi excel halinde aldıktan sonra örneğin 10 gün sonra tekrar exceli açtığımda aradaki 10 günün döviz kurunu da çekecek ( aslında bu siteye girip her gün yeniden excel oluşturunca çözülüyor fakat her gün bunu yapmak mümkün değil ).
  • 24-07-2023, 15:44:02
    #2
    Öncesini dediğiniz gibi geçmiş tarihli kurları indirerek halledebilirsiniz. Güncel hallerini ise fixer.io gibi API kullanarak yapabilirsiniz. Aradaki günler için de Excel'e VBA Makrosu eklemeniz gerekiyor.
  • 24-07-2023, 15:49:11
    #3
    Web üzerinden veri çekebilirsiniz.

    https://www.tcmb.gov.tr/kurlar/kurlar_tr.html
  • 24-07-2023, 15:50:50
    #4
    GVertigang adlı üyeden alıntı: mesajı görüntüle
    Öncesini dediğiniz gibi geçmiş tarihli kurları indirerek halledebilirsiniz. Güncel hallerini ise fixer.io gibi API kullanarak yapabilirsiniz. Aradaki günler için de Excel'e VBA Makrosu eklemeniz gerekiyor.
    Fixer.io ile anlık verisini diyorsunuz sanırım. Anlık döviz kurunu her yerden çekebilirim sorun yok hocam. Excel'e VBA Makrosu dediğiniz kısmı bilgim olmadığı için anlayamadım fakat araştıracağım. Teşekkür ederim
  • 24-07-2023, 15:51:39
    #5
    Aşağıda TRY, USD ve EUR için örnek bir VBA Makrosu var. Kendinize göre düzenleyerek bu makro ile API sayesinde güncel kurları çekerek yazdırabilirsiniz.

    Sub UpdateExchangeRates()
        Dim url As String
        Dim xmlhttp As Object
        Dim json As Object
        Dim rates As Object
        Dim baseCurrency As String
        Dim targetCurrencies As Variant
        Dim cell As Range
    
        ' API'ye bağlanacak URL
        url = "API_URL"
    
        ' HTTP isteği oluştur
        Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
        xmlhttp.Open "GET", url, False
        xmlhttp.send
    
        ' JSON verilerini al
        Set json = JsonConverter.ParseJson(xmlhttp.responseText)
    
        ' API'den alınan verileri işle
        Set rates = json("rates")
        baseCurrency = json("base")
        targetCurrencies = Array("USD", "EUR", "TRY")
    
        ' Hücreleri güncelle
        For Each cell In Sheets("Sheet1").Range("B2:B4") ' Tarihlerin bulunduğu sütun
            For i = LBound(targetCurrencies) To UBound(targetCurrencies)
                Sheets("Sheet1").Cells(cell.Row, cell.Column + i).Value = rates(targetCurrencies(i)) / rates(baseCurrency)
            Next i
        Next cell
    
        ' Temizlik yap
        Set xmlhttp = Nothing
        Set json = Nothing
        Set rates = Nothing
    End Sub
  • 24-07-2023, 15:52:11
    #6
    Typography adlı üyeden alıntı: mesajı görüntüle
    Web üzerinden veri çekebilirsiniz.

    https://www.tcmb.gov.tr/kurlar/kurlar_tr.html
    Site değişti hocam. Eskisi gibi tablo halinde vermiyor direkt. Sayfa açıldıktan sonra seçmeniz gerekiyor vs. Excele çekmek için pek uygun değil sanırım. EVDS üzerine taşınmış yani eski hali fakat orada da dediğim gibi yeni günler için tekrar dosya oluşturtmam gerekiyor.
  • 24-07-2023, 15:54:18
    #7
    GVertigang adlı üyeden alıntı: mesajı görüntüle
    Aşağıda TRY, USD ve EUR için örnek bir VBA Makrosu var. Kendinize göre düzenleyerek bu makro ile API sayesinde güncel kurları çekerek yazdırabilirsiniz.

    Sub UpdateExchangeRates()
        Dim url As String
        Dim xmlhttp As Object
        Dim json As Object
        Dim rates As Object
        Dim baseCurrency As String
        Dim targetCurrencies As Variant
        Dim cell As Range
    
        ' API'ye bağlanacak URL
        url = "API_URL"
    
        ' HTTP isteği oluştur
        Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
        xmlhttp.Open "GET", url, False
        xmlhttp.send
    
        ' JSON verilerini al
        Set json = JsonConverter.ParseJson(xmlhttp.responseText)
    
        ' API'den alınan verileri işle
        Set rates = json("rates")
        baseCurrency = json("base")
        targetCurrencies = Array("USD", "EUR", "TRY")
    
        ' Hücreleri güncelle
        For Each cell In Sheets("Sheet1").Range("B2:B4") ' Tarihlerin bulunduğu sütun
            For i = LBound(targetCurrencies) To UBound(targetCurrencies)
                Sheets("Sheet1").Cells(cell.Row, cell.Column + i).Value = rates(targetCurrencies(i)) / rates(baseCurrency)
            Next i
        Next cell
    
        ' Temizlik yap
        Set xmlhttp = Nothing
        Set json = Nothing
        Set rates = Nothing
    End Sub
    Excel kullanımı hakkında bu kadar ileri düzey değilim hocam ama verdiğiniz makroyla, yöntemle nasıl yapılır araştırayım bir. Teşekkürler
  • 24-07-2023, 15:56:18
    #8
    emrahisler adlı üyeden alıntı: mesajı görüntüle
    Excel kullanımı hakkında bu kadar ileri düzey değilim hocam ama verdiğiniz makroyla, yöntemle nasıl yapılır araştırayım bir. Teşekkürler
    Youtube üzerinde VBA makro kullanımı diye aratarak kolayca öğrenebilirsiniz hocam pek zor bir işlem değil.
  • 24-07-2023, 15:58:11
    #9
    GVertigang adlı üyeden alıntı: mesajı görüntüle
    Youtube üzerinde VBA makro kullanımı diye aratarak kolayca öğrenebilirsiniz hocam pek zor bir işlem değil.
    Çok sağ olun hocam