Boucle sur QueryTableAdd

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
j
jeremyz
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 6 mai 2015
Version d'Excel : 2010

Message par jeremyz » 24 juillet 2015, 10:07

Bonjour,

Ayant commencer il y'a peu à travailler sur des macro excel je me heurte à un petit problème, les boucles.

Fonctionnement du fichier :

Ma feuille n°1 (Shipment) se présente sous cette forme, "Shipment" qui correspond à des valeur que je vais rentrer à la main, et "Status" qui doit être récupérer via une récupération de données sur un site web (ex : http://www.monsite.com/valeur1)


- Shipment_______Status
Valeur1___________
Valeur2___________PPQA
Valeur3___________
Valeur4___________PPQA
ValeurX___________


Les données récupérer sur cette page web se présente sous la forme de 2 ligne sur ma feuile n°2 (DATA)

Valeur1 données données données données données données données données données données données
données données données données données données données données données données PPQA données

Je souhaiterais donc créer une boucle pour récupérer les données de chaque valeur sur ma feuille "DATA" sous la forme :


Valeur1 données données données données données données données données données données données
données données données données données données données données données données PPQA données
Valeur2 données données données données données données données données données données données
données données données données données données données données données données PPQA données
Valeur3 données données données données données données données données données données données
données données données données données données données données données données données données
ValeurX données données données données données données données données données données données
données données données données données données données données données données PPQA données

Et afficher ensuite "PPQA" dans ma colonne Status de la première feuille pour toutes les "ValeurX" qui contiennent "PPQA" dans leur données.

En sachant egalement que le nombre de "ValeurX" est variable.
Je mets en pièce jointe une ébauche de fichier, car je ne peut pas y acceder depuis mon domicile ;)

Cordialement,
Jérémy.
LoopQueryTable.xlsx
(9.39 Kio) Téléchargé 10 fois
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'479
Appréciations reçues : 428
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 24 juillet 2015, 11:29

bonjour,

une solution via une macro vba
Sub test()
    Set ws = Sheets("shipment")
    With Sheets("Data")
        dl = .Cells(Rows.Count, "K").End(xlUp).Row
        For i = 1 To dl
            If .Cells(i, "K") = "PPQA" Then
                Set re = ws.Columns("A:A").Find(.Cells(i - 1, 1), lookat:=xlWhole)
                If Not re Is Nothing Then
                    re.Offset(0, 1) = "PPQA"
                End If
            End If
        Next i
    End With
End Sub
j
jeremyz
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 6 mai 2015
Version d'Excel : 2010

Message par jeremyz » 24 juillet 2015, 13:33

Merci pour cette macro qui vas me permette effectivement d'extraire les valeur PPQA sur ma sheet "data" mais ce qui me bloque le plus en fait c'est la creation de la boucle pour la recuperation des données :
Sub RecupPPQA()
'
' RecupPPQA Macro
'

    Application.ScreenUpdating = False
    Sheets("Data").Select
    
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;Http://www.monsite.com/valeur1" _
        , Destination:=Range("Data!$A$1"))
        .Name = "DonnéesExternes_1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "2"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
    Application.ScreenUpdating = True
End Sub
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message