OVH Cloud OVH Cloud

2 procedures ans la meme feuilles

5 réponses
Avatar
JEAN
Bonjour,

Peut t'on mettre ces deux procedure dans le module de la feuille.

est ce que ca sera genant pour l'exucution du programme.

c'est à dire:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
.......
end sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
..............

end sub

merci

5 réponses

Avatar
michdenis
Bonjour Jean,

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

La macro que tu as mentionnée est 1 macro événementielle ... c'est à dire qu'elle s'active dès qu'une cellule passe par
le mode édition. IL n'est pas nécessaire que la valeur de la cellule ait été modifiée pour déclencher la macro Si on a
fait un double-clique sur une cellule et que le curseur clignote dans la cellule, à la sortie de la cellule, l'événement
va s'activer même si le contenu de la cellule n'a pas été modifié.

Dans chacun des 2 événements, on peut y mettre tout le code désiré... il s'agit de déterminer une condition particulière
qui permettra à la macro d'exécuter seulement d'exécuter une partie ou la totalité du code, selon que la condition est
remplie ou non.

Un petit exemple simple : Si tu modifies une cellule de la colonne B:B, seulement la partie du code associée à la
colonne No 2 va s'exécuter et c'est la même chose si tu modifies une cellule de la colonne "E:E" ,bien que la macro
s'exécute à chaque fois qu'une cellule soit modifiée peu importe que cette cellule soit dans l'une des colonnes
mentionnées, le code répondant soit à la condition 1 ou à la condition 2 va s'exécuter seulement et seulement si c'est
une cellule de la colonne 2 ou 5.

Essaie là ! Ce principe de base est aussi vrai pour chacune des procédures événementielles. IL s'agit seulement de
déterminer sous qu'elles conditions un bout de code va s'exécuter ou non . Évidemment, les conditions peuvent et sont
généralement un peu plus compliquées .... !

'-------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Condition 1
If Target.Column = 2 Then
MsgBox "Colonne B:B !"

'Condition 2
ElseIf Target.Column = 5 Then
MsgBox "Colonne E:E !"

End If

End Sub
'-------------------------


Salutations!





"JEAN" a écrit dans le message de news:

Bonjour,

Peut t'on mettre ces deux procedure dans le module de la feuille.

est ce que ca sera genant pour l'exucution du programme.

c'est à dire:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
.......
end sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
..............

end sub

merci
Avatar
JEAN
OK
Dans le module de ma feuille je peux avoir ca
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
....... code 1
end sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
.............. code 2

end sub

Mon programme devrait fonctionneR?

merci



Bonjour Jean,

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

La macro que tu as mentionnée est 1 macro événementielle ... c'est à dire qu'elle s'active dès qu'une cellule passe par
le mode édition. IL n'est pas nécessaire que la valeur de la cellule ait été modifiée pour déclencher la macro Si on a
fait un double-clique sur une cellule et que le curseur clignote dans la cellule, à la sortie de la cellule, l'événement
va s'activer même si le contenu de la cellule n'a pas été modifié.

Dans chacun des 2 événements, on peut y mettre tout le code désiré... il s'agit de déterminer une condition particulière
qui permettra à la macro d'exécuter seulement d'exécuter une partie ou la totalité du code, selon que la condition est
remplie ou non.

Un petit exemple simple : Si tu modifies une cellule de la colonne B:B, seulement la partie du code associée à la
colonne No 2 va s'exécuter et c'est la même chose si tu modifies une cellule de la colonne "E:E" ,bien que la macro
s'exécute à chaque fois qu'une cellule soit modifiée peu importe que cette cellule soit dans l'une des colonnes
mentionnées, le code répondant soit à la condition 1 ou à la condition 2 va s'exécuter seulement et seulement si c'est
une cellule de la colonne 2 ou 5.

Essaie là ! Ce principe de base est aussi vrai pour chacune des procédures événementielles. IL s'agit seulement de
déterminer sous qu'elles conditions un bout de code va s'exécuter ou non . Évidemment, les conditions peuvent et sont
généralement un peu plus compliquées .... !

'-------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Condition 1
If Target.Column = 2 Then
MsgBox "Colonne B:B !"

'Condition 2
ElseIf Target.Column = 5 Then
MsgBox "Colonne E:E !"

End If

