Enregistrement dans une base de données
Salut le forum,
j'ai ce code pour enregistrer des données (Nom d'utilisateur et mot de passe) dans une base de données et il fonctionne très bien à un point près :
Private Sub Enregistrer_Click()
Dim ligne As Integer
'Vérification du remplissage des Textbox
If TextBox1.Text = "" Then
MsgBox "Vous devez inscrire le nom de famille du nouvel utilisateur"
Exit Sub
End If
If TextBox2.Text = "" Then
MsgBox "Vous devez inscrire le prénom du nouvel utilisateur"
Exit Sub
End If
If TextBox3.Text = "" Then
MsgBox "Vous devez enregistrer un mot de passe"
Exit Sub
End If
'Vérification des mots de passe
If TextBox4.Text <> TextBox3.Text Then
MsgBox "Les mots de passe doivent être identiques"
Exit Sub
End If
'Copie des données dans la feuille "Mots de passe"
'Ces données y sont traitées pour obtenir le résultat voulu
Range("'Mots de passe'!H6") = TextBox1.Text
Range("'Mots de passe'!H7") = TextBox2.Text
Range("'Mots de passe'!E7") = TextBox4.Text
Sheets("Mots de passe").Protect userinterfaceonly:=True
'Copie des valeurs des cellules E6 et E7
'E6 est la réunion de H6 et H7 (Nom de famille et prénom)
'Les cellules de traitement sont aussi effacées par cette procédure
With Sheets("Mots de passe")
ligne = .Range("A65536").End(xlUp).Row + 1
.Cells(ligne, 1) = Sheets("Mots de passe").Cells(6, 5).Value
.Cells(ligne, 2) = Sheets("Mots de passe").Cells(7, 5).Value
.Range("E7").ClearContents
.Range("H6:H7").ClearContents
End With
'Classement du nom de l'utilisateur
'par ordre alphabétique à l'aide de la macro Trier2
Call Trier2
'Protection de la feuille "Mots de passe"
Sheets("Mots de passe").Protect
'Déchargement du USF "AjoutUtil"
Unload Me
'Appel du USF "admin"
admin.Show
End Sub
Si je retrouve une valeur équivalente dans ma colonne A ET une valeur équivalente dans ma colonne B, je dois être averti et l'enregistrement ne doit pas s'effectuer.
J'insiste sur le ET car il est possible de retrouver le même nom dans la liste ou le même mot de passe mais pas les deux combinés.
Remarquez que je suis capable de traiter cette information en trichant. C'est à dire, en la traitant dans une cellule dans la feuille et en renvoyant une valeur TRUE ou FALSE et en la traitant avec un IF dans mon code.
Je connais aussi la réponse que vous allez me soumettre : utiliser FIND dans ma recherche en VBA. Cependant, je n'ai jamais réussi à mettre sur pied ce code pour obtenir un résultat fonctionnel et sans bug.
Merci pour votre aide.
Un gars un peu tanné de tricher dans ses fichiers.
Bonjour,
Une méthode par boucle :
Sub test()
Dim cell1 As Range, cell2 As Range
For Each cell1 In Range("A1", Range("A65536").End(xlUp))
For Each cell2 In Range("B1", Range("B65536").End(xlUp))
If cell1 = cell2 Then MsgBox "ne pas sauver": Exit Sub
Next
Next
MsgBox "sauve"
End Sub
Amicalement
Dan