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 :

Préremplir le champs de recherche d'une filedialog


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Par défaut Préremplir le champs de recherche d'une filedialog
    Salut à vous amis programmeurs,

    J'aurais aimé avoir une réponse à une question qui me taraude depuis hier : est-il possible de pré-remplir le champs de recherche d'une filedialog?

    Pour expliquer un peu l’historique et le contexte, je travaille dans une boite où nous devons régulièrement extract une quantité importante de fichier word et excel en .pdf pour ensuite les valider.
    Aujourd'hui, cet extract est fait à la main : le type en responsabilité du dossier untel ouvre tous les documents un à un, enregistrer sous, format pdf, valider. Sauf que ce process prend un temps conséquent car nos dossiers sont volumineux (environ 120 à 140 fichier word/excel par dossier) et en terme de valeur ajoutée..c'est pas fou quoi :/
    L'idée : un petit programme qui ouvre une filadialog, tu choisis ton dossier (sur le réseau ou en local), et c'est là que j'aimerais préremplir la searchbox en haut à droite du filedialog pour y insérer".doc", ce qui permet de ne ressortir que les fichiers word et excel. Par la suite, je les sélectionne tous, les ouvre en automatique un par un, enregistrement en pdf, cloture, next file ... en gros. Mais je bloque sur la filedialog searchbox...

    Une idée?

    Un petit screenshot pour être certain de parler de la même chose :

    Nom : 2021-07-30 10_10_09-Browse.png
Affichages : 327
Taille : 4,9 Ko

    Merci d'avance à tous !

  2. #2
    Membre expérimenté Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 175
    Par défaut
    salut,

    un peu de lecture ne fait pas de mal : https://excel.developpez.com/faq/?pa...cel#FileDialog
    ... un peu de recherche aussi.

    a+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Par défaut
    Salut LucasGaetan,

    Merci de ta réponse. J'ai consulté le lien que tu avais mis... sans succès hélas, je l'avais déjà consulté avant de publier ma question sur le forum.
    Il y a bien une section qui parle des file dialog hein, mais rien qui parle du champs de recherche ... Après je n'ai peut-être pas tout compris (c'est probable).

    J'ai défini un msoFileDialogFilePicker pour préciser au programme que je voulais sélectionner des fichiers, j'ai ajouté un .AllowMultiSelect pour sélectionner plusieurs fichiers d'un coup, un .Filters.Add pour préciser les type de fichier que je voulais qu'il m'affiche.

    Cependant, il manque l'étape de remplissage de la recherche en haut à droite en .doc pour afficher une liste des fichiers présents dans le dossier actuel et les sous-dossiers. C'est cette étape que j'aimerais transcrire dans le programme et pour laquelle je ne trouve pas de réponse pour le moment.

    Une idée?

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voici deux exemples de fonctions génériques

    Sélectionner un répertoire
    Il faut passer en argument le chemin et elle renvoie le nom du dossier sélectionné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function GetFolder(Optional StrPath As String) As String
      Dim fDlg As FileDialog, sItem As String
      Set fDlg = Application.FileDialog(msoFileDialogFolderPicker)
      If Len(StrPath) = 0 Then StrPath = Application.ActiveWorkbook.Path & "\"
      With fDlg
      .Title = "Selection d'un répertoire"
      .InitialFileName = StrPath
       If .Show = -1 Then GetFolder = .SelectedItems(1)
      End With
     Set fDlg = Nothing
    End Function
    Sélectionner un ou plusieurs fichiers du répertoire défini par l'argument Folder en fonction de l'argument IsMultiSelection
    La fonction renvoie une table dont le premier élément est False ou True (si true, le nom du ou des fichiers sélectionnés commence à 1 dans la table
    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
    Function GetFile(Folder As String, Optional IsMultiSelection As Boolean) As Variant
      Dim fDlg As FileDialog, File As Byte, tbl()
      Set fDlg = Application.FileDialog(msoFileDialogFilePicker)
      With fDlg
      .AllowMultiSelect = IsMultiSelection
      .Title = "Sélection des fichiers du répertoire " & Mid(Folder, InStrRev(Folder, "\") + 1)
      .InitialFileName = Folder & IIf(Right(Folder, 1) = "\", "", "\")
      .Show
       ReDim tbl(0)
       For File = 1 To .SelectedItems.Count
        ReDim Preserve tbl(File): tbl(File) = .SelectedItems(File)
       Next
       tbl(0) = .SelectedItems.Count > 0
       GetFile = tbl
      End With
    Set fDlg = Nothing
    End Function
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Utiliser des champs de recherche pour une valeur calculée.
    Par MasterJul dans le forum SharePoint
    Réponses: 0
    Dernier message: 08/02/2008, 12h47
  2. Réponses: 3
    Dernier message: 21/01/2007, 10h40
  3. Recherche d'une partie d'un champ texte
    Par Daniel MOREAU dans le forum Access
    Réponses: 2
    Dernier message: 13/01/2006, 18h04
  4. Recherche d'une chaine dans un champ
    Par Cyberbob002 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 06/01/2006, 15h21
  5. Recherche par une partie du champ
    Par safadev dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2005, 14h20

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