Problème dans mon UserForm
Bonjour,
J'ai un problème dans mes lignes de code et je n'arrive pas a voir où est mon erreur, c'est un ptit problème mais bon je préfère le résoudre.
J'ai amélioré un code pour, quand je double clic sur une case, une UserForm s'ouvre me proposant 3 liste déroulante, chaque liste déroulante influençant celle qui la suis, le nom choisi dans la dernière liste déroulante est retourné dans la case où j'ai double cliqué
Le problème :
La 1ère liste déroulante (ComboBox3) marche très bien, elle m'affiche mes 2 choix : "Module" ou "Onduleur".
Ma 2ème liste déroulante (ComboBox1) ne m'affiche rien, il faut que je clic à côté (sur l'interface) et qu'ensuite je retourne sur ma liste déroulante pour que les différents choix disponibles apparaissent...
La 3ème liste déroulante (ComboBox2) marche bien.
Voici le code que je rentre :
Option Explicit
Dim TabTemp As Variant
Private Sub UserForm_Initialize()
ComboBox3.RowSource = "Feuil10!F11:F12" 'Récupération des Données, "Module" ou "Onduleur"
End Sub
Private Sub UserForm_Click()
If ComboBox3.Text = "Module" Then
'La sélection du ComboBox1 (données colonne B) définit le contenu du ComboBox2 (données colonne 1)
Dim L As Long
'Mémorise les données dans un tableau variant temporaire
With Sheets("Module")
L = .Cells(.Rows.Count, 1).End(xlUp).Row
TabTemp = .Range(.Cells(2, 1), .Cells(L, 3)).Value
End With
'Remplir ComboBox1
RemplirCbo 1, ""
End If
If ComboBox3.Text = "Onduleur" Then
'Mémorise les données dans un tableau variant temporaire
With Sheets("Onduleur")
L = .Cells(.Rows.Count, 1).End(xlUp).Row
TabTemp = .Range(.Cells(2, 1), .Cells(L, 3)).Value
End With
'Remplir ComboBox1
RemplirCbo 1, ""
End If
End Sub
Private Sub ComboBox1_click()
'Remplir Combo2
RemplirCbo 2, ComboBox1.Text
End Sub
Private Sub RemplirCbo(Id As Byte, T As String)
Dim Col As New Collection 'gestion doublons
Dim Cbo As Control
Dim L As Long
'RAZ ComboBox
For L = 2 To Id Step -1
Controls("Combobox" & L).Clear
Next L
'MAJ ComboBox (sans doublon)
Set Cbo = Controls("Combobox" & Id)
For L = 1 To UBound(TabTemp, 1)
If TabTemp(L, 2) <> "" Then 'Pour éviter les lignes de titre
If Id = 1 Then 'Pour la première ComboBox
TabTemp(L, 3) = 1
On Error Resume Next
Col.Add TabTemp(L, 2), CStr(TabTemp(L, 2))
On Error GoTo 0
If Col.Count > Cbo.ListCount Then Cbo.AddItem TabTemp(L, 2)
Else 'Pour la suivante
If TabTemp(L, Id) = T Then
If TabTemp(L, 3) = 1 Then
On Error Resume Next
Col.Add TabTemp(L, 1), CStr(TabTemp(L, 1))
On Error GoTo 0
If Col.Count > Cbo.ListCount Then Cbo.AddItem TabTemp(L, 1)
End If
End If
End If
End If
Next L
End Sub
Sub CommandButton1_Click()
ActiveCell.Value = ComboBox2.Text
Unload UserForm9
End Sub
Si quelqu'un voit d'où vient mon erreur... Merci d'avance
Bonsoir vodkaddict
tu as placé la procédure dans userform_click
essai dans
Private Sub ComboBox3_Change()
Cordialement
Bob
J'avoue... je n'avais pas pensé à cela!
Merci, j'essaie demain et je te riens au courant
[EDIT] Impeccable cela marche, merci