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

Macros et VBA Excel Discussion :

Ajouter un Userform pour spécifier un lien de dossier en VBA [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Octobre 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Octobre 2020
    Messages : 4
    Par défaut Ajouter un Userform pour spécifier un lien de dossier en VBA
    Bonjour,

    Je me suis lancé dans un petit projet VBA pour me faciliter le travail au quotidien mais je rencontre un problème et je n'arrive pas à m'en sortir.

    Je souhaite créer une Macro qui répète la même chose suivant le lien de dossier que je lui donne via un Userform.

    Le travail qu'elle fait cette Macro :
    Récupérer tous les fichiers .txt dans tous les dossiers présents dans mon dossier de base donné par le lien via le userform, et me les afficher sous form d'un tableau.
    Je me suis servi de la fonction "enregistrement de macro" pour avoir le code de base qui est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub Macro1()
    '
    ' Macro1 Macro
    '
     
    '
        ActiveWorkbook.Queries.Add Name:="OUTER_PANNEL", Formula:= _
            "let" & Chr(13) & "" & Chr(10) & "    Source = Folder.Files(""\\yvsn0011\AFFAIRES-CFER\CR3\BODY_SIDES\4_TECHNICAL_PROCESS\4C_FLUID_MECHANICS\OUTER_PANNEL"")," & Chr(13) & "" & Chr(10) & "    #""Lignes filtrées"" = Table.SelectRows(Source, each ([Extension] = "".txt""))" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Lignes filtrées"""
        Sheets.Add After:=ActiveSheet
        With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
            "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=OUTER_PANNEL;Extended Properties=""""" _
            , Destination:=Range("$A$1")).QueryTable
            .CommandType = xlCmdSql
            .CommandText = Array("SELECT * FROM [OUTER_PANNEL]")
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = False
            .ListObject.DisplayName = "OUTER_PANNEL"
            .Refresh BackgroundQuery:=False
        End With
        Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
    End Sub
    Et donc le lien que je veux pouvoir changer et faire le même travail est ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Source = Folder.Files(""\\yvsn0011\AFFAIRES-CFER\CR3\BODY_SIDES\4_TECHNICAL_PROCESS\4C_FLUID_MECHANICS\OUTER_PANNEL"")
    Je vous remercie d'avance pour votre aide.
    Et si vous avez besoin de précision je suis dispo.

    Cordialement,
    Youness

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Pas testé mais c'est probablement quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomTonForm.NomTonChamp.Value
    donc le code devrait ressembler à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWorkbook.Queries.Add Name:="OUTER_PANNEL", Formula:= _
            "let" & Chr(13) & "" & Chr(10) & "    Source = Folder.Files(""\\" & NomTonForm.NomTonChamp.Value & """)," & Chr(13) & "" & Chr(10) & "    #""Lignes filtrées"" =
    Et je te recommande de remplacer ActiveWorkbook par ThisWorkbook qui ne change pas même si un autre classeur que celui où tu roules la macro est activé.

    Enfin il est possible que ton code plante si la PowerQuery OUTER_PANNEL existe déjà, à valider.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Octobre 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Octobre 2020
    Messages : 4
    Par défaut
    Super, j'ai réussit.
    Merci beaucoup de votre aide !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. userforme pour ajouté ou rechercher dans une base de données
    Par saidram dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/04/2018, 16h46
  2. Réponses: 3
    Dernier message: 03/06/2016, 17h48
  3. [XL-2010] Utilisation d'un UserForm pour ajouter/modifier des enregistrements
    Par adashame dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/08/2014, 22h15
  4. Liens html pour un éditeur (ajouter une action javascript à un lien html)
    Par psychoBob dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 25/05/2006, 18h41
  5. quelle balise pour établir un lien interne
    Par christopher dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 08/12/2004, 13h48

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