End Sub
'-------------------------


Salutations!





"JEAN" a écrit dans le message de news:

Bonjour,

Peut t'on mettre ces deux procedure dans le module de la feuille.

est ce que ca sera genant pour l'exucution du programme.

c'est à dire:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
........
end sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
...............

end sub

merci





Avatar
jps
denis, c'est la dernière fois que je te le dis : il faut répondre à la
question et non pas partir dans des tirades aussi cyranesques qu'à côté du
sujet...tu vas finir par lasser ton questionneur....
jps

"JEAN" a écrit dans le message de
news:
OK
Dans le module de ma feuille je peux avoir ca
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
....... code 1
end sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
.............. code 2

end sub

Mon programme devrait fonctionneR?

merci



Bonjour Jean,

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

La macro que tu as mentionnée est 1 macro événementielle ... c'est à
dire qu'elle s'active dès qu'une cellule passe par


le mode édition. IL n'est pas nécessaire que la valeur de la cellule ait
été modifiée pour déclencher la macro Si on a


fait un double-clique sur une cellule et que le curseur clignote dans la
cellule, à la sortie de la cellule, l'événement


va s'activer même si le contenu de la cellule n'a pas été modifié.

Dans chacun des 2 événements, on peut y mettre tout le code désiré... il
s'agit de déterminer une condition particulière


qui permettra à la macro d'exécuter seulement d'exécuter une partie ou
la totalité du code, selon que la condition est


remplie ou non.

Un petit exemple simple : Si tu modifies une cellule de la colonne B:B,
seulement la partie du code associée à la


colonne No 2 va s'exécuter et c'est la même chose si tu modifies une
cellule de la colonne "E:E" ,bien que la macro


s'exécute à chaque fois qu'une cellule soit modifiée peu importe que
cette cellule soit dans l'une des colonnes


mentionnées, le code répondant soit à la condition 1 ou à la condition 2
va s'exécuter seulement et seulement si c'est


une cellule de la colonne 2 ou 5.

Essaie là ! Ce principe de base est aussi vrai pour chacune des
procédures événementielles. IL s'agit seulement de


déterminer sous qu'elles conditions un bout de code va s'exécuter ou non
. Évidemment, les conditions peuvent et sont


généralement un peu plus compliquées .... !

'-------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Condition 1
If Target.Column = 2 Then
MsgBox "Colonne B:B !"

'Condition 2
ElseIf Target.Column = 5 Then
MsgBox "Colonne E:E !"

End If

End Sub
'-------------------------


Salutations!





"JEAN" a écrit dans le message de news:

Bonjour,

Peut t'on mettre ces deux procedure dans le module de la feuille.

est ce que ca sera genant pour l'exucution du programme.

c'est à dire:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
........
end sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
...............

end sub

merci







Avatar
michdenis
Bonjour Jean,

Un module Feuille peut contenir autant de Procédures que tu veux (Si il y a une limite ... je ne la connais pas !) .
Cependant si c'est une procédure événementielle comme celle-ci : "Private Sub Worksheet_Change(ByVal Target As
Excel.Range)", cette dernière procédure est unique, il n'y a qu'une par feuille module mais rien ne t'empêches d'en
ajouter d'autres procédures. Elles ne peuvent avoir le même nom et si ce n'est pas une procédure événementielle, tu
devras l'appeler manuellement soit par un bouton dans la feuille, soit par la fenêtre des macros Alt + F8


Salutations!




"JEAN" a écrit dans le message de news:

OK
Dans le module de ma feuille je peux avoir ca
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
....... code 1
end sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
.............. code 2

end sub

Mon programme devrait fonctionneR?

merci



Bonjour Jean,

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

La macro que tu as mentionnée est 1 macro événementielle ... c'est à dire qu'elle s'active dès qu'une cellule passe
par
le mode édition. IL n'est pas nécessaire que la valeur de la cellule ait été modifiée pour déclencher la macro Si on a
fait un double-clique sur une cellule et que le curseur clignote dans la cellule, à la sortie de la cellule,
l'événement
va s'activer même si le contenu de la cellule n'a pas été modifié.

Dans chacun des 2 événements, on peut y mettre tout le code désiré... il s'agit de déterminer une condition
particulière
qui permettra à la macro d'exécuter seulement d'exécuter une partie ou la totalité du code, selon que la condition est
remplie ou non.

Un petit exemple simple : Si tu modifies une cellule de la colonne B:B, seulement la partie du code associée à la
colonne No 2 va s'exécuter et c'est la même chose si tu modifies une cellule de la colonne "E:E" ,bien que la macro
s'exécute à chaque fois qu'une cellule soit modifiée peu importe que cette cellule soit dans l'une des colonnes
mentionnées, le code répondant soit à la condition 1 ou à la condition 2 va s'exécuter seulement et seulement si c'est
une cellule de la colonne 2 ou 5.

Essaie là ! Ce principe de base est aussi vrai pour chacune des procédures événementielles. IL s'agit seulement de
déterminer sous qu'elles conditions un bout de code va s'exécuter ou non . Évidemment, les conditions peuvent et sont
généralement un peu plus compliquées .... !

'-------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Condition 1
If Target.Column = 2 Then
MsgBox "Colonne B:B !"

'Condition 2
ElseIf Target.Column = 5 Then
MsgBox "Colonne E:E !"

End If

End Sub
'-------------------------


Salutations!





"JEAN" a écrit dans le message de news:

Bonjour,

Peut t'on mettre ces deux procedure dans le module de la feuille.

est ce que ca sera genant pour l'exucution du programme.

c'est à dire:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
........
end sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
...............

end sub

merci





Avatar
JEAN
merci bien


Bonjour Jean,

Un module Feuille peut contenir autant de Procédures que tu veux (Si il y a une limite ... je ne la connais pas !) .
Cependant si c'est une procédure événementielle comme celle-ci : "Private Sub Worksheet_Change(ByVal Target As
Excel.Range)", cette dernière procédure est unique, il n'y a qu'une par feuille module mais rien ne t'empêches d'en
ajouter d'autres procédures. Elles ne peuvent avoir le même nom et si ce n'est pas une procédure événementielle, tu
devras l'appeler manuellement soit par un bouton dans la feuille, soit par la fenêtre des macros Alt + F8


Salutations!




"JEAN" a écrit dans le message de news:

OK
Dans le module de ma feuille je peux avoir ca
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
........ code 1
end sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
............... code 2

end sub

Mon programme devrait fonctionneR?

merci



Bonjour Jean,

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

La macro que tu as mentionnée est 1 macro événementielle ... c'est à dire qu'elle s'active dès qu'une cellule passe
par
le mode édition. IL n'est pas nécessaire que la valeur de la cellule ait été modifiée pour déclencher la macro Si on a
fait un double-clique sur une cellule et que le curseur clignote dans la cellule, à la sortie de la cellule,
l'événement
va s'activer même si le contenu de la cellule n'a pas été modifié.

Dans chacun des 2 événements, on peut y mettre tout le code désiré... il s'agit de déterminer une condition
particulière
qui permettra à la macro d'exécuter seulement d'exécuter une partie ou la totalité du code, selon que la condition est
remplie ou non.

Un petit exemple simple : Si tu modifies une cellule de la colonne B:B, seulement la partie du code associée à la
colonne No 2 va s'exécuter et c'est la même chose si tu modifies une cellule de la colonne "E:E" ,bien que la macro
s'exécute à chaque fois qu'une cellule soit modifiée peu importe que cette cellule soit dans l'une des colonnes
mentionnées, le code répondant soit à la condition 1 ou à la condition 2 va s'exécuter seulement et seulement si c'est
une cellule de la colonne 2 ou 5.

Essaie là ! Ce principe de base est aussi vrai pour chacune des procédures événementielles. IL s'agit seulement de
déterminer sous qu'elles conditions un bout de code va s'exécuter ou non . Évidemment, les conditions peuvent et sont
généralement un peu plus compliquées .... !

'-------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

'Condition 1
If Target.Column = 2 Then
MsgBox "Colonne B:B !"

'Condition 2
ElseIf Target.Column = 5 Then
MsgBox "Colonne E:E !"

End If

End Sub
'-------------------------


Salutations!





"JEAN" a écrit dans le message de news:

Bonjour,

Peut t'on mettre ces deux procedure dans le module de la feuille.

est ce que ca sera genant pour l'exucution du programme.

c'est à dire:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
........
end sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
...............

end sub

merci