Bonjour,
Avec le code ci-dessous tu fais d'une pierre deux coups. Si une nouvelle marque est tapée dans la combobox, la marque est ajoutée à la liste (plus le modèle en dessous si il y en a un), sinon, le modèle est ajouté dans la bonne colonne.
Private O As Worksheet 'déclare la variable O (Onglet)
Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim I As Integer 'déclare la variable I (Incrément)
Set O = Sheets("base de donnée") 'définit l'onglet O
'boucle sur toutes les colonnes éditées de la première ligne de l'onglet O
For I = 1 To O.Cells(1, Application.Columns.Count).End(xlToLeft).Column
ComboBox_Marque.AddItem O.Cells(1, I) 'ajoute la valeur de la cellule ligne 1 colonne I à la combobox [ComboBox_Marque]
Next I 'prochaine colonne de la boucle
End Sub
Private Sub CommandButton_Ajouter_Click() 'bouton "Ajouter"
Dim COL As Integer 'déclare la variable COL (COLonne)
If Me.ComboBox_Marque.ListIndex = -1 Then 'condition : si nouvelle marque
COL = O.Cells(1, Application.Columns.Count).End(xlToLeft).Column + 1 'définit la colonne COL
O.Cells(1, COL).Value = Me.ComboBox_Marque.Value 'renvoie la marque dans la ligne 1
O.Cells(2, COL).Value = Me.TextBox_Modèle.Value 'renvoie le modèle dans la line 2
Exit Sub 'sort de la procédure
End If 'fin de la condition
COL = Me.ComboBox_Marque.ListIndex + 1 'définit la colonne COL
'renvoie le modèle dans la première ligne vide de la colonne COL
O.Cells(Application.Rows.Count, COL).End(xlUp).Offset(1, 0).Value = Me.TextBox_Modèle
Unload Me 'vide et ferme l'UserForm
End Sub
[Édition]
Bonjour Banzai on s'est (encore) croisé...