Bonjour,
je voudrai savoir s'il est possible de déclencher automatiquement une macro lorsque le contenu d'une cellule est modifiée, sans avoir à cliquer sur un bouton.
merci
Bonjour,
je voudrai savoir s'il est possible de déclencher automatiquement une macro lorsque le contenu d'une cellule est modifiée, sans avoir à cliquer sur un bouton.
merci
Bonjour,
Oui c'est possible par macro événementielle au sein de la feuille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub Worksheet_Change(ByVal Target As Range) End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
ok je vais chercher une doc la dessus pour comprendre
en fait j'aurai un grand nombre de cellule (toute une colonne) sur lesquelles je voudrai déclencher cette macro lorsque la cellule est modifiée, le nombre élevé ne pose pas de pb ?
Voici un exemple pour étudier la question
Exo-C_Evenement.xls
par la même occasion il existe des macros événement sur le classeur
Bonjour le fil, bonjour le forum,
Le problème avec ce genre de macro événementielle, c'est qu'elle se déclenche tout le temps ! Il est donc souvent utile d'en limité l'action à une plage (cellule/1, plage/2, ligne(s)/3, Colonne(s)/4. On utilise pour cela les codes suivant :
1- Action limitée à la cellule A1 :
2- Action limitée à la plage A1: D20 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub 'le reste du code End Sub
3- Action limitée aux lignes après la ligne 5 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Worksheet_Change(ByVal Target As Range) If Application.Intersect(Target, Range("A1:D20")) Is Nothing Then Exit Sub 'le reste du code End Sub
4- Action limitée à la colonne A :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row < 6 Then Exit Sub 'le reste du code End Sub
[Édition]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column > 1 Then Exit Sub 'le reste du code End Sub
Salut, Igloobel, nos post se sont croisés...
merci, je vais étudier tout ça, je veux affecter à la colonne F mais à partir de la ligne 6, je suppose donc qq chose comme cela :
je mets cette macro où? dans un module? en la créant par la fonction "développeur" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column < 5 And _ Target.Column > 7 And _ Target.Row < 5 Then Exit Sub mon code correspondant à l'action voulu End Sub
Re,
J'aurais plutôt écrit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 6 Or Target.Row < 5 Then Exit Sub 'mon code correspondant à l'action voulu End Sub
Salut Thautheme,
Effectivement mon exemple poster parle de la même chose en espérant que cela sied à notre ami retraite83
Partager