Extraction données VBA

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 !

chris1234

XLDnaute Nouveau
Bonjour à tous,
Débutant en VBA, je viens faire appel à vos connaissances pour un problème que je rencontre avec une macro.

Je vous expose mon cas :
Je cherche à automatiser l'extraction d'une donnée depuis une liste d'url. J'ai donc créée un fichier excele avec trois feuillet (données / requête / url) et une macro qui fonctionne bien dans le sens ou lorsque je l’exécute, celle-ci effectue la requête, va chercher la bonne donnée et me l'inscrit sur le feuille données. Le soucis, c'est qu'avec plusieurs url, la macro me copie le résultat toujours dans la même cellule (A1) et donc au final je n'ai qu'un résultat.
Comment modifier ma macro pour que les résultats arrivent les uns à la suite des autres ?
Je pense qu'il faut placer un ("A" & DLig + 1) quelque part, mais c'est du bidouillage car je suis débutant en la matière.
Merci de votre.
Ci-après le code de la macro :

HTML:
Public i As Integer

Sub lance_requête()
'Macro enregistré par MJ
Sheets("URL").Select
    Range("A1").Select
derligne = ActiveSheet.Range("A65536").End(xlUp).Row
For i = 1 To derligne
req_web
Sheets("URL").Select
ActiveCell.Offset(1, 0).Range("A1").Select
Next i
'efface la requête à la fin
Sheets("Requête").Select
 Range("A1").Select
 Cells.Select
    Selection.Delete Shift:=xlUp
   Range("A1").Select
   Sheets("Données").Select
End Sub
Sub req_web()
'Macro enregistré par MJ
'Dim i As Integer
Dim Chaine As String
'For i = 1 To 20
    'ActiveWorkbook.Worksheets.Add
'Stop
    'Chaine = "URL;" & Worksheets("URL").Cells(1, 1).Value
    Chaine = ActiveCell.Value
    Sheets("Requête").Select
    With ActiveSheet.QueryTables.Add(Connection:="URL;" & Chaine, _
    Destination:=Range("A1"))
        
        .Name = "mairie-14237-01"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .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("Requête").Cells(ligne, 1), 5) = "Faire" Then
            compteur = compteur + 1
            Sheets("Données").Cells(compteur, 1) = Sheets("Requête").Cells(ligne - 2, 1)
        End If
    
    Next
    
End Sub
 
Dernière édition:
Re : Extraction données VBA

Sans le fichier pas forcément évident...
Pour aller à la 1ère cellule vide:
en partant du haut: range("a1").end(xldown).offset(1,0)
en partant du bas: range("a65000").end(xlup).offset(1,0) (mettre + que 65000 si version > à 2003).

Le end te permet d'accéder à la dernière (ou 1ère) cellule remplie qu'il trouve et le offset(1,0) te décale d'1 ligne et de 0 colonne...
En espérant que ça puisse t'aider...
 
Re : Extraction données VBA

Essaie de remplacer :
Code:
With ActiveSheet.QueryTables.Add(Connection:="URL;" & Chaine, _
    Destination:=Range("A1"))
par
Code:
    With ActiveSheet.QueryTables.Add(Connection:="URL;" & Chaine, _
    Destination:=Range("A65000").End(xlUp).Offset(1, 0))

ça se trouve au début de ton 2ème code...
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
250
Réponses
10
Affichages
486
Réponses
18
Affichages
237
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
233
Réponses
7
Affichages
106
Retour