Merci cela ma beaucoup aidé!
Par contre j'ai un ptit soucis, je me sers de ce programme pour ouvrir une UserForm avec 3 choix de sélection, le 1er choix influence le 2ème qui lui même influence le 3ème.
Le problème c'est que quand je double sur ma feuille ("D1"), l'UF se lance, j'ai mes 3 liste déroulante et mon bouton "valider" mais quand je veux pour choisir mon 1er choix, ma liste déroulante est vide... et je ne vois pas pourquoi :s.
Voici ce qu'il y a dans "D1"
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
If IsEmpty(ActiveCell.Value) Then
UserForm9.Show
ActiveCell.Value = ComboBox2.Text
ElseIf ActiveCell.Value = "X" Then
ActiveCell.Value = ""
End If
Cancel = True
End Sub
Dans mon UF(n°9)
Private Sub UserForm_click()
ComboBox3.Rowsource = "Feuil10!F11:F12" 'Récupération des Données à partir de la feuille 10, 2 choix possible : Module/onduleur
If ComboBox3.Text = "Module" Then
Option Explicit
'La sélection du ComboBox1 (données colonne B) définit le contenu du ComboBox2 (données colonne 1)
Dim TabTemp As Variant
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, ""
Else
Dim L As Long
'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 Sub
Private Sub ComboBox1_Change()
Dim x As String
'Remplir Combo2
RemplirCbo 2, ComboBox1.Text
x = ComboBox2.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()
'MsgBox "Modèle choisi = " & ComboBox2.Text
' Sheets("D1").Select
'Range("B49").Select
ActiveCell.Value = ComboBox2.Text
Unload userform1
End Sub
ComboBox3 = C'est mon 1er choix
ComboBox1 = C'est mon 2ème choix
ComboBox2 = C'est mon 3ème choix, celui que je veux retourner sur la case ou je double clic
Si quelqu'una une idée... Merci d'avance!