Macro pour listbox

Bonjour,

Je suis entrain de créer une listbox associer à mes feuilles de classeur pour que l'utilisateur choisisse plus facilement sa feuille (comme sur un menu).

Auriez-vous une idée de code pour m'aider à réaliser cette liste box s'il vous plait ?

Merci d'avance !

Lucie

Bonjour

voila une listbox pour le choix des Onglet

a mettre dans un Userform

Dim Ctrl As Control

Private Sub UserForm_Initialize()
Me.Caption = "Liste Onglet"
Me.BackColor = &H80000005
   For Each Ctrl In Me.Controls
       Select Case Left(Ctrl.Name, 3)
            Case "Lis"
               Ctrl.BackColor = &HC0FFFF
               Ctrl.ForeColor = &HFF&
               Ctrl.TextAlign = 1
               Ctrl.Font.Name = "Courier New"
               Ctrl.Font.Size = 16
               Ctrl.Font.Bold = True
               Ctrl.Height = 25
       End Select
   Next Ctrl
End Sub

Private Sub UserForm_Activate()
Dim Feuil As Object
   For Each Feuil In Worksheets
      If Feuil.Name <> ActiveSheet.Name Then
            ListBox1.AddItem Feuil.Name
      End If
   Next
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Sheets(ListBox1.Value).Select
    Application.Goto [A1], True
    Unload Me
End Sub

A+

Maurice

Merci beaucoup de votre aide !

Bonjour, Salut Archer !

Je suis entrain de créer une listbox associer à mes feuilles de classeur pour que l'utilisateur choisisse plus facilement sa feuille (comme sur un menu).

Pour autant que je me souvienne, c'est exactement ce que je t'ai fourni sur un sujet précédent !

Cordialement.

Bonjour, MFerrand

je ne pense car j'ais jamais poser de question sur un site

A+

Maurice

Re Archer,

Toi je sais ! Il s'agit d'une question antérieure de Lucie...

Bonne journée à toi.

Haha je sais mais j'essaye de faire une listbox différente

Ah mince :p

Si j'avais su que la question avait déjà été posée je me serais pas embêter à codifier tout sa :

Private Sub UserForm_initialize()
Dim a As Long, b As Long
Dim x As Long, y As Long
Dim Top As Long, Height As Long, TopButton As Long, HeightUser As Long
Dim Ctrl As Control

a = 0
Top = 12
Height = 42
TopButton = 54
HeightUser = 113.25
x = Worksheets.Count
UserForm1.Width = 191.25
Frame1.Width = 168

For Each Ctrl In Controls
    If TypeName(Ctrl) = "OptionButton" Then a = a + 1
Next Ctrl

For b = 1 To a
    If b > x Then UserForm1.Controls("OptionButton" & b).Visible = False
Next

For y = 1 To x
    UserForm1.Controls("OptionButton" & y).Caption = Sheets(y).Name
    UserForm1.Controls("OptionButton" & y).Top = Top
    UserForm1.Controls("OptionButton" & y).Left = 12
    UserForm1.Controls("OptionButton" & y).Visible = True
    Frame1.Height = Height
    UserForm1.Height = HeightUser
    CommandButton1.Top = TopButton
    Top = Top + 18
    HeightUser = HeightUser + 18
    TopButton = TopButton + 18
    Height = Height + 18
Next

End Sub
Private Sub CommandButton1_Click()
Dim x As Long
Dim Ctrl As Control

x = 1

For Each Ctrl In Controls
    If UserForm1.Controls("OptionButton" & x).Value = True Then Exit For
    x = x + 1
Next Ctrl

Sheets(UserForm1.Controls("OptionButton" & x).Caption).Select

Unload Me

End Sub

En gros, l'Userform s'adapte au nombre et au nom des feuilles.

Dans mon exemple, on peux avoir de 1 à 72 feuilles prisent en compte, et il faut ajouter des OptionButton pour en avoir des nouvelles.

Bref! Je le pose quand même la si jamais quelqu'un cherche à faire des boucles sur des Items ^^ !

Restant à dispo

Edit : En plus j'étais HS parce que c'était par ListBox qu'il fallait passer xD

15pour-lucie.xlsm (30.50 Ko)

Merci beaucoup pour ton temps !

Haha je sais mais j'essaye de faire une listbox différente

En quoi ?

Une ListBox contenant les noms de feuilles du classeur sera toujours une ListBox contenant les noms de feuilles du classeur !

Je te rappelle, au cas où..., que la mienne, renouvelée à chaque lancement, excluait le nom de la feuille active, puisqu'il s'agissait de se rendre de là vers une autre feuille...

Rechercher des sujets similaires à "macro listbox"