• FORUMU MOBİL UYGULAMADAN TAKİP EDİN

    Forumu isteyen üyelerimiz Tapatalk (Harici bir hizmet) üzerinden mobil uygulamadan takip edebilirler.
    iOS için : https://itunes.apple.com/app/id307880732?mt=8
    Android için : https://play.google.com/store/apps/details?id=com.quoord.tapatalkpro.activity
    adreslerinden indirebilirsiniz.

    Bir iki haftaya da foruma özel kendi uygulamamız yayında olacak.
ALTIN ÜYELİK Hakkında Bilgi
-----------------------

Webden sayfa kaynak kodu excele nasıl alınır

netzone

Altın Üye
Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
353
Beğeniler
66
Excel Vers. ve Dili
Office 2016 64 Bit TR
Windows 10 64 Bit TR
#2
Merhaba,

Öncelikle kaynak kodu görmek için yazdığınız adres Chrome için (Belki diğer bir kaç tarayıcı içinde olabilir.)geçerlidir. Bu yolu kullanarak veri çekmeniz mümkün görünmemektedir. Tabi ki konu hakkında bilgi sahibi arkadaşlarımız makro yardımı ile çekilebilir ise yardımcı olacaklardır.
Fakat onlar sormadan ben sormak isterim, Bu kodların tamamı sizin için önemli mi? yada bu kodları alarak sayfada bir yere erişmek mi istiyorsunuz? bunu öğrenebilirsem farklı bir yöntem de bulunabilir düşüncesindeyim.

İyi çalışmalar.
 
Katılım
30 Kasım 2010
Mesajlar
92
Beğeniler
0
Excel Vers. ve Dili
2003 tÜRKÇE
#4
ilginiz için teşekkür ederim, aslında amacım sayfadaki sık sık güncellenen bilgileri kendi excel programıma almak,
ancak excelin "veri/dış veri al/web sorgusu" menüsünden bu sayfaya ulaşılamiyor, sanırım sitede java kullanılmış.
 
Katılım
31 Aralık 2005
Mesajlar
3,581
Beğeniler
39
Excel Vers. ve Dili
Office 2016 (64 bit) - Türkçe
#5
Dış veri özelliği işinize yarıyorsa aşağıdaki kodu bir defaya mahsus çalıştırın. Daha sonra sağ tuş ile "yenile" dersiniz. Otomatik yenileme için kod satırında belirttiğim yere dakika cinsinden değer verebilirsiniz...

PHP:
Sub Test()

    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;https://www.bloomberght.com/finansal-teknoloji", Destination:=Range("$A$1"))
        .Name = "Zeki Gürsoy"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        
        'Otomatik güncelleme için aşağıdaki satıra dakika
        'cinsinden değer yazın...
        .RefreshPeriod = 0
        
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub
 

netzone

Altın Üye
Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
353
Beğeniler
66
Excel Vers. ve Dili
Office 2016 64 Bit TR
Windows 10 64 Bit TR
#7
Office 2019 64 Bit 'de herhangi bir hata almadan kodlar çalıştı, biçimlendirme, resim, bağlantılar v.s. olmadan metin halinde sayfama geldi.
Bilginize.
 
Katılım
30 Kasım 2010
Mesajlar
92
Beğeniler
0
Excel Vers. ve Dili
2003 tÜRKÇE
#8
ilgi ve emeğiniz için sağolun, 2003 excel bu konu için yeterli değil demek ki,
başka bir yol bulmam gerekecek, tekrar teşekkürler....
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
6,453
Beğeniler
225
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#9
Office 2010 (32 Bit) ile de sıkıntı yok ....

.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
6,453
Beğeniler
225
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#10
Yavuz Bey; muhtemelen söz konusu sayfadaki "Piyasa Özet" başlığı altındaki verileri almak istiyorsunuz.

Eğer amacınız buysa, aşağıdaki kod bu verileri sayfaya aktaracaktır ...

Kod:
Sub GetData()
    ' Haluk - 08/08/2018
    '
    Dim HTTP As Object, HTML As Object
    Dim URL As String
    Dim noRows As Byte, noColumns As Byte
    Dim i As Byte, j As Byte
    Dim Table As Object, Tables As Object, myTable As Object
   
    Range("B1:D" & Rows.Count) = Empty
   
    URL = "https://www.bloomberght.com/finansal-teknoloji"
   
    Set HTTP = CreateObject("MSXML2.ServerXMLHTTP")
    Set HTML = CreateObject("HTMLFILE")
   
    HTTP.Open "GET", URL, False
    HTTP.send
   
    If HTTP.Status = 200 Then
        HTML.body.innerhtml = HTTP.responseText
       
        Set Tables = HTML.getElementsByTagName("table")
        If Tables.Length > 0 Then
            i = 0
            For Each Table In Tables
                If Table.className = "table table-striped" Then
                    Set myTable = Tables(i)
                End If
                i = i + 1
            Next
           
            noRows = myTable.Rows.Length
            noColumns = myTable.Rows(4).Cells.Length
           
            On Error Resume Next
           
            For i = 1 To noRows
                For j = 2 To noColumns + 1
                    Temp = Replace(myTable.Rows(i - 1).Cells(j - 2).innerText, ".", "")
                    Cells(i, j) = Replace(Temp, ",", ".")
                    Temp = ""
                Next
            Next
        End If
    End If
    
    Range("C4:D10").NumberFormat = "0.0000"
    Set Tables = Nothing
    Set HTML = Nothing
    Set HTTP = Nothing
