Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Contribuez
Contribuez Placez ici vos codes, sources, trucs et astuces que vous souhaitez partager avec les membres du club.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/07/2007, 13h45   #1
Expert Confirmé
 
Avatar de zazaraignée
 
Étudiant
Inscription : février 2004
Messages : 3 173
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 3 173
Points : 3 543
Points : 3 543
Par défaut Permettre à l'utilisateur de sélectionner un fichier pour un traitement particulier

Vous avez fait une macro qui ouvre un fichier texte (ou) et vous voudriez pouvoir laisser l'utilisateur choisir le fichier. Ou encore vous avez fait une macro qui fait une copie d'une feuille (ou qui crée un nouveau classeur) et vous voudriez que l'utilisateur choisisse le nom du fichier et son emplacement avant que la macro ne l'enregistre... Vous aurez besoin de l'objet FileDialog.

[Edit]Un oubli de ma part, et Dieu sait que le détail est important! Avant toute chose, il faut ajouter la référence Microsoft Office (version) Object Library.[/Edit]

Code :
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
31
32
33
34
35
Sub ChargerFichier()
    ' Déclaration des variables
    Dim fdlg As FileDialog
    Dim vrtSelectedItem As Variant  ' les noms de fichiers
 
    ' Initialisation de la variable de l'objet FileDialog
    Set fdlg = Application.FileDialog(msoFileDialogFilePicker)
 
    ' Spécifie les valeurs pour les principales propriétés
    With fd
        .Title = "Ouvrir un fichier texte"  ' le titre de la boîte de dialogue
        .Filters.Clear   ' efface tous les filtres par défaut
        .Filters.Add "Fichier texte(.txt)", "*.txt"  ' crée le filtre pour les fichiers texte
        .InitialFileName = ActiveWorkbook.Path  ' détermine le dossier par défaut
        .AllowMultiSelect = True   ' Autorise la sélection multiple
 
        ' L'utilisateur a cliqué sur le bouton
        If .Show = -1 Then
            ' Parcourre les différentes sélections
            For Each vrtSelectedItem In .SelectedItems
                ' Vous pouvez utiliser les fonction de lecture de fichier d'Excel
                ' ou encore lire directement le fichier par une instruction Open
                ' Pour cet exemple, on affiche simplement une boîte de message
                MsgBox "Le chemin est : " & vrtSelectedItem
            Next vrtSelectedItem
 
          ' Si l'utilisateur clique sur Annuler...
          Else
            ' vous pouvez faire un traitement particulier (facultatif)
        End If
    End With
 
    ' libère la mémoire
    Set fdlg = Nothing
End Sub
Si vous désirez empêcher la sélection multiple des fichiers, vous pouvez recueillir le nom de fichier dans une variable de chaîne.

Code :
1
2
3
4
5
6
7
    Dim strItem As String  ' le nom du fichier
        ' ...
        .AllowMultiSelect = True   ' Autorise la sélection multiple
 
        ' L'utilisateur a cliqué sur le bouton
        If .Show = -1 Then
            MsgBox "Le chemin est : " & strItem
Vous pouvez utiliser les paramètres par défaut de la boîte de dialogue. Par exemple, la boîte Ouvrir un fichier texte que nous venons de créer aurait très bien pu avoir le titre par défaut, soit : 'Ouvrir' et elle aurait pu aussi utiliser les filtres par défaut d'Excel. Il suffit d'omettre les lignes
Code :
1
2
3
        .Title = "Ouvrir un fichier texte"  ' le titre de la boîte de dialogue
        .Filters.Clear   ' efface tous les filtres par défaut
        .Filters.Add "Fichier texte(.txt)", "*.txt"  ' crée le filtre pour les fichiers texte
Pour créer une boîte de dialogue par défaut Enregistrer sous ou Ouvrir, vous devez modifier le paramètre de la fonction FileDialog.

Pour une boîte de dialogue Ouvrir :
Code :
Set fdlg = Application.FileDialog(msoFileDialogOpen)
Voici la liste des différentes valeurs que peut prendre le paramètre msoFileDialogType :
  • msoFileDialogFilePicker Permet à l'utilisateur de sélectionner un fichier.
  • msoFileDialogFolderPicker Permet à l'utilisateur de sélectionner un dossier.
  • msoFileDialogOpen Permet à l'utilisateur d'ouvrir un fichier.
  • msoFileDialogSaveAs Permet à l'utilisateur d'enregistrer un fichier.

Note :
Si vous utilisez une autre valeur que msoFileDialogPicker, il vous sera impossible de modifier la porpirété Filters de votre boîte de dialogue.
__________________
  • Pour les nouveaux : Mode d'emploi et aide aux nouveaux
  • et impérativement les règles du forum. Histoire de garder une ambiance amicale.
  • Noubliez pas les balises de Code pour vos listings : bouton # de l'éditeur. Et n'oubliez pas non plus de bouton
  • Je ne réponds pas aux questions posées par MP.
zazaraignée est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h16.


 
 
 
 
Partenaires

Hébergement Web