Ouvrir un classeur Excel depuis une combobox

Bonjour à tous,

Je souhaiterai ouvrir des fichier excel en fonction des fichiers sélectionnés dans une combobox.

Je vous explique, j'ai une un classeur excel dans lequel j'ai une liste de nom de classeur Excel (l'ensemble des ces fichiers sont dans le même répertoire que mon fichier qui contient la liste)

Une fois le classeur ouvert, l'utilisateur clique sur un bouton qui ouvre un userform demande la sélection de 2 fichiers. J'utilise donc 2 combobox qui pointe vers la même liste de données (ma liste de nom de classeur).

Après avoir sélectionner les 2 fichier à ouvrir, l'utilisateur clique sur un bouton "Valider", à ce moment les 2 classeurs dont le nom est contenu dans les combobox doivent s'ouvrir.

Je n'arrive pas à réaliser cette action. J'ai réussi à bien récupérer mes données pour mes listes de combobox. Ces dernières récupère bien les données, mais ensuite je ne sais pas comment dire :

"Ouvre les fichiers sont les noms sont les valeurs de combobox1 et 2.

voici ce que j'avais imaginer en cherchant sur des forums

Private Sub UserForm_Initialize()
Dim i
    For i = 10 To 39
        ComboBox1.AddItem Sheets("Scénarios").Cells(i, 3)
        ComboBox2.AddItem Sheets("Scénarios").Cells(i, 3)
    Next
End Sub
Private Sub CommandButton1_Click()
Workbooks.Open Filename:="C:\Users\ROGGY\Witness\98 - Analyse des scénarios" & Sheets("Acceuil").ComboBox1.Value
Workbooks.Open Filename:="C:\Users\ROGGY\Witness\98 - Analyse des scénarios" & Sheets("Acceuil").ComboBox2.Value
End Sub

Mais je ne sais pas vraiment quelle valeur doit prendre "Sheets", de quelle feuille parle t-on ? la première feuille du fichier à ouvrir ou bien la feuille dans laquelle se trouve ma liste de nom de fichiers ?

Qu'est ce qu'il y a écrit dans tes combobox ?

Si dans ta combobox il y a écrit: Nomdufichier

Workbooks.Open Filename:="C:\Users\ROGGY\Witness\98 - Analyse des scénarios\" & Sheets("Acceuil").ComboBox1.Value & ".xlsx"

Si dans ta combobox il y a écrit: Nomdufichier.xlsx

Workbooks.Open Filename:="C:\Users\ROGGY\Witness\98 - Analyse des scénarios\" & Sheets("Acceuil").ComboBox1.Value

Merci pour ta réponse.

Dans ma combobox il y a d'écrit nom_du_fichier.xlsm

Pourrais tu me dire à quoi fait référence le Sheets("Acceuil") ?

Workbooks.Open Filename:="C:\Users\ROGGY\Witness\98 - Analyse des scénarios\" & Sheets("Acceuil").ComboBox1.Value

Comme tu peux voir il te manque un "\"

La ComboBox1 est dans la feuille Acceuil?


Ah je n'avais pas fait attention... C'est un userform...

Dans ce cas c'est cela

Workbooks.Open Filename:="C:\Users\ROGGY\Witness\98 - Analyse des scénarios\" & Me.ComboBox1.Value

Super ça fonctionne merci.

Je début en VBA, pourrais tu m'expliquer la différence entre l'ancien code que j'avais et qui était mauvais et le bon ?

Merci

Tu as tout d'abord oublié le "/" tu essayais donc d'ouvrir ce fichier..

"C:\Users\ROGGY\Witness\98 - Analyse des scénariosnom_du_fichier.xlsm"

Au lieu de celui ci

"C:\Users\ROGGY\Witness\98 - Analyse des scénarios\nom_du_fichier.xlsm"

En plus tu disais au compilateur d'aller chercher les données des contrôle activeX(combobox) qui se situaient dans ta feuille "Acceuil"

or ces contrôles n'éxistaient pas.

Il se trouvaient dans ton userform. C'est pourquoi remplacer le sheets("Acceuil") par un Me.

Me veut dire Moi, ou alors userform actif pour les non connaisseurs de hierarchie d'objets VB

Je comprends, merci de ton aide.

J'ai une autre petite question.

Dans mon fichier où j'ai la listes des classeur j'ai une feuille (Feuil1) dans laquelle, une plage de cellule doit copier le contenue d'une plage de cellule du classeur ouvert avec la combobox 1.

J'aurais voulu faire quelque chose du genre :

Private Sub CommandButton2_Click()
Feuil1.Cells(2, 2) = "La valeur de la cellule (3, 5) de la feuille "Data" du classeur ayant comme nom la valeur de combobox1
End Sub

Je sais pas si je suis très explicite dans mes explications.

Feuil1.Cells(2, 2)=workbooks(Me.combobox1.value).Sheets("Data").cells(3,5)

Merci mais j'avais essayé cette technique mais j'ai une erreur de compilation "membre de méthodes ou de donnée introuvable avec "Me.ComboBox1" surligné en bleu.

Je précise que le bouton me permettant de lancer ce "copier/coller" de données n'est pas de min userform.

Alors comment faire pour récupérer le nom du fichier ?

Je pensais que la valeur de ComboBox1 n'était pas valable que dans le UserForm.

Du coup j'ai ajouté mon bouton d'import de donnée dans le UserForm.

Merci de ton aide.

Rechercher des sujets similaires à "ouvrir classeur combobox"