UserForm

Bonjour le forum,

j'ai réussi, à peu près, à créer un UsF.

J'ai un menu-déroulant dans celui-ci, avec la liste des mois de l'année.

J'aimerais, quand par exemple je sélectionne "Février" dans le menu-déroulant et après avoir validé "OK"/UsF, qu'une plage de cellules soit sélectionnée.

Voici ledit code :

Private Sub ComboBox1_Change()

End Sub
Private Sub CommandButton1_Click()

If Len(Me.ComboBox1.Value) > 0 Then
         Range("A1:E26").Select
     End If
     Me.Hide
End Sub

Private Sub UserForm_Initialize()
         PopulateCombo1
End Sub
 Sub PopulateCombo1()
         Const cMois = "Janvier;Février;Mars;Avril;Mai;Juin;juillet;Août;Septembre;Octobre;Novembre;Décembre"
         Dim i As Integer
         Dim aMois() As String

         aMois() = Split(cMois, ";")

         For i = 0 To UBound(aMois)
             Me.ComboBox1.AddItem aMois(i)
         Next

     End Sub

Je ne vous joins que le code, le fichier comportant des données personnelles.

Mais s'il le faut vraiment, je partagerais ce fichier que je devrais modifier.

Par avance merci pour votre aide

Bonjour,

Oui vous devez joindre le fichier qui va bien avec...

Il n'est pas utile que ce soit votre fichier réel. Toutefois le fichier doit avoir un rapport clair avec la question j'imagine facilement que si l'on sélectionne le mois d'Aout, il va s'agir de sélectionner les données correspondantes. Seulement comme ces dones peuvent avoir une nature protéiforme, il s'agit qu'on puisse vous répondre de manière pertinente...

A+

Pour répondre de manière générale, il s'agit d'exploiter la propriété ListIndex du combo :

Private Sub CommandButton1_Click()
Select case Me.ComboBox1.ListIndex
Case 0: x = "JANVIER"
Case 1: x = "FEVRIER"
Case 2: x = "MARS"
Case 3: x = "AVRIL"
Case Else: x = "Autre MOIS"
         Range(x).Select
     End select
Me.Hide
End Sub

A+

Bonjour le fil, bonjour le forum,

Tout à fait d'accord avec Galopin. Il est tellement facile rapide de créer une fichier exemple...

Sinon j'aurais codé comme ça :

Private O As Worksheet 'déclare la variable O (Onglet)

Private Sub UserForm_Initialize()
Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
'alimente la ComboBox
Me.PopulateCombo1.List = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
End Sub

Private Sub CommandButton1_Click()
O.Activate 'active l'0onglet O
Select Case Me.PopulateCombo1.ListIndex 'agit en fonction de l'index de la ComboBox
    Case 0 'cas 0
        O.Range("PLAGE_pour_Janvier").Select 'définit la plage adéquate
    Case 1 'cas 1
        O.Range("PLAGE_pour_Févrirr").Select 'définit la plage adéquate
    '...
    Case 12 'cas 12
        O.Range("PLAGE_pour_Décembre").Select 'définit la plage adéquate
End Select 'fin de l'action en fonction de l'index de la ComboBox
Unload Me 'vide et ferme l'UserForm en cours
End Sub

Bonjour

tu peux aussi changer la combobox

A voir

Dim An&
An = Year(Now)
    With ComboBox1
            .Clear
        For M = 1 To 12
            .AddItem Application.Proper(MonthName(Month(DateSerial(An, M, 1))))
        Next
    End With

A+

Maurice

Bonjour à tous,

je vous joins mon fichier modifié pour que vous puissiez clarifier ma demande

J'ai essayé vos divers codes mais je n'y arrive pas

5usf-forum.xlsm (43.61 Ko)

Re,

C'est de ma faute, j'ai fait l'amalgame entre Combobox1 et PopulateCombo1. En pièce jointe ton fichier modifié.

7yoyo-ep-v01.xlsm (43.62 Ko)

C'est tout OK, merci à vous tous

Rechercher des sujets similaires à "userform"