• Initiateur de la discussion Initiateur de la discussion walki
  • Date de début Date de début

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 !

walki

XLDnaute Nouveau
Bonjour a tous,

J'ai créé dans vba (via un tuto car je debute tout juste) une liste déroulante dans une combobox.
Cela fonctionne tres bien.

Ce que j'aimerai faire, c'est pouvoir avoir la meme combobox avec la meme liste deroulante mais dans plusieurs classeurs différents mais qui le sont pas ouverts.

Besoin de votre aide SVP.

MERCI
 
Bonjour @walki
bon alors je recommande la prise régulière de 2 dolipranes par jour espacés de 4 heures
2 à 3 séances d'auto flagellation par jour les heures de séance au choix
4/6 pétards de fumette pour garder l’appétit
le tout pendant une semaine
dans une semaine si ta question est toujours la même recommence une semaine de plus
au delà revenir me consulter
avec cette note d'humour ,tu l'aura compris ta question soulève plus d’interrogation que de probable proposition
😉
 
Bonjour @walki
bon alors je recommande la prise régulière de 2 dolipranes par jour espacés de 4 heures
2 à 3 séances d'auto flagellation par jour les heures de séance au choix
4/6 pétards de fumette pour garder l’appétit
le tout pendant une semaine
dans une semaine si ta question est toujours la même recommence une semaine de plus
au delà revenir me consulter
avec cette note d'humour ,tu l'aura compris ta question soulève plus d’interrogation que de probable proposition
😉
Du coup ca veut dire que ce n'est pas possible de le faire😅😅
 
Bonjour walki, Patrick,

Pour pouvoir créer une ComboBox dans un classeur il faut qu'il soit ouvert.

Et s'il y a plusieurs classeurs ouverts on peut utiliser cette macro :
VB:
Sub Copie_ComBoBox()
Dim cb As OLEObject, wb As Workbook, n
Set cb = ActiveSheet.OLEObjects("Combobox1") 'nom à adapter
For Each wb In Workbooks 'classeurs ouverts
    If wb.Name <> ActiveWorkbook.Name Then
        n = wb.Worksheets(1).OLEObjects.Count
        cb.Copy
        wb.Worksheets(1).Paste
        With wb.Worksheets(1).OLEObjects(n + 1)
            .Top = cb.Top 'même position
            .Left = cb.Left
            .Object.List = cb.Object.List 'même liste
        End With
    End If
Next
End Sub
Elle copie la ComboBox de la feuille active et l'insère dans la 1ère feuille de chaque classeur ouvert.

A+
 
Bonjour walki, Patrick,

Pour pouvoir créer une ComboBox dans un classeur il faut qu'il soit ouvert.

Et s'il y a plusieurs classeurs ouverts on peut utiliser cette macro :
VB:
Sub Copie_ComBoBox()
Dim cb As OLEObject, wb As Workbook, n
Set cb = ActiveSheet.OLEObjects("Combobox1") 'nom à adapter
For Each wb In Workbooks 'classeurs ouverts
    If wb.Name <> ActiveWorkbook.Name Then
        n = wb.Worksheets(1).OLEObjects.Count
        cb.Copy
        wb.Worksheets(1).Paste
        With wb.Worksheets(1).OLEObjects(n + 1)
            .Top = cb.Top 'même position
            .Left = cb.Left
            .Object.List = cb.Object.List 'même liste
        End With
    End If
Next
End Sub
Elle copie la ComboBox de la feuille active et l'insère dans la 1ère feuille de chaque classeur ouvert.

A+
 
Oui il faut forcément ouvrir les classeurs pour créer les ComboBox.

Une fois créées enregistrez les classeurs et refermez-les.

Quand on les rouvre on voit que les listes n'existent plus car elles ont été créées par la méthode .List.

Il faut donc les recréer à chaque fois avec cette macro :
VB:
Sub Copie_Liste_ComBoBox()
Dim nom$, cb As OLEObject, wb As Workbook
nom = "Combobox1"
Set cb = ActiveSheet.OLEObjects(nom) 'nom à adapter
For Each wb In Workbooks
    With wb.Worksheets(1).OLEObjects(nom).Object
        .List = cb.Object.List 'même liste
        .Text = cb.Object.Text
    End With
Next
End Sub
Les ComboBox doivent toutes avoir le même nom.
 
Cela dit créer en même temps une ComboBox et/ou Liste de plusieurs classeurs n'est pas courant.

La méthode habituelle est de créer une ComboBox comme on veut et où l'on veut dans chaque fichier .xlsm.

La liste de la ComboBox est mise à jour à l'ouverture du fichier par la macro Workbook_Open du ThisWorkbook.

La plage source peut être dans le même fichier ou dans un autre fichier fermé.
 
Cela dit créer en même temps une ComboBox et/ou Liste de plusieurs classeurs n'est pas courant.

La méthode habituelle est de créer une ComboBox comme on veut et où l'on veut dans chaque fichier .xlsm.

La liste de la ComboBox est mise à jour à l'ouverture du fichier par la macro Workbook_Open du ThisWorkbook.

La plage source peut être dans le même fichier ou dans un autre fichier fermé.
C'est peut être moi qui me suis mal exprimé lol....
Je recommence :
J'ai 1 classeur avec plusieurs onglets que j'utilise tous les jours et sur lequel je mets mes données.
Dans ce meme classeur, il y a un onglet appellé :"liste des pieces" comprenant tout ce dont j'ai besoin pour remplir mon suivi d'avancement journalier.
La combobox a été créée car n'ayant pas excel 365, je n'avait pas la saisie rapide pour chercher plus vite ma pièce dans la liste déroulante.


Mes autres classeurs sont des planning (52 classeurs pour être précis)

Afin de gagner du temps, je voudrais et cela sans ouvrir mon classeur journalier, pouvoir utiliser ce menu déroulant avec saisie rapide dans n'importe quel classeur "planning" sans avoir a incorporer un onglet "liste de piece" dans chacun des classeur "planning" et retaper 52 fois le code vba 😅😅😅.

Est ce que cela est plus explicite ou je m'y prend comme une buse?😅😅
 
- 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

Réponses
15
Affichages
669
Réponses
8
Affichages
170
Retour