• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Dış Veri Çekmede Değişken Tanımlama

Sayın cashhflow ; merhabalar.

Kod:
Sub Makro1()
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.isyatirim.com.tr/EskiSite/pages/malitablolar/HisseFiyatBilgi/HisseFiyatBilgi.aspx?P=CL&stock=" & Range("A2").Value _
        , Destination:=Range("$A$4"))
        .Name = "HisseFiyatBilgi.aspx?P=CL&stock=VESTL"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = """DataGrid1"""
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub

Verdiğim kod şunu yapıyor : A2 Hücresine her ne yazarsam ona ait bilgiyi verdiğiniz adresten getiriyor. Kısa bir yol önerim olacak size. Bu kodu makro olarak tutun ve giriş yapacağınız her bilgiyi ayrı bir sayfaya listeleyin ve A2 ye açılan liste olarak alın Worksheet Change olayıyla da Açılan Listede herhangi bir değişiklik olduğunda makronun çalışmasını sağlayarak çok rahat bir şekilde bu işlem çözülebilir. Şuan vaktim dar olduğu için bu kadar yardımcı olabildim. Yarın tekrar bakarım.
 
Kaydetme hedefi olarak başka sayfa seçince işlemi yapmıyor yada ben yanlış yaptım :)
 
Merhaba cashhflow ; işe yaradığına sevindim. Kaydetme hedefi derken ne demek istediğinizi pek anlayamadım. Biraz daha detaylandırırsanız sevinirim.

Eğer anladığım sey başka bir sayfaya veriyi getirtmek ise ;

Kod:
With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.isyatirim.com.tr/EskiSite/pages/malitablolar/HisseFiyatBilgi/HisseFiyatBilgi.aspx?P=CL&stock=" & Range("A2").Value _
        , Destination:=Range("$A$4"))

Kodda dediği bu URL ye gidip bilgiyi al ve A4 hücresinden itibaren yaz diyor. Başka sayfa istiyorsan " Destination:=Range("$A$4") " tırnak içinde koyulaştırdığım yerde düzenleme yapman gerekiyor. Örneğin makroyu bir tuş kısayoluna ata ve makronun o kısmını Destination:=Sheets("Sayfa2").Range("$A$4") olarak değiştir. Bu sefer gidip sayfa2 ye yazacaktır bilgini.
 
Son düzenleme:
Sayın cashhflow ; merhabalar.

Kod:
Sub Makro1()
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.isyatirim.com.tr/EskiSite/pages/malitablolar/HisseFiyatBilgi/HisseFiyatBilgi.aspx?P=CL&stock=" & Range("A2").Value _
        , Destination:=Range("$A$4"))
        .Name = "HisseFiyatBilgi.aspx?P=CL&stock=VESTL"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = """DataGrid1"""
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub

Verdiğim kod şunu yapıyor : A2 Hücresine her ne yazarsam ona ait bilgiyi verdiğiniz adresten getiriyor. Kısa bir yol önerim olacak size. Bu kodu makro olarak tutun ve giriş yapacağınız her bilgiyi ayrı bir sayfaya listeleyin ve A2 ye açılan liste olarak alın Worksheet Change olayıyla da Açılan Listede herhangi bir değişiklik olduğunda makronun çalışmasını sağlayarak çok rahat bir şekilde bu işlem çözülebilir. Şuan vaktim dar olduğu için bu kadar yardımcı olabildim. Yarın tekrar bakarım.


Sevgili TEGCreative, worksheet change olayını nasıl yapabilirim.

Teşekkür ederim, iyi çalışmalar.
 
Merhaba sayın cashhflow ; uzun süredir giremiyordum özel mesajınız ile bi bakayım dedim. Ben bir çalışma yapıp tarafınıza yönlendireyim. Ona göre bakalım
 
Sayın cashhflow ; ilgili dosya ile çalışma yapamıyorum çünkü veri alınan link şuan devre dışı.
 
Merhaba,

Malesef site tamamıyla değişmiş ve tarihsel veriler kaldırılmış başka bir kaynak arıyor olacağım.

Teşekkür ederim ilginize :)
 
Merhaba cashflow ; gönderdiğim dosyada hisse isimlerini manuel olarak Sayfa 1 A2 hücresine girip denermisiniz lütfen ? Yalnız türkçe karakter kullanmayalım.Örneğin ARTI isimli hisse senedi için arti .
 

Ekli dosyalar

Sn. TEGCreative,

Sitenin güncel olmadığı fark ettim farklı bir kaynak bulup onu denedim.

Kod:
 "URL;http://finance.yahoo.com/quote/" & kod & ".IS/history?p=" & kod & ".IS"

URL'yi yukarıdaki yaptım ama veriler yanlış yüklendi :)

Eğer problem düzelirse sitede bulunan time periyodunu da değiştime şansımız var mıdır?

Birde accesse almak mümkün müdür verileri acaba.

Teşekkür ederim.
 

Ekli dosyalar

Merhaba sayın cashhflow ; lütfen deneyip tarafıma dönüş yapar mısınız ?

Eklemedir !

Lütfen dosyanın verileri net(değer değiştirmeden) getirebilmesi için ilk önce Module1 Verial makrosunda ilgili yerleri şu şekilde değiştiriniz.

Kod:
 .WebSingleBlockTextImport = True
 .WebDisableDateRecognition = True
 

Ekli dosyalar

Son düzenleme:
Merhaba TEGCreative,

Dediğiniz değişikliği yaptım.

Ayrıca sitenin güncel olmadığını farkettim o yüzden

"http://finance.yahoo.com/quote/RHEAG.IS/history?p=RHEAG.IS"

şeklinde çalışan bir URL'ye ayarladım görüntülemede problem yok.

Ancak veri çekerken uzun sürebiliyor o yüzden change olayında bahsettiğimiz şeyi gerçekleştirebilir miyiz bu sitede ?

Ayrıca siteye girdiğinizde üstte time period seçeneği var onu max seviyesine getirmemiz mümkün müdür acaba?

Çok teşekkür ederim :)
 
Geri
Üst