Execution +ieurs macros à chaque changement de valeur d'1 cellul e

Le
Cyril DUPONT
Bonjour,

J'ai plusieurs petites macros qui cachent des lignes suivant une valeur
inscrite dans la cellule CF9. Mais pour cela il faut que je les actives une
par une

Voici un exemple des macros :

Sub Empreintes8()
If [CF9] = 8 Then
Range("13:15,49:137,181:300").Select
Selection.EntireRow.Hidden = True
End If
End Sub

Sub Empreintes4()
If [CF9] = 4 Then
Range("12:12,14:14,15:15,19:48,79:138,141:180,221:300").Select
Selection.EntireRow.Hidden = True
End If
End Sub

Etc

Comment faire pour que celles ci s'exécutent à chaque fois que la valeur
dans la cellule CF9 change ?

Cyril.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4811201
Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$9" Then
Empreintes8
Empreintes4
...
End If
End Sub

JB

On 6 août, 18:46, Cyril DUPONT wrote:
Bonjour,

J'ai plusieurs petites macros qui cachent des lignes suivant une valeur
inscrite dans la cellule CF9. Mais pour cela il faut que je les actives u ne
par une...

Voici un exemple des macros :

Sub Empreintes8()
If [CF9] = 8 Then
Range("13:15,49:137,181:300").Select
Selection.EntireRow.Hidden = True
End If
End Sub

Sub Empreintes4()
If [CF9] = 4 Then
Range("12:12,14:14,15:15,19:48,79:138,141:180,221:300").Select
Selection.EntireRow.Hidden = True
End If
End Sub

Etc...

Comment faire pour que celles ci s'exécutent à chaque fois que la val eur
dans la cellule CF9 change ?

Cyril.


cousinhub
Le #4811161
bonsoir Cyril, Bonsoir le forum

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = True
If Target.Address = "$CF$9" And Target.Count = 1 Then
Cells.EntireRow.Hidden = False
Select Case Target.Value
Case Is = 8
Range("13:15,49:137,181:300").EntireRow.Hidden = True
Case Is = 4
Range("12:12,14:14,15:15,19:48,79:138,141:180,221:300").EntireRow.Hidden
= True ' sur une seule ligne
End Select
End If
End Sub

Bon courage
Bonjour,

J'ai plusieurs petites macros qui cachent des lignes suivant une valeur
inscrite dans la cellule CF9. Mais pour cela il faut que je les actives une
par une...

Voici un exemple des macros :

Sub Empreintes8()
If [CF9] = 8 Then
Range("13:15,49:137,181:300").Select
Selection.EntireRow.Hidden = True
End If
End Sub

Sub Empreintes4()
If [CF9] = 4 Then
Range("12:12,14:14,15:15,19:48,79:138,141:180,221:300").Select
Selection.EntireRow.Hidden = True
End If
End Sub

Etc...

Comment faire pour que celles ci s'exécutent à chaque fois que la valeur
dans la cellule CF9 change ?

Cyril.


Cyril DUPONT
Le #4811121
Merci tout d'abord JB de m'avoir répondu aussi vite !

Malheureusement ça ne fonctionne pas correctement, je reçoit ce message
d'erreur :
"Compile error
Sub or Fonction not defined"

Et pour corser la chose ce n'est pas cette cellule qui change, ma cellule
CF9 de cette feuille est un renvoi d'une autre cellule d'une autre feuille
mais dans le même classeur (CF9þuille1!L13) et donc à ce moment là la macro
ne détecte plus de changement de valeur de cellule.

Cyril.



Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$9" Then
Empreintes8
Empreintes4
...
End If
End Sub

JB

On 6 août, 18:46, Cyril DUPONT wrote:
Bonjour,

J'ai plusieurs petites macros qui cachent des lignes suivant une valeur
inscrite dans la cellule CF9. Mais pour cela il faut que je les actives une
par une...

Voici un exemple des macros :

Sub Empreintes8()
If [CF9] = 8 Then
Range("13:15,49:137,181:300").Select
Selection.EntireRow.Hidden = True
End If
End Sub

Sub Empreintes4()
If [CF9] = 4 Then
Range("12:12,14:14,15:15,19:48,79:138,141:180,221:300").Select
Selection.EntireRow.Hidden = True
End If
End Sub

Etc...

Comment faire pour que celles ci s'exécutent à chaque fois que la valeur
dans la cellule CF9 change ?

Cyril.







