XL 2010 Import de données externes web log - mdp

  • Initiateur de la discussion Initiateur de la discussion DAVAWAY
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

DAVAWAY

XLDnaute Junior
Bonjour camarades !

Je parviens à rapatrier des données externes issues d'un site qui nécessite au préalable un log.

Peut on enrichir ce code pour automatiser la manipe en enregistrant les valeurs du log (id/mdp) ?

En effet, je dois au préalable à l’exécution du code, me connecter au site en question via le bouton "à partir du web". Sinon, j'ai une anomalie à cette ligne "Refresh BackgroundQuery:=False".

Je suis novice en vba et ne vois pas comment injecter la donne dans le code suivant :

Sub importer1()

Sheets("PERSO").Cells.Clear

With Sheets("PERSO").QueryTables.Add(Connection:="URL;Ce lien n'existe plus" _
, Destination:=Sheets("PERSO").Range("$A$1"))
.Name = "Ce lien n'existe plus"
.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
.Refresh BackgroundQuery:=False
End With

compteur = 0

For ligne = 1 To 1000

If Left(Sheets("PERSO").Cells(ligne, 1), 6) = "Il y a" Then
compteur = compteur + 1
Sheets("ACCUEIL").Cells(compteur, 1) = Sheets("PERSO").Cells(ligne - 1, 1).Hyperlinks(1).Address

If compteur = 5 Then Exit For
End If

Next

End Sub


Merci pour votre lecture, aide et bon appétit 😉 !

David
 
Bonjour,

sauf erreur de ma part, tu confonds création et mise à jour de la requête.
A vu de nez, à chaque fois que tu exécutes le code, tu recrée une requête.
Tu vas finir par avoir un fichier énoooooorme.

Je suggérerais de créer la requête et de faire une macro qui ne fais que la mettre à jour (lance l'enregistreur, puis fais un clic droit sur tes donnéeset clic sur Actualiser), tu devrais obtenir un code du genre :
Code:
Range("A2").ListObject.QueryTable.Refresh BackgroundQuery:=False
(bien sûr tu auras autre chose que Range("A2") ; a adapter à tes besoins)

Enfin pour répondre à ta question, il me semble que les identifiants et mots de passe peuvent / doivent être enregistrés lors de la création de la connexion au données ; tu ne pourras pas le faire par code VBA
 
Bonjour Iznogood1,

Merci pour ton retour, à chaque tentative d'import le code fait un reset de la cellule de destination et donc de toutes les données de l'onglet.
Me demande pas précisément comment, pour moi vba reste de la magie et le restera.. hormis pour cette question de pré log répertorié dans vba qui serait impossible ..ce serait dommage tout de même !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
833
  • Question Question
Réponses
10
Affichages
844
  • Question Question
Microsoft 365 Programme trop lent
Réponses
12
Affichages
883
Retour