Workbooks.Open Filename

  • Initiateur de la discussion Initiateur de la discussion CaptainAmerica
  • 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 !

C

CaptainAmerica

Guest
Bonjour à tous,
A partir d'une feuille excel ouverte, j'en ouvre une autre, se trouvant dans le même répertoire, par l'intermédiaire de la commande "Workbooks.Open Filename".
Comment faire pour ne pas avoir à retaper les chemins d'accés quand je déplace les fichiers vers un autre répertoire?
Workbooks.Open Filename:= _"G:\XXX\Example.xls"
Merci de vos réponses.
 
Hey Captain You Say What !!! lol

Bonjour à toi, au Forum

Je te conseille de passer par "GetOpenFileName" qui permet d'obtenir une Boite de Dialogue simplement et qui devrait résoudre ton problème.

Dans cet exemple les lignes indiquées avec Optional en commentaires servent à paraméter un répertoire à pointer par défaut, tout en remettant en place à la sortie le répertoire par défaut de l'utilisateur. Si tu n'en as pas besoin tu peux les supprimer, mais la méthode "GetOpenFileName" pointera alors sur le répertoire par défaut, et il faudra "naviguer" dans les folders si nécessaire...

Option Explicit

Sub OnOuvreOnTraiteOnSauveAveLaDateLOL()
Dim TheFile As Variant
Dim WB As Workbook
Dim ThePath As String '<<<<<<<<<<<<<<<<<<<<< OPTIONAL
Dim UserDir As String '<<<<<<<<<<<<<<<<<<<<< OPTIONAL

ThePath = "C:\Mes Documents\" '<<<<<<<<<<<<< OPTIONAL à adapter of course

UserDir = CurDir '<<<<<<<<<<<<<<<<<<<<<<<<<< OPTIONAL
ChDir ThePath '<<<<<<<<<<<<<<<<<<<<<<<<<<<<< OPTIONAL

TheFile = Application.GetOpenFilename("Excel Files(*.xls),*.xls")
If TheFile = False Then
ChDir UserDir '<<<<<<<<<<<<<<<<<<<<<<<<<<<<< OPTIONAL
Exit Sub
End If

Set WB = Workbooks.Open(TheFile)

ChDir UserDir '<<<<<<<<<<<<<<<<<<<<<<<<<<<<< OPTIONAL
End Sub

Bon Dimanche
@+Thierry
 
Bonjour @+Thierry,
Merci pour ta réponse.
Je teste et vois ci cela me convient.
Je cherchais voir si un fichier ouvert à partir d'un répertoire donné peut faire appel à d'autres fichiers se trouvant dans ce même répertoire. Et ce sans modifier les chemins d'appel dans le programme.
Merci encore. Bonne fin de journée.
 
Salut Captain, le Forum

Simplement avec ThisWorkBook.Path

Attention toutefois la propriété Path ne retourne pas le dernier "Slash" dans la String du chemin... Donc tout dépend comme tu l'utilises, sinon on passe par une variable de tupe String comme ceci :

Sub TheMacro ()
Dim Chemin As String, Ficher As String

Chemin = ThisWorkBook.Path & "/"
Fichier = "Example.xls"

WorkBooks.Open Chemin & Fichier

End Sub

Bonne soirée
@+Thierry
 
Salut @+Thierry,
Excellent, ça marche super de cette façon. Adapté à mon fichier cela donne:

Sub TheMacro()
Dim Chemin As String, PRIX As String

Chemin = ThisWorkbook.Path & "\"
PRIX = "PRIX.xls"

Workbooks.Open Chemin & PRIX, Password:="***"
End Sub

Merci encore.

J'ai un autre fil sur le forum, si tu as une idée (tu as toujours une solution) pour ce nouveau problème ... Merci
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour