1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| Sub CopierDonneesGoogleSheet()
Dim wb As Workbook
Dim ws As Worksheet
Dim ie As Object ' Contrôle WebBrowser
Dim doc As Object ' Document HTML
' Créer une nouvelle instance d'Internet Explorer
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
' Charger la GoogleSheets
ie.Navigate "https://docs.google.com/spreadsheets/d/1fhlUGaBv85Cg9MglNTfXm8d2Y3ck0crpKm9SS1pLFbo/edit#gid=0"
' Attendre que la page se charge complètement
Do While ie.Busy Or ie.ReadyState <> 4
DoEvents
Loop
' Récupérer le document HTML chargé dans le contrôle WebBrowser
Set doc = ie.Document
' Récupérer la feuille et la plage de données source
Dim rangeSource As Object
Set rangeSource = doc.getElementById("form-response-1").getElementsByTagName("table")(0)
' Ouvrir le classeur Excel de destination
Set wb = ThisWorkbook
' Vérifier si la feuille de destination existe, sinon la créer
On Error Resume Next
Set ws = wb.Sheets("DonneesGoogleSheet")
On Error GoTo 0
If ws Is Nothing Then
Set ws = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count))
ws.Name = "DonneesGoogleSheet"
End If
' Copier les données de la feuille source vers la feuille de destination
ws.Activate
ws.Range("A1").Select
rangeSource.Copy
ws.Paste Destination:=ws.Range("A1")
' Ajuster la mise en forme si nécessaire
ws.Columns.AutoFit
' Fermer le contrôle WebBrowser
ie.Quit
' Message de confirmation
MsgBox "Les données ont été copiées avec succès !", vbInformation
End Sub |
Partager