Bonjour à tous,
Je viens vers vous car j'ai beau chercher sur le web et je ne trouve pas de solution à mon problème.
j'essaie d'importer les données d'un tableau google sheet dans excel.
Lorsque je supprime les sécurités du formulaire google, c'est a dire que tout le monde peut y accéder, j'ai une macro qui fonctionne très bien de ce type:
Sub I_G()
Sheets("BASE DE SAISIE").Select
If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
Sheets("Copie de l'importation google").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;https://docs.google.com/spreadsheets/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" _
, Destination:=Range("$A$1"))
'.WebFormatting = xlWebFormattingNone
.Refresh BackgroundQuery:=False
End With
Sheets("Copie de l'importation google").Range("D4:AT103").Copy Sheets("BASE DE SAISIE").Range("A" & Rows.Count).End(xlUp)(2)
End Sub
Lorsque je remets les sécurités (donc accès au tableau via "login" et "MDP"), pas moyen d'y arriver.
Chose normal !!
Seulement voilà, pour des raisons évidentes, je souhaite maintenir cette sécurité et donc le "login" et "MDP".
J'ai cherché sur le web un code dans lequel serait intégrer le "login" et "MDP" afin que celui-ci puisse accéder au tableau et importer les données.
j'ai trouver celui-ci qui me paraissait être une bonne approche:
Sub I_G5()
Dim url
url = "https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
telecharge url, "Mon Login", "Mon MDP"
End Sub
Function telecharge(url, login, password)
Dim IE As Object, doc As Object
Set IE = CreateObject("internetexplorer.application")
With IE
.navigate url
.Visible = True
Do: DoEvents: Loop While .readystate <> 4 Or .busy
If .locationurl = "https://accounts.google.com/signin/v2/identifier?service=wise&passive=1209600&continue=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2F%3Fusp%3Dmkt_sheets&followup=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2F%3Fusp%3Dmkt_sheets<mpl=sheets&flowName=GlifWebSignIn&flowEntry=ServiceLogin" Then
.document.all("j_username").innertext = login
.document.all("j_password").innertext = password
Do: DoEvents: Loop While .readystate <> 4 Or .busy
.document.getElementsByClassName("ui-button ui-widget ui-state-default ui-corner-all")(3).Click
End If
End With
End Function
Mais il bloque sur la page de connection Google.
Je n'ai pas réussi à savoir si c'était faisable, mais si c'est le cas merci, d'avance pour l'aide que vous pourriez m'apporter.