Bonjour,
J'ai finit la première partie de mon projet et j'ai donc décidé d'améliorer mon code en limitant le nombre de copier coller, et de if en cascade.
Dans mon useform je contrôle l'existence de plusieurs champ, est'il correct? nécessaire ? plus avantageux? de contrôler de cette manière et non de la maniéré classique, copier coller a chaque fois et changer juste les lettre et le message?
Private Sub Text_ad2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
verif_existence "Cette adresse est déjà utilisée!", "Text_ad2", "G"
End Sub
Sub verif_existence(Nom As String, Text As String, Lettre As String, Cancel As Boolean)
Dim rg As Range
Set rg = Sheets("Repertoire").Range(Lettre & ":" & Lettre).Find(Me.Controls(Text))
If Not rg Is Nothing Then
MsgBox Nom
Cancel = True -----------------------> ICI J'AI MON SOUCIE
End If
End Sub
Avant d'utiliser cette fonction de contrôle, je pouvais ainsi déclarer mon sub de la sorte :
Private Sub Text_nom_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
et ainsi tant que l'utilisateur n'a pas rectifié son erreur, il ne pouvait pas changer de champ, maintenant je ne sais plus comment faire car mon cancel ne fonctionne pas et plante même defois,
SMerci a vous