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

Empècher les doublons

3 réponses
Avatar
Michel
Bonjour,
Je cherche à limiter la saisie de données par le biais de mon user,
j'explique
En a:a j'ai une série de dates saisies via le textbox1 de mon userform
Je voudrais que lorsque une date existe déja un msgbox apparaisse "Date déja
présente"
ce qui m'éviterais de rechercher les doublons et de supprimer la ou les
mauvaises lignes.
J'ai essayé mais sans succès
=RECHERCHEV($a:$a;textbox1;1,0)
Il faudrait aussi que je limite la recherche à 'aujourd'hui' donc toutes les
dates inférieures ou égales
à now.
Si qq à une solution
Merci

3 réponses

Avatar
JB
Bonjour,

Set result = Range("A9:A10000").Find(What:Íate(Me.maDate),
LookIn:=xlValues, lookat:=xlWhole)
If Not result Is Nothing Then
MsgBox "Existe déjà"
Exit Sub
End If


http://boisgontierjacques.free.fr/pages_site/formulairebases.htm#VerifDoubl ons
http://boisgontierjacques.free.fr/pages_site/cellules.htm#RechercheDate


JB
http://boisgontierjacques.free.fr/

On 29 août, 08:30, "Michel" wrote:
Bonjour,
Je cherche à limiter la saisie de données par le biais de mon user,
j'explique
En a:a j'ai une série de dates saisies via le textbox1 de mon userform
Je voudrais que lorsque une date existe déja un msgbox apparaisse "Date déja
présente"
ce qui m'éviterais de rechercher les doublons et de supprimer la ou les
mauvaises lignes.
J'ai essayé mais sans succès
=RECHERCHEV($a:$a;textbox1;1,0)
Il faudrait aussi que je limite la recherche à 'aujourd'hui' donc toute s les
dates inférieures ou égales
à now.
Si qq à une solution
Merci


Avatar
lSteph
Bonjour,

Private Sub TextBox1_beforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
Dim tstb1
On Error Resume Next
tstb1 = CDate(TextBox1)
On Error GoTo 0
If IsEmpty(tstb1) Then MsgBox "date invalide": Cancel = True: Exit Sub

With [a1:a10]
If Not .Find(CDate(TextBox1), LookIn:=xlValues) Is Nothing Then
MsgBox "existe déjà"
Cancel = True
End If
End With
End Sub

'LSteph

On 29 août, 08:30, "Michel" wrote:
Bonjour,
Je cherche à limiter la saisie de données par le biais de mon user,
j'explique
En a:a j'ai une série de dates saisies via le textbox1 de mon userform
Je voudrais que lorsque une date existe déja un msgbox apparaisse "Date déja
présente"
ce qui m'éviterais de rechercher les doublons et de supprimer la ou les
mauvaises lignes.
J'ai essayé mais sans succès
=RECHERCHEV($a:$a;textbox1;1,0)
Il faudrait aussi que je limite la recherche à 'aujourd'hui' donc toute s les
dates inférieures ou égales
à now.
Si qq à une solution
Merci


Avatar
lSteph
...préférable que je l'écrive ainsi:

Private Sub TextBox1_beforeUpdate(ByVal _
Cancel As MSForms.ReturnBoolean)
Dim tstb1
On Error Resume Next
tstb1 = CDate(TextBox1)
On Error GoTo 0
If IsEmpty(tstb1) Then MsgBox "date invalide": Cancel = True: Exit Sub

With [a1:a10]
If Not .Find(tstb1, LookIn:=xlValues) Is Nothing Then
MsgBox "existe déjà"
Cancel = True
End If
End With
End Sub

On 29 août, 08:30, "Michel" wrote:
Bonjour,
Je cherche à limiter la saisie de données par le biais de mon user,
j'explique
En a:a j'ai une série de dates saisies via le textbox1 de mon userform
Je voudrais que lorsque une date existe déja un msgbox apparaisse "Date déja
présente"
ce qui m'éviterais de rechercher les doublons et de supprimer la ou les
mauvaises lignes.
J'ai essayé mais sans succès
=RECHERCHEV($a:$a;textbox1;1,0)
Il faudrait aussi que je limite la recherche à 'aujourd'hui' donc toute s les
dates inférieures ou égales
à now.
Si qq à une solution
Merci