Donner un nom à un fichier - VBA

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 !

baroneddy

XLDnaute Nouveau
Bonjour à tous,

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é 🙂 ) .

Je vous remercie d'avance,

Edd.
 
Re : Donner un nom à un fichier - VBA

Bonsoir baroneddy,

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

A+
 
Re : Donner un nom à un fichier - VBA

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 ?
 
Re : Donner un nom à un fichier - VBA

Bonjour,

Sur la base du travail de Grand_Chaman_Excel:

Code:
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

A+
 
Re : Donner un nom à un fichier - VBA

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 ?

Je vous remercie !
 
Re : Donner un nom à un fichier - VBA

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 ?
 
Dernière édition:
Re : Donner un nom à un fichier - VBA

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 ?
 
Re : Donner un nom à un fichier - VBA

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

Merci de votre aide !
 
- 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
79
Réponses
32
Affichages
2 K
Retour