afficher le chemin d'un fichier sélectionné

  • Initiateur de la discussion Initiateur de la discussion cavrom
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cavrom

XLDnaute Nouveau
Bonjour à tous,

Etant débutante sous VB, je patine un peu.
J'ai créé un code permettant, par le biais d'un "commandbutton", d'ouvrir mes documents. Je souhaite sélectionner un fichier, et que son chemin soit ensuite inscrit dans la "textbox" créée à cet effet.
Pour le moment, j'ai seulement réussi à afficher le chemin du classeur dans lequel je travail.

Voici mon code :

Code:
Private Sub CommandButton1_Click()
    On Error Resume Next
    With Application.GetOpenFilename
        .AllowMultiSelect = False
        .Show
        UserForm1.TextBox1.Text = .SelectedItems(1)
    End With
    
    'display the path in the text box
    Dim Path As String


    TextBox1.Value = Workbooks(ThisWorkbook.Name).FullName



End Sub

Si j'ai oublié des informations qui pourrait vous permettre de m'aider, n'hésitez pas à me le signaler.

Merci d'avance,

CAVROM.
 
Dernière édition:
Re : afficher le chemin d'un fichier sélectionné

Salut cavrom,
bienvenue sur le forum.

Vous pourriez essayer quelque chose comme ceci :

Code:
Option Explicit

Private Sub CommandButton1_Click()
Dim Le_Nom_Complet_du_Fichier As String, Le_Chemin As String, Le_Nom As String

Le_Nom_Complet_du_Fichier = Application.GetOpenFilename(, , "Sélectionnez le Master à utiliser")
Le_Nom = Dir(Le_Nom_Complet_du_Fichier)
Le_Chemin = Left(Le_Nom_Complet_du_Fichier, Len(Le_Nom_Complet_du_Fichier) - Len(Dir(Le_Nom_Complet_du_Fichier)))

UserForm1.TextBox1.Value = Le_Chemin
End Sub

À noter que les variables "Le_Nom_Complet_du_Fichier" ainsi que "Le_Nom" sont superflues. Je les ai mis là au cas où vous en auriez besoin.

Cordialement,

Étienne
 
Re : afficher le chemin d'un fichier sélectionné

Bonjour
Attention, chez moi GetOpenFileName ne renvoit pas d'objet mais juste un Variant contenant soit la chaîne du nom complet choisi soit le boolen False si s'usager a annulé.
en particuler la methode Show ne sy applique pas contrairement à :
Application.Dialogs(xlDialogOpen).Show
Cordialement
 
Re : afficher le chemin d'un fichier sélectionné

Bonjour à tous,

une autre approche :
Code:
Private Sub CommandButton1_Click()
With Application.FileDialog(msoFileDialogFilePicker)
    .Show
    If .SelectedItems.Count > 0 Then UserForm1.TextBox1.Text = .SelectedItems(1)
End With
End Sub

bon après midi
@+
 
Re : afficher le chemin d'un fichier sélectionné

Bonjour Étienne,

Malheureusement, il n'y a pas d'amélioration. Cette fois ci plus rien ne s'affiche dans ma TextBox. Ne suffisait-il pas de changer la ligne

Code:
TextBox1.Value = Workbooks(ThisWorkbook.Name).FullName

?
 
Re : afficher le chemin d'un fichier sélectionné

Déjà
VB:
TextBox1.Value = ThisWorkbook.FullName
aurait suffi pour le chemin du classeur contenant la macro
Oui parce que le classeur qui porte le nom de ce classeur c'est... ce classeur ! n'est-ce pas ?
Ensuite ce qualificateur peut naturellement être remplacé par toute expression renvoyant un classeur ouvert.
À+
 
Re : afficher le chemin d'un fichier sélectionné

Peut être me suis-je mal exprimée :
Je ne souhaite pas voir s'afficher le chemin du classeur dans lequel je travaille, mais bien le chemin du fichier que je souhaite sélectionner, qui peut se trouver n'importe où sur mon disque.

Pierrot 93, lorsque j'éxécute ton code, la ligne
Code:
With Application.FileDialog(msoFileDialogFilePicker)
pose problème.

Le débogage m'indique que c'est vide, pourquoi? que faire?
 
Dernière édition:
Re : afficher le chemin d'un fichier sélectionné

On ne peux que répéter: GetOpenFilename renvoit dans un variant une chaîne du nom complet d'un fichier choisi qui peut être mis dans un textbox, à moins que l'utilisateur annule, auquel cas elle vaut False.
 
Re : afficher le chemin d'un fichier sélectionné

Salut Dranreb, le forum,
GetOpenFilename fonctionne bien dans la situation proposée, non ? Si l'on veut pouvoir gérer le cas où l'action serait annulée, une petite condition et ça y'est.

Dans tous les cas, mon code fonctionne et le code de Pierrot fonctionne également très bien pour moi.

Etienne
 
Re : afficher le chemin d'un fichier sélectionné

Bonjour cavroom, et à tous,

Pardon si je dis une bêtise:

Code:
Private Sub CommandButton1_Click()
Dim FICHIER_CHOISI As Long

    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = False
        .Show
               For FICHIER_CHOISI = 1 To .SelectedItems.Count
               Me.TextBox1.Value = (.SelectedItems(FICHIER_CHOISI))
               Next FICHIER_CHOISI
    End With

End Sub

Classeur joint.

Amicalement.

Yann
 

Pièces jointes

Re : afficher le chemin d'un fichier sélectionné

Bonjour à tous.
Je tente de faire marcher vos codes, mais hélas, cela ne fonctionne pas.
La mention "propriété ou méthode non gérée par cet objet" s'affiche. Je comprends bien que vous n'avez pas de pb avec ces codes, mais moi si.
Avez vous une idée?
 
Re : afficher le chemin d'un fichier sélectionné

Alors, ton code pierrot ,
Code:
Private Sub CommandButton1_Click()
With Application.FileDialog(msoFileDialogFilePicker)
    .Show
    If .SelectedItems.Count > 0 Then UserForm1.TextBox1.Text = .SelectedItems(1)
End With
End Sub
m'indique une erreur 438 : propriété ou méthode non gérée par cet objet, au niveau de la 2ème ligne.

le code d'Etienne :
Code:
Private Sub CommandButton1_Click()
Dim Le_Nom_Complet_du_Fichier As String, Le_Chemin As String, Le_Nom As String

Le_Nom_Complet_du_Fichier = Application.GetOpenFilename(, , "Sélectionnez le Master à utiliser")
Le_Nom = Dir(Le_Nom_Complet_du_Fichier)
Le_Chemin = Left(Le_Nom_Complet_du_Fichier, Len(Le_Nom_Complet_du_Fichier) - Len(Dir(Le_Nom_Complet_du_Fichier)))

UserForm1.TextBox1.Value = Le_Chemin
End Sub
m'affiche l'erreur 424 : objet requis. le débogage m'indique que le problème se trouve à la ligne :
UserForm1.TextBox1.Value = Le_Chemin

le code de Yann :
Code:
Private Sub CommandButton1_Click()
Dim FICHIER_CHOISI As Long

    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = False
        .Show
               For FICHIER_CHOISI = 1 To .SelectedItems.Count
               Me.TextBox1.Value = (.SelectedItems(FICHIER_CHOISI))
               Next FICHIER_CHOISI
    End With

End Sub
m'indique lui aussi l'erreur 438, mais au niveau de la ligne :
With Application.FileDialog(msoFileDialogOpen)

Qu'en pensez vous?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour