Liste déroulante avec optionbutton

Bonjour,

Je suis novice en VBA donc je vous écris pour m’aider à améliorer un UserForm (entrer_auto) qui s’active lors que je double clic dans une cellule de ma Feuil5…

Mon code fonctionne mais j’ai l’impression que depuis qu’il est écris, celui si me ralentit mon fichier Excel, est-ce possible ?

Est-ce que les données transposer dans la cb_liste_1 sont stocker puis effacer complétement lorsque que je quitte le userform ou change de choix avec les optionbutton ?

Pour info les nom de cellule _VBA_1_ect.... sont mise à jour automatiquement dans le tableau Excel

Voici mon code

Dim Cel_Liste As Range

Private Sub UserForm_Initialize()

    'Enable = True
    StartUpPosition = 0
    BackColor = &HFFFFFF
    OptionButton1_profil.Value = True

End Sub

Private Sub cb_liste_1_DropButtonClick()

If OptionButton1_profil.Value = True Then

        Set Titres = CreateObject("scripting.dictionary")
            For Each Cel_Liste In [_VBA_1_barre]
            If Not Titres.Exists(Cel_Liste.Value) Then Titres.Add Cel_Liste.Value, Cel_Liste.Value
            Next Cel_Liste

    entrer_auto.cb_liste_1.List = Application.Transpose(Titres.items)

ElseIf OptionButton2_hr.Value = True Then

        Set Titres = CreateObject("scripting.dictionary")
            For Each Cel_Liste In [_VBA_1_vis_HR]
            If Not Titres.Exists(Cel_Liste.Value) Then Titres.Add Cel_Liste.Value, Cel_Liste.Value
            Next Cel_Liste

    entrer_auto.cb_liste_1.List = Application.Transpose(Titres.items)

ElseIf OptionButton3_vislibre1.Value = True Then

        Set Titres = CreateObject("scripting.dictionary")
            For Each Cel_Liste In [_VBA_1_vis_libre_1]
            If Not Titres.Exists(Cel_Liste.Value) Then Titres.Add Cel_Liste.Value, Cel_Liste.Value
            Next Cel_Liste

    entrer_auto.cb_liste_1.List = Application.Transpose(Titres.items)

Else

    MsgBox ("test else")

End If

End Sub

Private Sub CommandButton_valid_ok_Click()

With Sheets("Feuil5")                                   'selection de la feuille
    ActiveCell = entrer_auto.cb_liste_1.Value           'vr'.Range("B1") = UserForm1.ComboBox1' Aplique la valeur
End With
    Selection.Offset(0, 1).Select                       ' Selection de la cellule a cote

'Unload Me                                              'permet le relance le initialize apres
End Sub

Merci d’avance pour votre aide !

Encore quelque précision…

Je vais devoir ajouter encore plusieurs optionbutton pour cette même liste déroulant donc est-ce que j’utilise la bonne méthode ?

Et est-ce que je dois nommer plus de variable ?

N’hésitez pas à me faire vos remarques ou idée d’amélioration

Comme vous vous douter bien j’ai copier des bouts de code sur internet…je reste un novice en vba

Merci

Bonjour et bienvenue sur le forum

Une macro est à un fichier ce qu'un moteur est à une voiture : l'un ne va pas sans l'autre.

Bye !

Rechercher des sujets similaires à "liste deroulante optionbutton"