XL 2013 choix d'un fichier dans dossier

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 !

misteryann

XLDnaute Occasionnel
Bonjour le forum
J'ai un userform contenant un Label, une textbox et un bouton
Le label contient le chemin d'un dossier et le bouton doit permettre de sélectionner un fichier qui se trouve dans le chemin du label.
Or le code que j'applique au bouton ne parcours pas mais ouvre le chemin et ne permet pas de sélectionner le fichier souhaité.
Le fichier exemple est une version édulcorée de mon fichier de travail dans lequel le chemin indiqué dans le label varie en fonction de choix.
Merci pour votre aide
Bonne journée.
Misteryann
 

Pièces jointes

Bonjour le fil, le forum

Je recycle mes posts 😉
https://www.excel-downloads.com/threads/pb-avec-activeworkbook-close.20022131/
A tester
VB:
Private Sub CommandButton1_Click()
Dim Classeur
Classeur = Application.GetOpenFilename("Fichiers XL,*.xl?", , "Sélectionnez le classeur source,svp")
If Classeur <> False Then
UserForm1.TextBox1 = Classeur
Label62 = Left(Classeur, InStrRev(Classeur, "\") - 1)
Else
MsgBox "Vous n'avez pas sélectionné de fichier!", vbCritical, "ERREUR"
End If
End Sub
Ensuite faudrait ajouter de quoi ouvrir le dit classeur, non ?
 
Bonjour.
Essayez en ajoutant devant :
VB:
On Error Resume Next
ChDrive Label62.Caption: ChDir Label62.Caption
If Err Then MsgBox "Impossible de prendre comme courant le dossier" & vbLf & Label62.Caption _
   & vbLf & Err.Description, vbCritical, CommandButton1.Caption: Exit Sub
On Error GoTo 0
 
Bonjour Staple et dranreb.
C'est vrai que je n'ai pas précisé que le fichier est au format "pdf".
Cela donnerai quoi dans le code: (Fichier ..., *.pdf?) je suppose...

Private Sub CommandButton1_Click()
Dim Classeur
Classeur = Application.GetOpenFilename("Fichiers XL,*.xl?", , "Sélectionnez le classeur source,svp")
If Classeur <> False Then
UserForm1.TextBox1 = Classeur
Label62 = Left(Classeur, InStrRev(Classeur, "\") - 1)
Else
MsgBox "Vous n'avez pas sélectionné de fichier!", vbCritical, "ERREUR"
End If
End Sub

dranreb, je teste demain sur mon fichier de travail qui est sur un lecteur réseau.
Merci à vous deux.
Bien cordialement.
 
Re,

@misteryann
C'était pas compliqué à modifier, non ? 😉
VB:
Private Sub CommandButton1_Click()
Dim PeDeFe
PeDeFe = Application.GetOpenFilename("Fichiers PDF,*.pdf", , "Sélectionnez le PeDeFe source,svp")
If PeDeFe <> False Then
UserForm1.TextBox1 = PeDeFe
Label62 = Left(PeDeFe, InStrRev(PeDeFe, "\") - 1)
Else
MsgBox "Vous n'avez pas sélectionné de PDF!" & Chr(13) & "(J'en suis fort chagriné, que diantre!)", vbCritical, "ERREUR"
End If
End Sub
 
Pour un lecteur réseau auquel aucune lettre de lecteur n'a été affectée vous serez peut être obligé de remplacer mon code par :
VB:
If CheminCourant(Label62.Caption) Then
   PeDeFe = Get OpenFileName( etc.
   If VarType(PeDeFe) = vbString Then
      P = InStrRev(PeDeFe, '\")
      Me.TextBox1.Text = Left$(PeDeFe, P - 1)
      Me.Label62.Caption = Mid$(PeDeFe, P + 1): End If
Else
   MsgBox "Impossible de prendre comme courant le dossier" & vbLf & Label62.Caption, _
   vbCritical, CommandButton1.Caption: Exit Sub
   End If
Avec en tête du module :
VB:
#If VBA7 Then
    Private Declare PtrSafe Function CheminCourant Lib "kernel32" _
        Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
#Else
    Private Declare Function CheminCourant Lib "kernel32" _
        Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
#End If
 
Re

Une variante (on change de boite de dialogue)
Ici on peut paramétrer plus de chose
Je le laisse tester (et adapter pour utilisation avec ton Userform)
(et voir les possibilités offerte par msoFileDialogFilePicker -> voir sur le Web)
PS: C'est en faisant des conneries qu'on apprend 😉
Donc n'hésite pas en à faire dans VBE 😉
VB:
Sub AutreVoie()
Dim Chemin$, NomFichier$, Mess$
With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "Sélectionner votre fichier, svp": .AllowMultiSelect = False
    .Filters.Clear: .Filters.Add "Classeurs Excel", "*.xls; *.xlsx; *.xlsm"
    .Filters.Add "Fichiers PDF", "*.pdf", 1: .FilterIndex = 1
    .InitialView = msoFileDialogViewProperties
        If .Show = -1 Then
        Chemin = .SelectedItems(1)
        NomFichier = Dir(.SelectedItems(1))
        Mess = "Path: " & Chemin & Chr(13) & "Nom Fichier: " & NomFichier
        MsgBox Mess, vbInformation, "Résultat Test"
        Else
        MsgBox "Vous n'avez pas sélectionné de fichier!" & Chr(13) & "(J'en suis fort chagriné, que diantre!)", vbCritical, "ERREUR"
    End If
End With
End Sub
 
- 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

Réponses
7
Affichages
911
Retour