XL 2010 VBA: Saisie de données qui existe déjà

TheProdigy

XLDnaute Impliqué
Bonjour tout le monde,

Je sais que c'est une question classique mais je coince. Quand une donnée existe lors d'une saisie, mon Userfom disparaît complètement, alors qu'il devrait être visible jusqu'à une nouvelle valeur
Autrement dit réessayer jusqu'à une nouvelle valeur.
Code:
Private Sub CommandButton5_Click()

    If Me.TextBox1.Value = "" Then
        MsgBox "Merci d'inscrire une valeur"
        Exit Sub
    ElseIf Application.CountIf([AC:AC], Me.TextBox1.Value) > 0 Then
        MsgBox "Existe déjà. Réessayez!", vbCritical
    Else
        Sheets("Items").Cells(LL, 29).Value = Me.TextBox1
        Sheets("Items").Range("AC2:AC" & Sheets("Items").Range("AC" & Rows.Count).End(xlUp).Row).Sort Sheets("Items").Range("AC2"), xlAscending
    End If
    Sheets("Items").Protect
    Unload Me 'vide et ferme l'UserForm1
End Sub

Merci
 

Jacky67

XLDnaute Barbatruc
Bonjour tout le monde,

Je sais que c'est une question classique mais je coince. Quand une donnée existe lors d'une saisie, mon Userfom disparaît complètement, alors qu'il devrait être visible jusqu'à une nouvelle valeur
Autrement dit réessayer jusqu'à une nouvelle valeur.
Code:
Private Sub CommandButton5_Click()

    If Me.TextBox1.Value = "" Then
        MsgBox "Merci d'inscrire une valeur"
        Exit Sub
    ElseIf Application.CountIf([AC:AC], Me.TextBox1.Value) > 0 Then
        MsgBox "Existe déjà. Réessayez!", vbCritical
    Else
        Sheets("Items").Cells(LL, 29).Value = Me.TextBox1
        Sheets("Items").Range("AC2:AC" & Sheets("Items").Range("AC" & Rows.Count).End(xlUp).Row).Sort Sheets("Items").Range("AC2"), xlAscending
    End If
    Sheets("Items").Protect
    Unload Me 'vide et ferme l'UserForm1
End Sub

Merci
Bonjour,
Essaye comme ceci..
Non testé faute de classeur en PJ

VB:
Private Sub CommandButton5_Click()
    If Me.TextBox1.Value = "" Then
        MsgBox "Merci d'inscrire une valeur"
        Exit Sub
    ElseIf Application.CountIf([AC:AC], Me.TextBox1.Value) > 0 Then
        MsgBox "Existe déjà. Réessayez!", vbCritical
        Me.TextBox1 = "": Me.TextBox1.SetFocus: Exit Sub
    Else
        Sheets("Items").Cells(LL, 29).Value = Me.TextBox1
        Sheets("Items").Range("AC2:AC" & Sheets("Items").Range("AC" & Rows.Count).End(xlUp).Row).Sort Sheets("Items").Range("AC2"), xlAscending
    End If
    Sheets("Items").Protect
    Unload Me 'vide et ferme l'UserForm1
End Sub
 

TheProdigy

XLDnaute Impliqué
Bonjour,
Essaye comme ceci..
Non testé faute de classeur en PJ

VB:
Private Sub CommandButton5_Click()
    If Me.TextBox1.Value = "" Then
        MsgBox "Merci d'inscrire une valeur"
        Exit Sub
    ElseIf Application.CountIf([AC:AC], Me.TextBox1.Value) > 0 Then
        MsgBox "Existe déjà. Réessayez!", vbCritical
        Me.TextBox1 = "": Me.TextBox1.SetFocus: Exit Sub
    Else
        Sheets("Items").Cells(LL, 29).Value = Me.TextBox1
        Sheets("Items").Range("AC2:AC" & Sheets("Items").Range("AC" & Rows.Count).End(xlUp).Row).Sort Sheets("Items").Range("AC2"), xlAscending
    End If
    Sheets("Items").Protect
    Unload Me 'vide et ferme l'UserForm1
End Sub
Bonjour @Jacky67 ton code fonctionne à merveille merci.

Merci le forum
 

Statistiques des forums

Discussions
312 677
Messages
2 090 815
Membres
104 673
dernier inscrit
lautard