Exécuter un événement via une macro
Bonjour à tous,
J'espère que vous avez passé un bon week-end et que vous êtes en plein forme, car j'ai encore besoin de vous... :oops:
Je suis toujours occupé dans cette application de planning pour laquelle j'ai déjà demandé de l'aide plusieurs fois... Avec success, bien sûr... :D
Dans cette application (càd fichier Excel avec moultes macros, formules, liens entre différentes feuilles, etc...), il y a une macro qui s'exécute "automatiquement" chaque fois qu'on veut effacer une ligne (ou plusieurs lignes adjacentes). Cette macro s'exécute grâce à l'événement "Worksheet_Change(ByVal Target As Range)
Je voudrais que cette macro s'exécute sur des lignes en function d'un critère (par exemple, si la cellule en 6ème colonne de la dite ligne contient "A archiver"
J'ai essayé en faisant un petit test, mais ça ne fonctionne pas, càd que la macro ci-dessus ne s'exécute pas (alors que l'événement se produit bien)
J'ai essayé aussi en recopiant toutes les instructions de la macro déclenchée par l'événement dans une autre macro, mais ça ne fonctionne pas non plus en mode normal....
Mais en mode debug, ça fonctionne... quand le VBA arrive à la ligne d'instruction "rows(I).delete", la macro ci-dessus s'exécute...
C'est pour devenir fou....
Je sais que mes explications ne sont sans doute pas très claires, alors n'hésitez pas à me poser des questions...
Merci d'avance
Exécuter un événement via une macro
sauf erreur de ma part
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
s’exécute a chaque changement de sélection
il est donc normal qu'elle s'exécute quand
pour éviter que le code s'exécute quand tu ne le souhaite pas tu peux ajouter :
Code:
Application.EnableEvents = False
ce qui empêche le déclenchement des macro événementielle
ne pas oublier de remettre à true avant de sortir.
ps : je te confirme que les explications ne sont pas trés claires.
bonne journée.
Exécuter un événement via une macro
proposition
en mettant ce code sur un classeur vide
tu pourra voir dans quel cas la macro événementielle s'exécute.
Code:
1 2 3
| Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "coucou"
End Sub |
en autre quand on supprime une ligne
bonne journée.