... je reviens sur la procédure jointe..
Dans Userform_initialize, la variable "dl" apparaît non déclarée idem pour "re" dans Commandbutton...
Aucune erreur n'est signalée et les valeurs sont passées... comment est-ce possible ?
Private Sub CommandButton1_Click()
With Sheets("bdd")
'dl est la référence de a ligne,valeur, récupérée dans Userform
dl = .Cells(Rows.Count, 1).End(xlUp).Row
'ComboBox1.Value=valeur saisie
Set re = .Range("A1").Resize(dl).Find(ComboBox1.Value, lookat:=xlWhole)
'Le mot clé Nothing permet de distinguer une variable objet d'un objet réel
If re Is Nothing Then
'ans =6. c'est la valeur affectée à vbYes, vbYesNo=4
ans = MsgBox("ajouter l'article " & ComboBox1.Text, vbYesNo)
If ans = vbYes Then
'incrémente la ligne de saisie
dl = dl + 1
'passe les valeurs saisies en colonnes A et B
.Cells(dl, 1) = ComboBox1.Text
.Cells(dl, 2) = TextBox1.Value + 0
End If
Else
'applique le décalage à la valeur re
re.Offset(, 1) = TextBox1.Value
End If
End With
End Sub
Private Sub UserForm_Initialize()
With Sheets("bdd")
'compte le nombre de lignes occupées
dl = .Cells(Rows.Count, 1).End(xlUp).Row
'fenêtre CBX vide
ComboBox1.Clear
'se positionne à la dernière ligne
For i = 2 To dl
ComboBox1.AddItem .Cells(i, 1)
Next i
End With
'lance l'affichage du formulaire
End Sub