ouvrir boite de dialogue 'windows explorer'

bcesoll

XLDnaute Nouveau
bonjour,

j'ai besoin dans une macro d'ouvrir un fichier excel mais son emplacement n'étant pas fixe dans 'windows explorer' je dois ouvrir une boite de dialogue m'invitant à localiser le fichier sous c:\ et me retourner son emplacement (ex : c:\repertoire\sous_repertoire\fichier.xls) que j'appellerai CHEMIN

quelle est la procédure

merci
 

Efgé

XLDnaute Barbatruc
Re : ouvrir boite de dialogue 'windows explorer'

Bonjour,
Le forum m'a aidé sur le même projet. Voici le code qui en résulte et qui fonctionne:
Sub Explorateur_fichier()

Application.CutCopyMode = False
Dim Fichier
Dim Nom_fichier
Dim Niveau
Dim Choix
Dim sPath$
Dim Chemin
Choix = Range("P1").Value
'Crée une boite de dialogue de sélection de fichiers :
With Application.FileDialog(msoFileDialogFilePicker)
.InitialFileName = Range("D10").Value
'Else
'.InitialFileName = Range("D15").Value
'End If
.Show
If .SelectedItems.Count > 0 Then
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)
'Renseigner les zones suivant le choix
Range("D12") = Fichier
Range("D10") = Left(sPath, Len(sPath) - Len(Fichier))
Set fd = Nothing
End If
End With
End Sub

Cordialement

Edit: Bonjour Pierrejean.
 

Efgé

XLDnaute Barbatruc
Re : ouvrir boite de dialogue 'windows explorer'

La même version nettoyée du superflu...
Application.CutCopyMode = False
Dim Fichier
Dim Nom_fichier
Dim Niveau
Dim sPath$
Dim Chemin
'Crée une boite de dialogue de sélection de fichiers :
With Application.FileDialog(msoFileDialogFilePicker)
.Show
If .SelectedItems.Count > 0 Then
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)
'Renseigner les zones suivant le choix
Range("D12") = Fichier
Range("D10") = Left(sPath, Len(sPath) - Len(Fichier))
Set fd = Nothing
End If
End With
End Sub
 

Efgé

XLDnaute Barbatruc
Re : ouvrir boite de dialogue 'windows explorer'

Bonjour,
Je joint un fichier exemple.
Le chemin choisi par l'utilisateur s'affiche en D10
et le fichier en D12.
Pour plus d'explications, il faudrait un babatruc...
Cordialement
 

Pièces jointes

  • Classeur11.xls
    26 KB · Affichages: 91
  • Classeur11.xls
    26 KB · Affichages: 91
  • Classeur11.xls
    26 KB · Affichages: 96

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji