Importer des données google sheet dans Excel avec login et mdp
Merci à Isabelle surtout !
merci Steelson,
as-tu réussi à importer des données ?
Bonjour ou bonsoir à vous deux,
donc concernant ce code
Sub Importer1()
conn = "URL; https://docs.google.com/spreadsheets/d/1019qOXypx42o5y8bTDg7dmASrzb2Ns69PPC__jycu3g/edit#gid=0"
moi = "xxxxxx@xxxx.xxx"
pw = "xxxxxxxxxx"
With ActiveSheet.QueryTables.Add(conn, Range("A1"))
.PostText = "identifier=moi&password=pw"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
End With
End SubIl ne se passe rien. pas de message d'erreur, pas d'importation.
et concernant ce code
Sub Naviguer_docs_google()
'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence Microsoft Internet Controls
Dim i As Integer
Dim IE As InternetExplorer
Dim maPageHtml As HTMLDocument
Dim Helem As IHTMLElementCollection
Set IE = CreateObject("internetExplorer.Application")
IE.Visible = False
IE.Navigate "https://docs.google.com/"
Do Until IE.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
Set maPageHtml = IE.Document
Set Helem = maPageHtml.ie9_all
identifiant = "xxxxxxxx@xxxx.xx"
passW = "xxxxxxxxx"
For i = 0 To Helem.Length - 1
On Error Resume Next
If Helem(i).getAttribute("name") = "identifier" Then Helem(i).innerText = identifiant
Next i
Do Until IE.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
For i = 0 To Helem.Length - 1
If Helem(i).getAttribute("name") = "password" Then Helem(i).innerText = passW
Next i
Do Until IE.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
IE.Visible = True
AppActivate IE
SendKeys "{ENTER}", True
End SubIl arrive à rentrer le login mais pas le mot de passe, il reste donc bloqué sur la page du mot de passe.
Au moins, le login est passé.
j'ai essayé de mettre "Do Until IE.ReadyState =4" pour le passW pour voir si c'était une attente mais rien
Slt tout le monde,
à tester:
Sub Naviguer_docs_google()
'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence Microsoft Internet Controls
Dim i As Integer
Dim IE As InternetExplorer
Dim maPageHtml As HTMLDocument
Dim Helem As IHTMLElementCollection
Set IE = CreateObject("internetExplorer.Application")
IE.Visible = False
IE.navigate "https://docs.google.com/"
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set maPageHtml = IE.document
Set Helem = maPageHtml.ie9_all
identifiant = "xxxxxxxx@xxxx.xx"
passW = "xxxxxxxxx"
For i = 0 To Helem.Length - 1
On Error Resume Next
If Helem(i).getAttribute("name") = "identifier" Then Helem(i).innerText = identifiant
Next i
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
IE.Visible = True
AppActivate IE
Application.SendKeys "~"
For i = 0 To Helem.Length - 1
If Helem(i).getAttribute("name") = "password" Then Helem(i).innerText = passW
Next i
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
IE.Visible = True
AppActivate IE
Application.SendKeys "~"
End SubBonjour m3ellem1,
Alors, je viens de tester ton approche est oui le code est reconnu pour la saisie du login et mdp mais il ne transfert pas les données une fois la page ouverte.
Je vais essayé avec tous les codes que j'avais eu, d'y intégrer une suite pour l'importation des données.
Merci pour ton coup de main
Salut tout le monde,
J'ai trouvé une méthode grâce à vous.
Dites moi ce que vous en pensez à tous les niveaux (sécurité surtout).
Donc pour cette méthode, j'ai utilisé le code proposé par i20100 et modifié par m3ellem1.
- j'ai cliqué sur enregistré une macro
- j'ai donné un nom à cet enregistrement
- (une fois l'enregistrement en cours) j'ai executer la macro de m3ellem1
- ça m'a affiché la page de mon tableau Google Sheet
- j'ai sélectionné 250 lignes de mon tableau
- j'ai coupé(ctrl x)
- le navigateur IE m'a demandé si j’autorisai cette page web à accéder au presse papier
- j'ai mis "oui"
- j'ai sélectionné ma feuille excel
- j'étais déjà sur le bon onglet
- j'ai sélectionné toutes les lignes
- j'ai coller(ctrl v)
- Excel m'a demandé si je voulais coller les données
- j'ai mis "oui"
- les 250 lignes de données ont été collées
- j'ai arrêté l'enregistrement.
j'ai modifié 2 lignes du code de m3ellem1 afin que ce soit moins lourd visuellement
IE.Visible = Trueen
IE.Visible = falseça fonctionne mais voilà le code qui en ressort est bof
voyez par vous même
Sub essais()
'
' essais Macro
'
'
Application.Run "'Nom de mon classeur.xls'!nom de la macro executer"
Cells.Select
ActiveSheet.Paste
End SubDans ce code je ne vois pas la ligne qui concerne les 250 lignes sélectionnées et coupées du tableau Google sheet.
Concernant l'accès de la page web au presse papier je pense que la sécurité est bonne vu qu'il faut login et mdp pour accéder à cette page, mais au cas ou, j'accepte les conseils que l'on souhaiterai me donner.
je suis retourné sur ma page web et ça n'a pas coupé/collé mais ça a copié/collé.
Dommage ça aurait permis de d'effacer (clear contents) les 250 lignes pour intégrer les nouvelles saisies.
par contre est ce qu'il serait judicieux de faire le code de cette manière? ou pas?
Sub essais()
'
' essais Macro
'
Dim start As Single
start = Timer
Call nom de la macro executer
Cells.Select
Sheets("feuille qui reçoit les données").Select
ActiveSheet.Paste.Range("A" & Rows.Count).End(xlUp)(2)
MsgBox "Macro executé en: " & Timer - start & " secondes"
End SubMerci pour vos points de vues