IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

POWER Discussion :

Lister tous les fichiers d'un dossier et de ses sous dossiers avec Power Query


Sujet :

POWER

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 788
    Points : 182
    Points
    182
    Par défaut Lister tous les fichiers d'un dossier et de ses sous dossiers avec Power Query
    Bonjour,

    La cellule B1 où l'on entre le chemin du dossier se nomme "Chemin" avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set Folder = Application.FileDialog(msoFileDialogFolderPicker)
        If Folder.Show <> -1 Then Exit Sub
        xDir = Folder.SelectedItems(1)
        ActiveSheet.Range("B1") = xDir
    Code de la procédure événementielle de M. TULLIEZ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Me.Range("Chemin")) Is Nothing Then
            Application.EnableEvents = False
            On Error GoTo ErrorHandler
            Me.Range("tblSourceData").ListObject.QueryTable.Refresh BackgroundQuery:=False
    ErrorHandler:
            Application.EnableEvents = True
            If Err.Number <> 0 Then
                MsgBox "Erreur lors de l'actualisation de la table de requête: " & Err.Description, vbCritical
            End If
            On Error GoTo 0
        End If
    End Sub
    Si la cellule B1 change je souhaiterais modifierla liste avec Power Query.

    Le code de la requête Power Query :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    let
        Chemin = Excel.CurrentWorkbook(){[Name="Chemin"]}[Content]{0}[Column1],
        Source = Excel.Workbook(Folder.Files(Chemin), null, true),
        #"Colonnes supprimées" = Table.RemoveColumns(Source,{"Content", "Extension"}),
        #"Attributes développé" = Table.ExpandRecordColumn(#"Colonnes supprimées", "Attributes", {"Size"}, {"Attributes.Size"}),
        #"Colonnes permutées" = Table.ReorderColumns(#"Attributes développé",{"Folder Path", "Name", "Date accessed", "Date modified", "Date created", "Attributes.Size"})
    in
        #"Colonnes permutées"
    Ça ne fonctionne pas d’où provient l'erreur ?

    Merci d'avance pour vos réponses et votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 788
    Points : 182
    Points
    182
    Par défaut
    Bonjour @ tous,

    J'ai modifié la requête comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let
        Source = Folder.Files(Excel.CurrentWorkbook(){[Name="Chemin"]}[Content][Column1]{0})
        #"Colonnes supprimées" = Table.RemoveColumns(Source,{"Content", "Extension"}),
        #"Attributes développé" = Table.ExpandRecordColumn(#"Colonnes supprimées", "Attributes", {"Size"}, {"Attributes.Size"}),
        #"Colonnes permutées" = Table.ReorderColumns(#"Attributes développé",{"Folder Path", "Name", "Date accessed", "Date modified", "Date created", "Attributes.Size"})
    in
        #"Colonnes permutées"
    J'obtiens cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expression.SyntaxError : Jeton ',' attendu.
    Je cherche s'il est possible d'ouvrir une requête Power Query à partir d'un dossier qui aurait un chemin variable.

    L'idée c'est de récupérer la valeur contenu dans une cellule Excel et remplacer la source par une variable afin de rendre dynamique l'écriture de la source Power Query.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 788
    Points : 182
    Points
    182
    Par défaut
    Re,

    Simple oubli de la virgule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Source = Folder.Files(Excel.CurrentWorkbook(){[Name="Chemin"]}[Content][Column1]{0}),
    Et maintenant ça fonctionne.

    Bonne journéé @ tous.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/10/2019, 06h58
  2. Réponses: 0
    Dernier message: 01/02/2010, 14h51
  3. Lister tous les fichiers texte d'un dossier
    Par Vincinho dans le forum Windows Forms
    Réponses: 7
    Dernier message: 14/12/2009, 17h20
  4. Réponses: 4
    Dernier message: 31/05/2007, 15h25
  5. Réponses: 4
    Dernier message: 29/08/2006, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo