VBA Boite de dialogue choix de répertoire

Pyton

XLDnaute Nouveau
Bonjour à tous et merci d'avance pour votre aide.

Voici mon problème, je veux permettre aux utilisateur de mon fichier, d'utiliser une boite de dialogue windows pour sélectionner un fichier texte (.rtf) qui se situe dans un dossier spécifique.

Le code 1 c'est ce que je veux.
Je ne sais pas si je suis près d'une solution ou si je suis complètement dans le "décord"
Code 1 ne fonctionne pas quand je veux accéder à un dossier qui est situé sur le réseau.
Code:
Sub test1()
'fonctionne Pas
'Mais c'est ce que je veux

Dim a As String

   ChDrive "\\MonOrdi\Document" 'Choix du répertoire à ouvrir Sur Réseau
   a = Application.GetOpenFilename("Fichier Texte (*.rtf), *.rtf", , _
        "Sélection de vos fichiers Texte", , True)

   If Not a = "" Then Range("A1").Value = a

End Sub


Code 2 ne fonctionne mais ne s'affiche pas au répertoire que je veux.
Code:
Sub test2()
'fonctionne mais la boite de dialogue ne s'ouvre pas au répertoire demandé
   Dim a As String

   ChDrive "C:\Users\Sylvain\Documents" 'Choix du répertoire à ouvrir Sur le disque C
   a = Application.GetOpenFilename("Fichier Texte (*.rtf), *.rtf", , _
        "Sélection de vos fichiers Texte", , True)

   If Not a = "" Then Range("A1").Value = a

End Sub

Merci encore
 

Pyton

XLDnaute Nouveau
Un gros merci à vous tous pour votre aide!

La solution Dranreb et l'aide de Roland_M qui m'a mâché le travail hahaha. J'ai finalement un code qui fonctionne.
RoyaliP ton code au poste 4 me sera surement utile dans un autre projet, merci.

Encore Merci! à vous tous
Code:
'ceci remplace ChDrive et ChDir
#If VBA7 Then
     Private Declare PtrSafe Function SetCurrentDirectory Lib "kernel32" _
       Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
#Else
     Private Declare Function SetCurrentDirectory Lib "kernel32" _
       Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
#End If


'fonction pour activer et se placer sur un lecteur/chemin
Function ActiveLectChemin(C$) As Boolean
If SetCurrentDirectory(C$) <> 0 Then ActiveLectChemin = True Else ActiveLectChemin = False
End Function

Sub Parcourir()
Dim A As String

LectChemin$ = "\\MonOrdi\RecetteServeur"
If ActiveLectChemin(LectChemin$) Then
    A = Application.GetOpenFilename("Fichier Texte (*.rtf),*.rtf", _
    Title:="Sélection de vos fichiers Texte", MultiSelect:=False)
      If Not A = "" Then Range("C1").Value = A
Else
    MsgBox LectChemin$ & vbLf & vbLf & "Ce chemin n'est pas accessible!"
End If
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 662
Messages
2 111 649
Membres
111 246
dernier inscrit
Jeanluis87