afficher le chemin d'un fichier sélectionné

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:

Etienne2323

XLDnaute Impliqué
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
 

Dranreb

XLDnaute Barbatruc
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
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

cavrom

XLDnaute Nouveau
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

?
 

Dranreb

XLDnaute Barbatruc
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.
À+
 

cavrom

XLDnaute Nouveau
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:

Dranreb

XLDnaute Barbatruc
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.
 

Etienne2323

XLDnaute Impliqué
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
 

YANN-56

XLDnaute Barbatruc
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

  • GRENIEROOM.xls
    26.5 KB · Affichages: 65

cavrom

XLDnaute Nouveau
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?
 

cavrom

XLDnaute Nouveau
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?
 

Pierrot93

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

Re,

pas de problème avec le code donné, regarde la pièce jointe, ce fichier fonctionne chez moi(excel 2003), si fonctionne pas chez toi, problème lié à la version 2000..
 

Pièces jointes

  • classeur2.zip
    9.1 KB · Affichages: 73
  • classeur2.zip
    9.1 KB · Affichages: 70
  • classeur2.zip
    9.1 KB · Affichages: 71

Discussions similaires

Statistiques des forums

Discussions
312 377
Messages
2 087 738
Membres
103 657
dernier inscrit
chaval