comobobox qui listent les onglest non masqués dans un menu perso

ldexplorer

XLDnaute Junior
Bonsoir à tous,

Je suis tout nouveau parmi vous (merci à excel download de m'avoir orienté). J'ai déjà de nombreuses fois pu bénéficier de l'aide directe d'excelliens ou par leur contribution.

Je rencontre la difficulté suivante. Je fais une barre de menu perso qui me permettra à l'aide d'icones (FaceID) de lancer certaines macros. Je voudrais y inclure une combobox qui listent les onglets non masqué du classeur.


J'ai pour cela créé la combo suivante :

Code:
Set msoCCB = CB.Controls.Add(msoControlComboBox, , , , True)
        With msoCCB
            .TooltipText = "Listes les onglets non masqués du classeur
            .OnAction = "Listing"
        End With_vba_

qui appelle la macro listing suivante.

Code:
Sub Listing()

Dim WK As Worksheet

ComboBox1.Clear
For Each WK In ThisWorkbook.Worksheets
 If WK.Name <> "Codes" And WK.Name <> "CE_Vierge" Then
  ComboBox1.AddItem WK.Name
 End If
Next WK

End Sub_vba_

Codes et CE_Vierge sont les feuilles masqués.

Or, cela ne fonctionne pas. Je ne sais pas comment faire.
Merci à vous tous de m'apporter votre aide sur cette question épineuse.
 

JYLL

Nous a quitté
Repose en paix
Re : comobobox qui listent les onglest non masqués dans un menu perso

Bonsoir Idexplorer et le Forum,


Quelques petites modifs et ta macro fonctionne, il faut ajouter "userform1"



Sub Listing()

Dim WK As Worksheet

UserForm1.ComboBox1.Clear
For Each WK In ThisWorkbook.Worksheets
If WK.Name <> "Codes" And WK.Name <> "CE_Vierge" Then
UserForm1.ComboBox1.AddItem WK.Name
End If
Next WK
UserForm1.Show
End Sub


Bon test.
 

ldexplorer

XLDnaute Junior
Re : comobobox qui listent les onglest non masqués dans un menu perso

Merci Jean-Yves d'avoir pris du temps pour me répondre,

néanmoins ta proposition ne fonctionne pas comme tu pourras le voir dans le fichier joint.

Si tu veux, je serais reconforté que tu jettes un oeil

:D
 

JYLL

Nous a quitté
Repose en paix
Re : comobobox qui listent les onglest non masqués dans un menu perso

Re Bonsoir ldexplorer

J'ai refait vite fait un classeur car tu n'as pas du m'envoyer le bon.

Teste le mien.
 

Pièces jointes

  • Listing.xls
    32.5 KB · Affichages: 74
  • Listing.xls
    32.5 KB · Affichages: 72
  • Listing.xls
    32.5 KB · Affichages: 74

ldexplorer

XLDnaute Junior
Re : comobobox qui listent les onglest non masqués dans un menu perso

JYLL,

Je comprends maintenant le problème. Je ne souhaite pas que la combo apparaisse dans une userform. Ca je sais le faire et effectivement c'est mieux avec un userform.

Ce que je prepare c'est une barre de menu perso qui s'affiche au même titre que la barre de mise en forme par exemple.

J'arrive à faire les boutons qui lancent les macros mais je coince sur cette combo.

Excuse moi si je n'ai pas été claire dès le départ.
 

myDearFriend!

XLDnaute Barbatruc
Re : comobobox qui listent les onglest non masqués dans un menu perso

Bonsoir ldexplorer, Jyll,

Ci-dessous, peut-être une façon de faire :
Code:
[SIZE=2][COLOR=GRAY][B][I]DANS UN MODULE DE CODE STANDARD[/I][/B][/COLOR]

[COLOR=NAVY]Sub[/COLOR] CreerMenuCombo()
[COLOR=NAVY]Dim[/COLOR] msoCCB [COLOR=NAVY]As[/COLOR] CommandBarComboBox
[COLOR=NAVY]Set[/COLOR] msoCCB = Application.CommandBars(1).Controls.Add(msoControlComboBox, , , , [COLOR=NAVY]True[/COLOR])
        [COLOR=NAVY]With[/COLOR] msoCCB
            .TooltipText = "Listes les onglets non masqués du classeur"
            .Tag = "LaCombo"
            .OnAction = "LaMacro"
            Listing
        [COLOR=NAVY]End With
End Sub[/COLOR]

[COLOR=NAVY]Sub[/COLOR] Listing()
[COLOR=NAVY]Dim[/COLOR] WK [COLOR=NAVY]As[/COLOR] Worksheet
[COLOR=NAVY]Dim[/COLOR] cbo [COLOR=NAVY]As[/COLOR] CommandBarControl
    [COLOR=NAVY]Set[/COLOR] cbo = Application.CommandBars(1).FindControl(Tag:="LaCombo")
    cbo.Clear
    [COLOR=NAVY]For Each[/COLOR] WK [COLOR=NAVY]In[/COLOR] ThisWorkbook.Worksheets
        [COLOR=NAVY]If[/COLOR] WK.Name <> "Codes" And WK.Name <> "CE_Vierge" [COLOR=NAVY]Then[/COLOR]
            cbo.AddItem WK.Name
        [COLOR=NAVY]End If
    Next[/COLOR] WK
[COLOR=NAVY]End Sub[/COLOR]
[/SIZE]
Je te conseille également d'insérer la procédure ci-dessous dans le module de code de l'objet ThisWorkbook :
Code:
[SIZE=2][COLOR=GRAY][B][I]DANS LE MODULE DE CODE DE L'OBJET THISWORKBOOK[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] Workbook_SheetActivate([COLOR=NAVY]ByVal[/COLOR] Sh [COLOR=NAVY]As Object[/COLOR])
    Listing
[COLOR=NAVY]End Sub[/COLOR][/SIZE]
Cette dernière procédure te permettra d'avoir toujours ta liste de feuilles à jour, même si l'utilisateur supprime ou insère de nouvelles feuilles.

Tu l'as remarqué, j'ai volontairement occulté la mise à jour de cette liste en réaction à l'évènement OnAction. En effet, cet évènement ce déclenche, non pas lors du clic pour dérouler la combo, mais lors du choix d'un item dans la liste. Placer à cet endroit un refresh de cette liste ne me semblait pas vraiment une bonne idée...

Cordialement,
 

ldexplorer

XLDnaute Junior
Re : comobobox qui listent les onglest non masqués dans un menu perso

Bonjour à tous le forum,

Je remercie ceux qui ont pris le temps de me lire et de trouver une réponse.

Les forumiens futurs qui tomberont sur ce message pourront trouver la suite des réflexions à l'adresse ci-dessous:

HTML:
http://www.veriti.net/forum/posting.php?mode=reply&t=815&p=5157

Par ailleurs, je présente mes excuses aux personnes que j'aurais pu froissé lorsqu'elles sont tombées sur la même question posté sur le forum veriti.

Encore merci à tous de votre aide précieuse,
 

Statistiques des forums

Discussions
312 286
Messages
2 086 812
Membres
103 392
dernier inscrit
doc_banane