Erreur: La méthode '_Default' de l'obget 'Range' a échoué
Résolu
bassmart
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
-
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une code qui fonctionnais très bien, jusqu'au moment que j'ai ajouter des lignes de code pour que les colonnes 3, 4 et 5 soit mis en majuscule.
Quand j'ajoute des valeurs tout est Ok, mais j'ai une erreur dès que je supprime une valeur dans l'une de ces colonnes. [erreur d'exécution '-2147417848(80010108)' La méthode '_Default' de l'obget 'Range' à échoué]. Il me pointe alors la dernière ligne Target = Ucase(Target).
Je ne sais pas comment écrire mon code pour éviter ce problème!
Merci de votre aide!
J'ai une code qui fonctionnais très bien, jusqu'au moment que j'ai ajouter des lignes de code pour que les colonnes 3, 4 et 5 soit mis en majuscule.
Quand j'ajoute des valeurs tout est Ok, mais j'ai une erreur dès que je supprime une valeur dans l'une de ces colonnes. [erreur d'exécution '-2147417848(80010108)' La méthode '_Default' de l'obget 'Range' à échoué]. Il me pointe alors la dernière ligne Target = Ucase(Target).
Je ne sais pas comment écrire mon code pour éviter ce problème!
Private [/contents/446-fichier-sub Sub] Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
If Target.Column = 4 Then
Target = UCase(Target)
End If
If Target.Column = 5 Then
Target = UCase(Target)
End If
If Target.Column = 3 Then
Target = UCase(Target)
End If
If Target.Cells.Count > 1 Then Exit Sub
If Target.Row < 5 Or Target.Column <> 5 Then Exit Sub
If Target.Value = "" Then Cells(Target.Row, 1).ClearContents
If Range("A5") <> "" Then
DLig = Range("E5").End(xlDown).Row
Set PL = Range("A5:A" & DLig)
PL.Value = Range("a5").Value
End If
ActiveSheet.Protect
End Sub
Merci de votre aide!
1 réponse
-
bonjour,
essayez comme ceci:Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect If Target.Column >= 3 And Target.Column <= 5 Then 'desactive les evenements excel: eviter appel recurcif a la suite du passage en majuscule Application.EnableEvents = False Target = UCase(Target) End If 'active les evenements excel Application.EnableEvents = True If Target.Cells.Count > 1 Then Exit Sub If Target.Row < 5 Or Target.Column <> 5 Then Exit Sub If Target.Value = "" Then Cells(Target.Row, 1).ClearContents If Range("A5") <> "" Then DLig = Range("E5").End(xlDown).Row Set PL = Range("A5:A" & DLig) PL.Value = Range("a5").Value End If ActiveSheet.Protect End Sub