• DİKKAT

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

Google Sheets

HarEndu

Altın Üye
Katılım
26 Mayıs 2010
Mesajlar
159
Excel Vers. ve Dili
Microsoft 365
Merhaba,
Lutfen yanlis anlamayin. Excele google sheetsler uzerinden verial yontemiyle verileri alabiliyor muyuz? Bilgi paylasirsaniz sevinirim. ben arastirdim ama yardimci olacak bilgiye ulasamadim.
 
Merhaba,
Bu videoya göre alınabiliyor, yapmanız gereken tek şey Google Sheets üzerinde dosyanızı webe açmanız.
İyi çalışmalar.
 
Tesekkur ederim video icin cok aciklayaci olmus gercekten. Acaba hazir makro kodu varmidir elinizde sayfanin URL yolunu girip guncelleyerek nasil ilerleyebilirim.
 
Merhaba,
Makro kaydet yöntemiyle elde edilmiş kod aşağıdaki şekilde oluştu, gerekli yerleri değiştirip kullanabilir yada Makro kaydet yöntemiyle makronuzu oluşturabilirsiniz.

İyi çalışmalar.

Rich (BB code):
Sub GSVeriAl()
'
' Makro kaydet yöntemiyle elde dilmiştir.
' Google Sheets Den Excel E veri çekme
'
'
    ActiveWorkbook.Queries.Add Name:="Table 0", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Kaynak = Web.Page(Web.Contents(""URL ADRESİNİZİ BURAYA YAZIN""))," & Chr(13) & "" & Chr(10) & "    Data0 = Kaynak{0}[Data]," & Chr(13) & "" & Chr(10) & "    #""Değiştirilen Tür"" = Table.TransformColumnTypes(Data0,{{""Column1"", type text}, {""Column2"", Int64.Type}, {""Column3"", type text}, {""Column4""," & _
        " type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Değiştirilen Tür"""
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Table 0"";Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Table 0]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Tablo_Table_0"
        .Refresh BackgroundQuery:=False
    End With
End Sub
 
Google Sheets'in API'lerini kullanarak veya Google Sheets tarafında biraz script kullandıktan sonra VBA ile veriler alınabilir.

Ancak, @netzone tarafından belirtildiği gibi eğer sayfayı Web üzerinde dağıtım yaptıktan sonra verileri almak isterseniz aşağıdaki VBA-ADO kodu da benim kendi geliştirdiğim bir yöntemdir, deneyebilirsiniz....

C#:
Sub Test()
    ' Haluk - 26/08/2018
    '
    Dim adoCon As Object, adoRst As Object
    Dim objHTTP As Object
    Dim strConn As String, strURL As String, strFile As String, myTable As String
    Dim j As Byte
    
    Range("A2:C" & Rows.Count) = ""
    
    Set adoCon = CreateObject("ADODB.Connection")
    Set adoRst = CreateObject("ADODB.Recordset")
    
    strURL = "https://docs.google.com/spreadsheets/d/e/2PACX-1vQateX82F2kX9vZv6NMdgYp49GNWfEHFtWPDuai2jDeLJXZvfaG1LWTSy2WgdA5kvdWMVNDq9J_UTKD/pubhtml?gid=0&single=true"
    
    If Dir("C:\TestFolder", vbDirectory) = "" Then MkDir ("C:\TestFolder")
    
    strFile = "C:\TestFolder\Data.html"
    
    strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & ";Extended Properties=""HTML Import;HDR=No;IMEX=1"""
    
    myTable = "Table"    '>>>>>>> Web sayfasýndaki 1nci tablo
'    myTable = "Table1"    '>>>>>>> Web sayfasýndaki 2nci tablo
    
    Set objHTTP = CreateObject("MSXML2.XMLHTTP")
    objHTTP.Open "GET", strURL, False
    objHTTP.send
    
    Set adoStream = CreateObject("ADODB.Stream")
    adoStream.Charset = "utf-8"
    adoStream.Type = 2
    adoStream.Open
    adoStream.WriteText objHTTP.responseText
    adoStream.SaveToFile strFile, 2
    
    adoRst.CursorLocation = 3 'adUseClient

    adoCon.Open strConn
    adoRst.Open "Select F2, F3 from [" & myTable & "]", adoCon
      
    Range("A2").CopyFromRecordset adoRst
    
    adoRst.Close
    adoCon.Close
    
    Set adoStream = Nothing
    Set adoRst = Nothing
    Set adoCon = Nothing
End Sub


.
 
Geri
Üst