Ouvrir un classeur Excel depuis une combobox Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
q
quentin46
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 14 mai 2014
Version d'Excel : Mac 2011 FR

Message par quentin46 » 19 mai 2014, 10:29

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 ?
E
EngueEngue
Membre impliqué
Membre impliqué
Messages : 1'493
Inscrit le : 12 décembre 2013
Version d'Excel : 2010

Message par EngueEngue » 19 mai 2014, 10:39

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
q
quentin46
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 14 mai 2014
Version d'Excel : Mac 2011 FR

Message par quentin46 » 19 mai 2014, 10:45

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") ?
E
EngueEngue
Membre impliqué
Membre impliqué
Messages : 1'493
Inscrit le : 12 décembre 2013
Version d'Excel : 2010

Message par EngueEngue » 19 mai 2014, 10:47

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
q
quentin46
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 14 mai 2014
Version d'Excel : Mac 2011 FR

Message par quentin46 » 19 mai 2014, 10:53

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
E
EngueEngue
Membre impliqué
Membre impliqué
Messages : 1'493
Inscrit le : 12 décembre 2013
Version d'Excel : 2010

Message par EngueEngue » 19 mai 2014, 10:57

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
q
quentin46
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 14 mai 2014
Version d'Excel : Mac 2011 FR

Message par quentin46 » 19 mai 2014, 12:07

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.
E
EngueEngue
Membre impliqué
Membre impliqué
Messages : 1'493
Inscrit le : 12 décembre 2013
Version d'Excel : 2010

Message par EngueEngue » 19 mai 2014, 12:17

Feuil1.Cells(2, 2)=workbooks(Me.combobox1.value).Sheets("Data").cells(3,5)
q
quentin46
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 14 mai 2014
Version d'Excel : Mac 2011 FR

Message par quentin46 » 19 mai 2014, 13:40

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.
E
EngueEngue
Membre impliqué
Membre impliqué
Messages : 1'493
Inscrit le : 12 décembre 2013
Version d'Excel : 2010

Message par EngueEngue » 19 mai 2014, 13:49

Alors comment faire pour récupérer le nom du fichier ?
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message