Création d'une MsgBox personnalisée pour charger un fichier Excel

Bonjour à tous

Je suis novice dans la matière :

Voici ce que je souhaiterai faire : j'aimerai, lorsque l'utilisateur ouvre le fichier de travail excel, qu'une MsgBox apparaisse pour lui demander quel fichier source il voudrait uploader dans la requête, afin de sécuriser cette dernière pour être sûre que mon fichier de travail puisse toujours fonctionner même si le chemin pour aller chercher le fichier source change.

Exemple de message box qui s'afficherai à l'ouverture du fichier de travail:

"Veuillez choisir le fichier source" et j'aimerai que cette messagebox me propose un bouton "parcourir" qui puisse ouvrir l'explorateur de fichier pour ensuite chercher, sélectionner et uploader en tant que requête le fichier choisi dans mon fichier de travail excel.

Je cherche donc à retranscrire tout ca en langage VBA si c'est possible

J'espère avoir été claire, n'hésitez pas à me demander d'autres précisions si besoin, je vous remercie pour votre aide précieuse !

Victoire

Bonjour Victoire, bonjour le forum,

Une option à placer dans le composant ThisWorkbook :

Private Sub Workbook_Open() 'à l'ouverture du fichier
Dim BDD As FileDialog 'déclare la variable BDD (Boîte De Dialogue)

MsgBox "Veuillez sélectionner le fichier source." 'message
Set BDD = Application.FileDialog(msoFileDialogFilePicker) 'défini la boîte de dialogue BDD (ouvrir un fichier)
BDD.AllowMultiSelect = False 'ne permet la sélection que d'un seul fichier
If BDD.Show = -1 Then Workbooks.Open (BDD.SelectedItems(1)) 'ouvre le fichier sélectionné
Set BDD = Nothing 'vide la variable BDD
MsgBox "Le fichier source est le classeur actif !" 'message facultatif
End Sub

Bonjour ThauThème,

Merci beaucoup pour ta proposition de code et ta réponse rapide!

Sais tu s'il est possible de charger le fichier sélectionné en tant que "requête" dans le fichier de travail directement ?

Merci par avance !

Victoire

Bonjour ThauThème,

Merci beaucoup pour ta proposition de code et ta réponse rapide!

Sais tu s'il est possible de charger le fichier sélectionné en tant que "requête" dans le fichier de travail directement ?

Merci par avance !

Victoire

Bonjour, salut ThauThème !

A la place d'ouvrir le fichier, tu peux stocker son nom complet dans une cellule, ou dans une variable publique (= déclarée hors de la macro).

Sheets(1).Range("A1") = BDD.SelectedItems(1)
'ou
MaVariable = BDD.SelectedItems(1)

Bonjour Pedro22,

Merci pour ton retour!

Peux tu m'expliquer à quoi cela sert de stocker le nom complet de mon fichier dans une cellule ?

Merci par avance!

Victoire

Bonjour Pedro22,

Merci pour ton retour!

Peux tu m'expliquer à quoi cela sert de stocker le nom complet de mon fichier dans une cellule ?

Merci par avance!

Victoire

A moins d'avoir mal compris, ton objectif est de récupérer le nom d'un fichier à l'ouverture de ton classeur, pour le valoriser je ne sais trop comment... C'est donc juste une manière de stocker ce nom, après l'avoir demandé.

Alors mon objectif final (s'il est réalisable) ce n'est pas de récuper le nom d'un ficher à l'ouverture d'un classeur.

Mon objectif :

A l'ouverture d'un classeurA dans la feuilleA , pouvoir charger les données de la feuilleB d'un classeurB (fermé). L'idée c'est de pouvoir mettre à jour ma base de données qui se trouve dans la feuilleA du classeurA.

Au début j'avais créé un requête dans mon classeurA qui chargait les données de la feuilleB de mon classeurB et les mettait en forme dans ma feuilleA.

Je souhaitais, pour sécuriser mon fichier si jamais l'emplacement du classeurB venait à changer, pouvoir laisser, à l'ouverture de mon classeurA, l'utilisateur renseigner le fameux classeurB (donc de laisser l'utilisateur parcourir les fichier pour ensuite charger les données en forme sur ma feuilleA du classeurA).

J'espère avoir été plus claire sur mon objectif ^^

Merci encore par avance!

Victoire

Rechercher des sujets similaires à "creation msgbox personnalisee charger fichier"