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 SubMerci 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 !