XL 2016 Vérifier si code déjà enregistré ce mois

KTM

XLDnaute Impliqué
Bonsoir chers tous
Je voudrais vérifier si mon code est déjà enregistrer le mois indiqué
J'ai essayé le code suivant mais cela ne marche pas avec tous les codes
Veuillez me guider . Merci

VB:
Private Sub CommandButton1_Click()
    Dim plage, c As Range
    Set plage = Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row)
    For Each c In plage
        If c = UCase(Me.TextBox2.Text) And c.Offset(, 1) = CDate(TextBox1) Then
           MsgBox "Le Patient   " & c & "   Est deja Enregistré pour ce mois  ", 64: TextBox2 = "":  Set plage = Nothing: Exit Sub
        End If
    Next
End Sub
 

KTM

XLDnaute Impliqué
Bonsoir chers tous
Je voudrais vérifier si mon code est déjà enregistrer le mois indiqué
J'ai essayé le code suivant mais cela ne marche pas avec tous les codes
Veuillez me guider . Merci

VB:
Private Sub CommandButton1_Click()
    Dim plage, c As Range
    Set plage = Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row)
    For Each c In plage
        If c = UCase(Me.TextBox2.Text) And c.Offset(, 1) = CDate(TextBox1) Then
           MsgBox "Le Patient   " & c & "   Est deja Enregistré pour ce mois  ", 64: TextBox2 = "":  Set plage = Nothing: Exit Sub
        End If
    Next
End Sub
voici mon fichier test
 

Pièces jointes

  • Classeur1.xlsm
    52 KB · Affichages: 11

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @KTM , le Forum

Une autre approche, car je déteste taper dans un UserForm !!! ;)
Du coup tes TextBoxes ne servent plus à grand chose, mais bon....

Si Patrick passe par là, j'ai essayé "removeduplicateX", c'est super, par contre "SortOrder" prend des plombes sur ce fichier...

Bien à toi, à vous
@+Thierry
 

Pièces jointes

  • XLD_KTM_Mini_Search_Engine_USF_v00.xlsm
    59.5 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour KTM, Thierry,
Vous pourriez préciser avec quels codes cela ne marche pas ?
J'en ai trouvé un, "1111" qui n'est pas considéré comme une chaîne mais comme un nombre.
alors j'ai triché pour résoudre le problème :
VB:
If c & "/" = UCase(Me.TextBox2.Text) & "/" And c.Offset(, 1) = CDate(TextBox1) Then
Mais y en a t-il d'autres ?
 

KTM

XLDnaute Impliqué
Bonjour KTM, Thierry,
Vous pourriez préciser avec quels codes cela ne marche pas ?
J'en ai trouvé un, "1111" qui n'est pas considéré comme une chaîne mais comme un nombre.
alors j'ai triché pour résoudre le problème :
VB:
If c & "/" = UCase(Me.TextBox2.Text) & "/" And c.Offset(, 1) = CDate(TextBox1) Then
Mais y en a t-il d'autres ?
Merci beaucoup
C'est très astucieux et c'est exactement ce que je voulais.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re

la solution proposée ne semble pas être affectée par ce "1111" :
KTM.gif


Bonne soirée
@+Thierry
 

job75

XLDnaute Barbatruc
Bonjour KTM, _Thierry, sylvanu,
VB:
Private Sub CommandButton1_Click()
    Dim r As Range
    Set r = Range("A2", Cells(Rows.Count, "A").End(xlUp))
    If r.Row < 2 Then Exit Sub
    For Each r In r
        If UCase(TextBox2) = CStr(r) And LCase(TextBox1) = r(1, 2).Text Then _
            MsgBox "Le Patient " & r & " est dejà enregistré pour ce mois", 64: TextBox2 = "": Exit Sub
    Next
End Sub
Dans TextBox1 le mois doit être entré avec le même format que sur la feuille donc mmm-aa

A+
 

KTM

XLDnaute Impliqué
Bonjour KTM, _Thierry, sylvanu,
VB:
Private Sub CommandButton1_Click()
    Dim r As Range
    Set r = Range("A2", Cells(Rows.Count, "A").End(xlUp))
    If r.Row < 2 Then Exit Sub
    For Each r In r
        If UCase(TextBox2) = CStr(r) And LCase(TextBox1) = r(1, 2).Text Then _
            MsgBox "Le Patient " & r & " est dejà enregistré pour ce mois", 64: TextBox2 = "": Exit Sub
    Next
End Sub
Dans TextBox1 le mois doit être entré avec le même format que sur la feuille donc mmm-aa

A+
Merci job75
Votre solution marche aussi!!
 

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel