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

Rechercher des sujets similaires à "enregistrement base donnees"