Bonjour à toutes et à tous

Mes données sont mises à jour dans une Google spreadsheet (https://docs.google.com/spreadsheets...Fbo/edit#gid=0).
Je les copie/colle dans une feuille "DonneesGoogleSheet" de mon fichier xlsx où je les traite par macro.
Je souhaiterais écrire une macro pour ouvrir automatiquement cette spreadsheet (1 seule feuille nommée "Form Responses 1"), en copier les données et les coller dans mon fichier xlsx.
Après quelques tentatives inspirées par ChatGPT, je ne trouve toujours pas.
Certains d'entre vous auraient -ils eu déjà à traiter cette problématique et pourraient-ils m'orienter vers une solution (s'il en existe une ...!)
Je joins mon code ci-dessous pour celles et ceux qui auraient la curiosité de regarder :
Merci beaucoup pour votre lecture et pour votre aide à venir
Slts

Ozabois

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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