Suppression cellule en fonction d'une autre avec macro
GoodPerson
-
GoodPerson -
GoodPerson -
Bonjour,
Mon problème peut être simple à résoudre mais je n'arrive pas.
Je souhaite en effet faire ceci (avec Macro/VBA je pense):
- si je modifie ou supprime la valeur d'une cellule (E2 par exemple), le contenu de "F2" uniquement soit supprimé;
- si je modifie ou supprime la valeur d'une cellule (E3 par exemple), le contenu de "F3" uniquement soit supprimé;
- et ainsi de suite;
En gros, je souhaite que chaque cellule soit supprimé uniquement en fonction d'une autre autre.
J'utilise ceci pour le premier exemple, mais je n'arrive pas à combiner les autres qu'ils soient indépendante de la première condition et ainsi de suite :
"Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E2")) Is Nothing Then
Range("F2").ClearContents
End If
End Sub"
Merci pour votre aide
Mon problème peut être simple à résoudre mais je n'arrive pas.
Je souhaite en effet faire ceci (avec Macro/VBA je pense):
- si je modifie ou supprime la valeur d'une cellule (E2 par exemple), le contenu de "F2" uniquement soit supprimé;
- si je modifie ou supprime la valeur d'une cellule (E3 par exemple), le contenu de "F3" uniquement soit supprimé;
- et ainsi de suite;
En gros, je souhaite que chaque cellule soit supprimé uniquement en fonction d'une autre autre.
J'utilise ceci pour le premier exemple, mais je n'arrive pas à combiner les autres qu'ils soient indépendante de la première condition et ainsi de suite :
"Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E2")) Is Nothing Then
Range("F2").ClearContents
End If
End Sub"
Merci pour votre aide
2 réponses
-
Bonjour,
Essaies :Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Columns("E")) Is Nothing Then Target.Offset(0, 1).ClearContents End If End Sub
-
Haha, je suis encore bloqué !
Je souhaite faire la même chose (et ce dans la même macro) avec les cellules /colonnes "C" et "E"; c'est à dire quand on modifie C, E est supprimé automatiquement.
Que devient ce code?
Je crois que les références pour C et E doivent être :
Columns("C") et Target.Offset(0, 2)
Mais je n'arrive pas à les combiner avec le code précédent.
Merci ! -
Bonjour,
Finalement, ça montre que le code que je t'avais donné n'était pas au top : il génère l'évènement Change ce qui pourrait poser des problèmes !
Dans une procédure évènementielle, il faut systématiquement penser aux conséquences des évènements provoqués par cette dernière.
Le plus sûr est de désactiver les évènements avant l'instruction qui le provoque (dans ce cas ClearContents) et de les rétablir aussitôt après.
Essaies :
- Si quand tu modifie C ça ne doit effacer que EPrivate Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Columns("C")) Is Nothing Then Application.EnableEvents = False Target.Offset(0, 2).ClearContents Application.EnableEvents = True End If If Not Intersect(Target, Columns("E")) Is Nothing Then Application.EnableEvents = False Target.Offset(0, 1).ClearContents Application.EnableEvents = True End If End Sub
- Ou si que tu modifie C ça doit effacer E et F :Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Columns("C")) Is Nothing Then Application.EnableEvents = False Target.Offset(0, 2).ClearContents Target.Offset(0, 3).ClearContents Application.EnableEvents = True End If If Not Intersect(Target, Columns("E")) Is Nothing Then Application.EnableEvents = False Target.Offset(0, 1).ClearContents Application.EnableEvents = True End If End Sub -
-
-
-
Merci infiniment Patrice33740 ; ça marche à merveille ????????
Je viens de m'en rendre compte que je suis nul part dans la logique de programmation en Excel ????????.
Cordialement,