Bonjour à tous,
Je suis nouveau sur ce forum et j'aurai vraiment besoin de votre aide.
J'ai un Userform qui me permet de saisir des données sur une feuille excel, je veux que avant de saisir les données une macro contrôle si la ligne existe déjà, si oui remplacer les données existantes si non ajouter la ligne.
J'ai trouver plusieurs sujets à ce sujet, et j'ai ajuster mon code, mais le contrôle ne s'effectue pas et on saisie les données même si elles existent déjà.
Mille merci d'avance pour votre aide.
Private Sub CommandButton2_Click()
If ListBox1.ListIndex = -1 Then Exit Sub
With ListBox1
Sheets("Calcul").Range(Cells(1, 1), Cells(.ListCount, 1)) = .List
End With
TextBox1.Value = ""
TextBox1.Value = ListBox1.ListCount
Dim cell As Range, Modif
'Controle si déjà existant
With Sheets("Calcul")
For Each cell In Sheets("Calcul").Range("I2:I" & Sheets("Calcul").Range("I65536").End(xlUp).Row)
If Not cell = ComboBox1 Then
' Mise en place des valeurs saisies
Range("I65536").End(xlUp).Offset(1, 0) = ComboBox1
Range("J65536").End(xlUp).Offset(1, 0).Value = Me.TextBox2.Text
Range("K65536").End(xlUp).Offset(1, 0).Value = Me.TextBox1.Text
Exit For
Else
Modif = MsgBox("cette personne est déjà référencée dans la base" & Chr(10) & Chr(10) & _
"Voulez-vous remplacer ces données ?", vbYesNo + vbQuestion, "Demande d'enregistrement")
' On remplace la somme et le commentaire
If Modif = vbYes Then
cell.Offset(0, 1) = Me.TextBox2.Text
cell.Offset(0, 2) = Me.TextBox1.Text
Exit For
End If
If Modif = vbNo Then
Exit For
End If
End If
Next
End With
End Sub