VBA fenêtre de dialogue pour sélectionné le fichier à ouvrire

Niquido

XLDnaute Junior
Bonjour,

Je crée des fichier avec toujours le même nom de base mais avec à la fin soit la date soit la semaine, et ce dans des dossier différents.

Sur d'autres fichiers j'ai besoin de venir ouvrir ses fichiers les un après les autres.

Je voudrai donc que ma macro me demande quel fichier ouvrir, mais je veux qu'elle m'amène déjà dans le répertoire où je vais trouver le fichier en question.

Je ne sais pas comment faire cela.

J'ai chercher sur le net mais je ne trouve pas exactement ce que je veux, ou alors je ne cherche pas comme il faut.

Par avance merci
 

Caillou

XLDnaute Impliqué
Re : VBA fenêtre de dialogue pour sélectionné le fichier à ouvrire

bonsoir,

une piste:
'Permet de changer le répertoire courant
ChDir "c:\python33"
'Permet d'afficher la boite de dialogue Ouvrir
Application.Dialogs(xlDialogOpen).Show

Caillou
 

Dranreb

XLDnaute Barbatruc
Re : VBA fenêtre de dialogue pour sélectionné le fichier à ouvrire

Attention ChDir change seulement le dossier courant du lecteur spécifié. Si le lecteur courant n'est plus le C suite à une ouverture manuelle d'un fichier sur un autre support, ça ne change pas le dossier courant puisque celui ci est un dossier d'un autre lecteur. En ce qui me concerne ça ne m'a jamais servi à rien, mais c'est comme ça: il faut aussi faire un ChDrive pour être sûr de changer le dossier courant.
GetOpenFileName est une méthode de l'objet Application qui renvoie une référence de fichier sans l'ouvrir.
[h=1]GetOpenFilename, méthode[/h] Voir aussi S'applique à Exemple Spécificités
Cette méthode affiche la boîte de dialogue standard Ouvrir et lit un nom de fichier tapé par l'utilisateur sans réellement ouvrir les fichiers.
expression.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

expression Obligatoire. Expression qui renvoie un objet Application.
FileFilter Argument de type Variant facultatif. Chaîne spécifiant les critères de filtrage des fichiers.
Cette chaîne est constituée de paires de chaînes de caractères représentant le filtre de fichier suivies de la spécification de filtre de fichier à caractère générique de MS-DOS, dont chaque partie et chaque paire est séparée par une virgule. Chaque paire distincte est contenue dans la liste déroulante Type de fichier. Par exemple, la chaîne suivante spécifie deux filtres de fichiers (fichiers texte et macros complémentaires) : « Fichiers texte (*.txt),*.txt,Macros complémentaires (*.xla),*.xla ».
Pour utiliser les expressions multiples à caractère générique de MS-DOS pour un seul type de filtre de fichier, séparez les expressions à caractères génériques par des points-virgules ; par exemple, « Fichiers Visual Basic (*.bas; *.txt),*.bas;*.txt ».
Cet argument devient par défaut « Tous les fichiers (*.*),*.* » s'il n'a pas été spécifié.
FilterIndex Argument de type Variant facultatif. Spécifie les numéros d'index des critères de filtrage de fichier par défaut, de 1 au nombre de filtres spécifiés dans FileFilter. Le premier filtre de fichier est utilisé si l'argument n'a pas été spécifié ou s'il est plus grand que le nombre de filtres présents.
Title Argument de type Variant facultatif. Spécifie le titre de la boîte de dialogue. Si cet argument n'a pas été spécifié, le titre est « Ouvrir ».
ButtonText Argument de type Variant facultatif. Macintosh uniquement.
MultiSelect Argument de type Variant facultatif. Affectez lui la valeur True pour permettre la sélection de plusieurs noms de fichiers. Affectez lui la valeur False pour permettre la sélection d'un seul nom de fichier. La valeur par défaut est False.
[h=2]Notes[/h] Cette méthode renvoie le nom du fichier sélectionné ou le nom tapé par l'utilisateur. Le nom renvoyé est susceptible d'inclure une spécification de chemin. Si MultiSelect a la valeur True, la valeur renvoyée est un tableau des noms de fichiers sélectionnés (même si un seul nom de fichier est sélectionné). Renvoie la valeur False si l'utilisateur annule la boîte de dialogue.
Cette méthode est susceptible de modifier le lecteur ou le dossier en cours.
[h=2]Exemple[/h] Cet exemple montre comment afficher la boîte de dialogue Ouvrir, dont le filtre de fichier est défini en fichiers texte. Si l'utilisateur choisit un nom de fichier, le code affiche ce nom de fichier dans une boîte de message.

fileToOpen = Application _ .GetOpenFilename("Text Files (*.txt), *.txt") If fileToOpen <> False Then MsgBox "Open " & fileToOpen End If
 

Efgé

XLDnaute Barbatruc
Re : VBA fenêtre de dialogue pour sélectionné le fichier à ouvrire

Bonjour Niquido, Caillou, BonjourDranreb
Une autre boite:
VB:
Private Sub CommandButton2_Click()
'Ouverture de l'explorateur Windows et récupération du chemin d'accès
Dim Fichier$, Niveau$, sPath$, Chemin$
'Crée une boite de dialogue de sélection de fichiers :
With Application.FileDialog(msoFileDialogFilePicker)
    'Selection d'un seul fichier
    .AllowMultiSelect = False
    'Repertoir de départ
    .InitialFileName = "C:\Temp\"
    'Affiche la boite
    .Show
    'si il y a une selection (donc si l'utilisateur n'annule pas la boite)
    If .SelectedItems.Count Then
        'Récupération du chemin complet selectionné
        sPath = .SelectedItems(1)
        'Trouver le niveau de sous dossier ou se trouve le fichier
        Niveau = (UBound(Split(sPath, "\")))
        'Récupérer la chaine de caractère (nom du fichier) du niveau trouvé
        Fichier = Split(sPath, "\")(Niveau)
        'Récupérer le chemin du dossier
        Chemin = Left(sPath, Len(sPath) - Len(Fichier))
    End If
End With
End Sub
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 520
Messages
2 089 297
Membres
104 092
dernier inscrit
karbone57