Eviter doublons sur textbox

  • Initiateur de la discussion Initiateur de la discussion CMoa
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CMoa

XLDnaute Occasionnel
Bonjour le forum
Comment modifier cette macro pour éviter les doublons dans les textbox 1 to 7.Si doublon trouvé : effacer les textbox.

Sub textbox_identiques()
For i = 1 To 7
If Me.Controls("textbox" & i).Value = Controls("textbox" & i).Value Then
Me.Controls("textbox" & i + 1).Value = ""
End If
Next i
MsgBox "Deux textbox identiques!", vbCritical
End Sub

J'ai tout essayé sans succès.
Merci pour votre aide.
 
Re : Eviter doublons sur textbox

Bonjour

Une solution
Une procédure paramétrable

Code:
Private Sub textbox_identiques(nutextbox As Byte, ok As Boolean)
Dim i As Byte
For i = 1 To 7
    If i <> nutextbox Then
if Me.Controls("textbox" & i).Value <> "" then
        If Me.Controls("textbox" & nutextbox).Value = Me.Controls("textbox" & i).Value Then
            TextBox4.Value = ""
            MsgBox "vous avez deux textbox avec la même valeur !", vbCritical
            Me.Controls("textbox" & nutextbox).Value = ""
            Me.Controls("textbox" & nutextbox).SetFocus
            ok = Not ok
            Exit Sub
        End If
end if
    End If
Next i

End Sub
Appel de la procédure par chaque textbox
Code:
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim resul As Boolean
resul = False
Call textbox_identiques(4, resul)
If resul = True Then Exit Sub ' si resul = true on a des textbox identiques
End Sub

A tester

JP
 
Re : Eviter doublons sur textbox

Bonsoir

Pour faire plus court il faut utiliser les procédures de classes, ce n'est pas trop mon domaine.

Mon problème était de savoir qui lance la procédure, cela dépend de l'userform.
Rien n'empèche de lancer la procédure du dernier Textbox, dans ce cas il faut écrire
Call Call textbox_identiques(7, resul)
Call textbox_identiques(6, resul)
..............................


JP
 
Re : Eviter doublons sur textbox

Bonsoir

Elle permet d'avoir un retour d'information.

Principe
On positionne la valeur "resul"
resul = False
' appel de la procédure, "resul" est passé a la procédure par référence (Byref), c'est à dire son adresse
Call textbox_identiques(4, resul)

Private Sub textbox_identiques(nutextbox As Byte, ok As Boolean)
Dans la procédure cette variable porte le nom de ok, elle pointe sur la même zone mémoire que resul
Si on trouve un doublon on positionne la variable booléenne Ok en utilisant la fonction not (fonction qui inverse une valeur).

Cette méthode permet si on le désire utiliser l'informationdonnée par "resul" pour afficher un message ou lancer une procédure.

Si cette fonction n'est pas utile il suffit de supprimer les codes;

N'ayant pas d'information sur la gestion de l'usf j'ai introduit cette notion.

JP
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
925
Réponses
5
Affichages
578
Réponses
15
Affichages
812
Réponses
10
Affichages
678
Réponses
8
Affichages
400
Réponses
2
Affichages
528
Retour