Cyril DUPONT
Le #4811091
Bonsoir cousinhub,

Ca fonctionne nickel cette macro en plus elle raccourci le code plutôt que
de le rallonger !
Enfin presque... ça fonctionne pour ce que j'avais demandé ^^
En fait la cellule de référence ne change pas directement, c'est un renvoi
d'une cellule d'une autre feuille mais du même classeur... comment faire pour
que la macro détecte un changement soit de la cellule de la feuille où est
écrite la macro, soit de la cellule d'origine sur la feuille1 ?

Cyril.



bonsoir Cyril, Bonsoir le forum

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = True
If Target.Address = "$CF$9" And Target.Count = 1 Then
Cells.EntireRow.Hidden = False
Select Case Target.Value
Case Is = 8
Range("13:15,49:137,181:300").EntireRow.Hidden = True
Case Is = 4
Range("12:12,14:14,15:15,19:48,79:138,141:180,221:300").EntireRow.Hidden
= True ' sur une seule ligne
End Select
End If
End Sub


cousinhub
Le #4811081
Re-,
en supposant que ta cellule source ne fait pas non plus référence à une
autre cellule quelconque, mais que tu entres à la main cette valeur, tu
peux alors rentrer ce code dans le code de la feuille, mais dès
l'activation.
Private Sub Worksheet_Activate()
Cells.EntireRow.Hidden = False
Select Case [A1].Value
Case Is = 8
Range("13:15,49:137,181:300").EntireRow.Hidden = True
Case Is = 4
Range("12:12,14:14,15:15,19:48,79:138,141:180,221:300").EntireRow.Hidden
= True
End Select
End Sub

Peut-être
Bonsoir cousinhub,

Ca fonctionne nickel cette macro en plus elle raccourci le code plutôt que
de le rallonger !
Enfin presque... ça fonctionne pour ce que j'avais demandé ^^
En fait la cellule de référence ne change pas directement, c'est un renvoi
d'une cellule d'une autre feuille mais du même classeur... comment faire pour
que la macro détecte un changement soit de la cellule de la feuille où est
écrite la macro, soit de la cellule d'origine sur la feuille1 ?

Cyril.



bonsoir Cyril, Bonsoir le forum

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = True
If Target.Address = "$CF$9" And Target.Count = 1 Then
Cells.EntireRow.Hidden = False
Select Case Target.Value
Case Is = 8
Range("13:15,49:137,181:300").EntireRow.Hidden = True
Case Is = 4
Range("12:12,14:14,15:15,19:48,79:138,141:180,221:300").EntireRow.Hidden
= True ' sur une seule ligne
End Select
End If
End Sub




Cyril DUPONT
Le #4811051
Merci ça fonctionne comme je le souhaitais maintenant !!!

Je te remercie beaucoup !

Cyril.



Re-,
en supposant que ta cellule source ne fait pas non plus référence à une
autre cellule quelconque, mais que tu entres à la main cette valeur, tu
peux alors rentrer ce code dans le code de la feuille, mais dès
l'activation.
Private Sub Worksheet_Activate()
Cells.EntireRow.Hidden = False
Select Case [A1].Value
Case Is = 8
Range("13:15,49:137,181:300").EntireRow.Hidden = True
Case Is = 4
Range("12:12,14:14,15:15,19:48,79:138,141:180,221:300").EntireRow.Hidden
= True
End Select
End Sub

Peut-être
Bonsoir cousinhub,

Ca fonctionne nickel cette macro en plus elle raccourci le code plutôt que
de le rallonger !
Enfin presque... ça fonctionne pour ce que j'avais demandé ^^
En fait la cellule de référence ne change pas directement, c'est un renvoi
d'une cellule d'une autre feuille mais du même classeur... comment faire pour
que la macro détecte un changement soit de la cellule de la feuille où est
écrite la macro, soit de la cellule d'origine sur la feuille1 ?

Cyril.



bonsoir Cyril, Bonsoir le forum

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = True
If Target.Address = "$CF$9" And Target.Count = 1 Then
Cells.EntireRow.Hidden = False
Select Case Target.Value
Case Is = 8
Range("13:15,49:137,181:300").EntireRow.Hidden = True
Case Is = 4
Range("12:12,14:14,15:15,19:48,79:138,141:180,221:300").EntireRow.Hidden
= True ' sur une seule ligne
End Select
End If
End Sub







Publicité
Poster une réponse
Anonyme