débogue l’erreur d’exécution ‘1004’ avec la textbox
1 réponse
frasax
Bonjour à tous,
J’ai une macro pour empêcher la saisie d’une valeur dans une cellule si
cette même valeur existe déjà dans une colonne.
J’aimerais lors d’une saisie déjà existante, que la textbox « saisissez un
autre numéro, celui-ci existe déjà », débogue ou mette fin à l’erreur
d’exécution ‘1004’, la méthode Select de la classe Range a échoué.
L’erreur est mise en couleur à Target.Select
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 5 Then
If Application.WorksheetFunction. _
CountIf(Range("E:E"), Target.Value) > 1 Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
End If
End If
End Sub
Je suis sous Office 2003
Merci à vous si vous avez une solution ou me dire si la macro doit-être
modifiée.
A +
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
francois.forcet
Salut à toi
Je ne sais pas si j'ai bien compris ta problématique mais je te propose ton code modifié ainsi :
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Column = 5 And Target.Value <> "" Then If Application.WorksheetFunction. _ CountIf(Range("E:E"), Target.Value) > 1 Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà" Target.Value = "" Target.Select End If End If End Sub
Pour moi celà devrait mieux fonctionner
Dis moi !!!!
Salut à toi
Je ne sais pas si j'ai bien compris ta problématique mais je te
propose ton code modifié ainsi :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 5 And Target.Value <> "" Then
If Application.WorksheetFunction. _
CountIf(Range("E:E"), Target.Value) > 1 Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà"
Target.Value = ""
Target.Select
End If
End If
End Sub
Je ne sais pas si j'ai bien compris ta problématique mais je te propose ton code modifié ainsi :
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Column = 5 And Target.Value <> "" Then If Application.WorksheetFunction. _ CountIf(Range("E:E"), Target.Value) > 1 Then
MsgBox "saisissez un autre numéro, celui-ci existe déjà" Target.Value = "" Target.Select End If End If End Sub