Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Anti doublon sur 2 colonnes

2 réponses
Avatar
Michel
Bonjour
J'ai un userform avec 2 textbox et divers contrôles
dans le 1er textbox je mets l'année en 4 chiffres
dans le 2ème textbox je mets un numéro
ceci afin d'avoir année et numéro de dossier
année en ColA et numéro en ColB
le pb est que un utilisateur peut a saisir lui-même les 2 textbox
Je souhaite avoir un anti-doublon qui fonctionne au moment de la validation
c'est à dire l'orque j'envoie les données sur la feuille, un test se fasse
et si les valeurs de textbox1 et textbox2 existent déjà, alors msbox "Ces
valeurs existent déjà..."
Merci beaucoup
Michel

2 réponses

Avatar
Hervé
Bonjour Michel,
Teste le code ci-dessous, code associé à un bouton. Les valeurs des deux
colonnes (A et B) sont concaténées (je suppose qu'elles son liée l'une à
l'autre ? exemple, A3 avec B3) et mis dans une collection, ensuite, les
valeurs des textbox sont à leurs tours concaténées et tenté d'être ajoutées
à la collection, si aucune erreur ne se produit (la clé est donc unique) le
code de validation peut être exécuté dans le cas contraire, un message est
affiché et sortie de procédure sans rien faire d'autre.

Private Sub CommandButton1_Click()
Dim Col As New Collection
Dim Plage As Range
Dim Valeur As String
Dim I As Integer

With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[A65536].End(xlUp))
End With

For I = 1 To Plage.Count
Valeur = CStr(Plage(I)) & CStr(Plage(I).Offset(0, 1))
Col.Add Valeur, Valeur
Next I

On Error Resume Next
Valeur = TextBox1.Text & TextBox2.Text
Col.Add Valeur, Valeur
If Err.Number <> 0 Then
MsgBox "La valeur existe déjà !"
Exit Sub
End If

'ici la suite de ton code...

Set Plage = Nothing
Set Col = Nothing
End Sub

Hervé.

"Michel" a écrit dans le message news:

Bonjour
J'ai un userform avec 2 textbox et divers contrôles
dans le 1er textbox je mets l'année en 4 chiffres
dans le 2ème textbox je mets un numéro
ceci afin d'avoir année et numéro de dossier
année en ColA et numéro en ColB
le pb est que un utilisateur peut a saisir lui-même les 2 textbox
Je souhaite avoir un anti-doublon qui fonctionne au moment de la
validation

c'est à dire l'orque j'envoie les données sur la feuille, un test se fasse
et si les valeurs de textbox1 et textbox2 existent déjà, alors msbox "Ces
valeurs existent déjà..."
Merci beaucoup
Michel




Avatar
Michel
Merci beaucoup Hervé
c'est parfait cela fonctionne très bien
Michel

"Hervé" a écrit dans le message de news:

Bonjour Michel,
Teste le code ci-dessous, code associé à un bouton. Les valeurs des deux
colonnes (A et B) sont concaténées (je suppose qu'elles son liée l'une à
l'autre ? exemple, A3 avec B3) et mis dans une collection, ensuite, les
valeurs des textbox sont à leurs tours concaténées et tenté d'être
ajoutées
à la collection, si aucune erreur ne se produit (la clé est donc unique)
le
code de validation peut être exécuté dans le cas contraire, un message est
affiché et sortie de procédure sans rien faire d'autre.

Private Sub CommandButton1_Click()
Dim Col As New Collection
Dim Plage As Range
Dim Valeur As String
Dim I As Integer

With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[A65536].End(xlUp))
End With

For I = 1 To Plage.Count
Valeur = CStr(Plage(I)) & CStr(Plage(I).Offset(0, 1))
Col.Add Valeur, Valeur
Next I

On Error Resume Next
Valeur = TextBox1.Text & TextBox2.Text
Col.Add Valeur, Valeur
If Err.Number <> 0 Then
MsgBox "La valeur existe déjà !"
Exit Sub
End If

'ici la suite de ton code...

Set Plage = Nothing
Set Col = Nothing
End Sub

Hervé.

"Michel" a écrit dans le message news:

Bonjour
J'ai un userform avec 2 textbox et divers contrôles
dans le 1er textbox je mets l'année en 4 chiffres
dans le 2ème textbox je mets un numéro
ceci afin d'avoir année et numéro de dossier
année en ColA et numéro en ColB
le pb est que un utilisateur peut a saisir lui-même les 2 textbox
Je souhaite avoir un anti-doublon qui fonctionne au moment de la
validation

c'est à dire l'orque j'envoie les données sur la feuille, un test se
fasse
et si les valeurs de textbox1 et textbox2 existent déjà, alors msbox "Ces
valeurs existent déjà..."
Merci beaucoup
Michel