End Sub
 
Son düzenleme:
Katılım
30 Kasım 2010
Mesajlar
92
Beğeniler
0
Excel Vers. ve Dili
2003 tÜRKÇE
#11
Haluk üstad ferasetinize hayran kaldım, çok teşekkür ederim, olay çözülmüştür sayenizde...
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
6,453
Beğeniler
225
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#12
Bu arada Zeki Beyin önerdiği alternatifin sizde çalışmadığını belirtmiştiniz ama, konuyu izleyen/okuyan diğer üyeler için ufak bir bilgi vermek istedim.

Zeki Beyin alternatifinde;

Rich (BB code):
.WebSelectionType = xlEntirePage
satırındaki kırmızı ifade ile tüm sayfa aktarılmaktadır.

Siz yukarıdaki mesajlarda; sadece sayfadaki söz konusu "Piyasa Özet" başlığı altındaki tabloyu almak istediğinize göre ve sayfa kodlarına göre bu tablonun index değeri 1 olduğu için, yukarıda belirttiğim satır silinip, onun yerine aşağıdakiler yazıldığında, sadece istenilen tablo sayfaya aktarılır.

Kod:
        .WebSelectionType = xlSpecifiedTables
        .WebTables = "1"
.
 

netzone

Altın Üye
Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
353
Beğeniler
66
Excel Vers. ve Dili
Office 2016 64 Bit TR
Windows 10 64 Bit TR
#13
Merhaba,

Haluk Bey'in de belirttiği gibi sadece Piyasa özetini almak ise amacımız. Söz konusu işlemi Webden Al > adres yazıldıktan sonra gelen ekrandan Table 0'ı seçin ve sayfaya ekleyin. [Yenileme sıklığını değiştirmek için Veri > Sorgular ve Bağlantılar > Bağlantı/Sorgu Özellikleri açılan ekrandan ayarlayabilirsiniz.]

Örnek dosya ektedir.
İyi çalışmalar.
 

Ekli dosyalar

Katılım
30 Kasım 2010
Mesajlar
92
Beğeniler
0
Excel Vers. ve Dili
2003 tÜRKÇE
#14
Sayın netzone,
örnek dosyanızı merak ettim ama, malum sebepten dolayı indiremiyorum,
başka bir aracıya yükleyebilirmisiniz?
teşekkürler....
 
Katılım
30 Kasım 2010
Mesajlar
92
Beğeniler
0
Excel Vers. ve Dili
2003 tÜRKÇE
#15
Sayın Haluk Bey,
Zeki Bey'in önerdiği alternatifte "otomatik güncelleme" özelliği dikkatimi çektiği için, sizin 12.mesajda söz ettiğiniz değişikliği yapıp
tekrar denedim ama maalesef bende yine aynı hata kodunu veriyor,
Böyle bir özelliği sizin kodda nasıl bir değişiklikle elde edebiliriz acaba,
(sıkıntı olacaksa önemli değil zamanınızı almak istemem...kod bu haliylede iş görüyor)
 
Katılım
30 Kasım 2010
Mesajlar
92
Beğeniler
0
Excel Vers. ve Dili
2003 tÜRKÇE
#17
Sayın @netzone,
teşekkürler ama sizin çözümünüz ile excel 2003 de maalesef sonuç alamıyoruz,
Webden Al > adres yazıldıktan sonra gelen ekranda, siteye girilemediği rapor ediliyor....
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
6,453
Beğeniler
225
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#18
Sayın Haluk Bey,
Zeki Bey'in önerdiği alternatifte "otomatik güncelleme" özelliği dikkatimi çektiği için, sizin 12.mesajda söz ettiğiniz değişikliği yapıp
tekrar denedim ama maalesef bende yine aynı hata kodunu veriyor,
Böyle bir özelliği sizin kodda nasıl bir değişiklikle elde edebiliriz acaba,
(sıkıntı olacaksa önemli değil zamanınızı almak istemem...kod bu haliylede iş görüyor)
Koda bir "Timer" ekleyerek yapılır ama o tür kodlar başka sorunlara yol açabilir ..... İhtiyacınız olduğunda butona tıklayarak güncellemeniz, en iyisi.

.
 
Üst