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 !
Toujours aussi mauvais en VBA (pourtant je progresse) qu'il y a 4j, je suis de nouveau confronté à un problème que mes recherches n'ont pas sur combler.
Alors voila, en fait j'ai 2 fichiers, un fichier base de donné (.xlsx - on l’appellera "DB" dans la suite du texte) et un fichier qui exploite les données de cette base ("exploit").
Dans le fichier "exploit", j'ai 2 / 3 macros qui utilisent DB. Donc pour le moment, il y a le nom du fichier dans la macro, et avec les deux fichiers ouvert, ca ne pose pas de problème. Seulement, j'aimerai faire cela un peu plus propre : j'aimerai que dans le fichier "exploit', on sélectionne le fichier "DB" et qu'on puisse ensuite affecter un nom au chemin complet pour accéder au fichier.
Par exemple, j'ai eu besoin d'utiliser dans mon fichier :
Code:
Set Fichier = ThisWorkbook
Ca marche très bien pour le fichier dans lequel j’exécute la macro, mais pour l'autre fichier, j'aurai aimé qq chose comme :
Code:
Set Fichier = "c:/Mes docs/database.xlsx"
Mais il faudrait pouvoir sélectionner ce fichier/répertoire dans une boite de dialogue et qu'on ai plus à le refaire après l'avoir fait la première fois qu'on a ouvert le fichier !
J'espère avoir réussi à être claire (c'est pas gagné 🙂 ) .
Voici un exemple simple en VBA que tu pourras adapter. Une fois le chemin/ fichier choisi, tu peux le sauvegarder dans un onglet caché pour récupérer la "valeur" et ensuite réouvrir le fichier ultérieurement. (ici, le chemin est sauvegarder dans la cellule A1 de l'onglet actif)
VB:
Sub ChoisirFichier()
'Ouvre fenêtre permettant de sélectionner un fichier et sauvegarder dans A1
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Show
[A1] = .SelectedItems(1)
End With
'Ouvre ce fichier
Set wb = Workbooks.Open([A1])
End Sub
Je le confirme c'est ce qu'il me fallait, c'est beaucoup plus simple que bcp de choses que j'avais lu sur le web avant et ca marche au top ! Merci beaucoup !
A en fait, j'ai un problème avec Set wb = Workbooks.Open([A1])" 🙁
Si le fichier est déjà ouvert, j'ai un message qui me dit que le fichier est déjà ouvert et que si je l'ouvre à nouveau, les modifications seront perdues ! Est-ce qu'il y a moyen de ne pas essayer de l'ouvrir si il est déjà ouvert tout en définissant bien le nom de la cellule ?
Sub ChoisirFichier()
Dim NomFichier As String, bOuvert As Boolean
'Ouvre fenêtre permettant de sélectionner un fichier et sauvegarder dans A1
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Show
Nomficher = .SelectedItems(1)
End With
'Test si le fichier est déjà ouvert
For Each wb In Workbooks
If wb.FullName = NomFichier Then
bOuvert = True
Exit For
End If
Next
If Not bOuvert Then
Set wb = Workbooks.Open(NomFichier)
[A1] = NomFichier
End If
End Sub
Impeccable, Hasco, merci beaucoup ! J'ai pu en faire ce que je voulais.
Seulement j'ai même encore un problème ! Si j'arrive à le faire marcher sur mon pc sans problème. Ca ne marche pas pour la personne à qui je l'envois :s Ca lui donne une erreur de compilation au moment de l'ouverture de la boite de dialog. Si j'ai bien compris ce que j'ai lu, c'est un problème de filedialog qui n'est pas dans la bibliothèque ! Mais comment le mettre automatiquement ? Ou existe t-il une autre application qui serait "plus" compatible ?
Salut, est-ce que cette personne n'a pas une ancienne version d'Excel style 97 auquel cas l'instruction n'est pas reconnue , il me semble que cette instruction n'est apparue qu'avec la version 2002 ?
Non malheureusement on est tous les deux sur Office 2010. J'ai comparé nos bibliothèques de référence, la seule différence est qu'il a de son côté un truc écrit qui dit "Microsoft Calendar Control 2007 manquant", alors que moi je l'ai, mais je ne pense pas que ca change le filedialog si ?
Bonjour à tous ! Je reviens vers vous car j'ai un problème ... C'est un problème sur mac :s lorsque je lance la macro pour sélectionner le fichier j'ai une erreur de compilation 438 et " With Application.FileDialog(msoFileDialogFilePicker) " qui se sélectionne en jaune !
La référence Microsoft Office 14.0 Object est bien coché et il n'y a pas de problème de référence manquante ! C'est assez gênant car une partie des personnes qui vont être amené à travaillé sur ce fichier seront sur mac :s
- 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