OVH Cloud OVH Cloud

Pb macro évènementielles svp !!!

17 réponses
Avatar
claire_db
Bonjour,
J'ai créé une macro sous Excel afin de masquer des colonnes dans des
tableaux, la macro s'appelle "mask_col". La macro marche nikel mais je dois
maintenant créer une macro évènementielle pour que quand je marque dans la
feuille appellée "page_de_garde" dans la cellule L19 "oui" la macro ne se
déclenche pas mais qu'elle se déclenche quand je mets "non". comment faire
svp ???

7 réponses

1 2
Avatar
claire_db
Comment ça utilser des conditions ?!

"MichDenis" a écrit dans le message de news:
eZlYe$
| en effet cette procédure 3 fois dans mon module feuille mais pour
| déclencher des macros différentes !

Tu dois alors intégrer tes 3 macros dans la même procédure événementielle
en utilisant de conditions pour chaque section de la macro puissent
s'exécuter.


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

J'ai en effet cette procédure 3 fois dans mon module feuille mais pour
déclencher des macros différentes !
"MichDenis" a écrit dans le message de news:

Tu es certaine de ne pas avoir 2 fois cette procédure
événementielle dans ton module feuille ?

Private Sub Worksheet_Change(ByVal Target As Range)



"claire_db" a écrit dans le message de news:
%
Non, pas de macros avec le même nom !

"MichDenis" a écrit dans le message de news:
%
Dans ton module feuille ou standard, tu ne peux pas
avoir 2 macros qui portent le même nom.
Vérifie que ce n'est pas le cas.


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

La macro que m'a donné ne marche pas ! qd je mets "non" ca me met : Nom
ambigue détécté : workssheet_change, pourkoi a ton avis ?
"FFO" a écrit dans le message de news:

Salut claire
Tu mets dans le VBA de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("Macro")
End If
End Sub

Celà devrait faire
Dis moi !!!


Bonjour,
J'ai créé une macro sous Excel afin de masquer des colonnes dans des
tableaux, la macro s'appelle "mask_col". La macro marche nikel mais je
dois
maintenant créer une macro évènementielle pour que quand je marque
dans
la
feuille appellée "page_de_garde" dans la cellule L19 "oui" la macro ne
se
déclenche pas mais qu'elle se déclenche quand je mets "non". comment
faire
svp ???






















Avatar
MichDenis
Un petit exemple simple :

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

'Une action lorsqu'une cellule de la colonne A:A est saisie
If Not Intersect(Target, Columns(1)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(1)).Address

'Une action lorsqu'une cellule de la colonne E:E est saisie
ElseIf Not Intersect(Target, Columns(5)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(5)).Address

End If

'et tu peux continuer d'ajouter des conditions
End Sub
'-------------------------------



"claire_db" a écrit dans le message de news:
%
Comment ça utilser des conditions ?!

"MichDenis" a écrit dans le message de news:
eZlYe$
| en effet cette procédure 3 fois dans mon module feuille mais pour
| déclencher des macros différentes !

Tu dois alors intégrer tes 3 macros dans la même procédure événementielle
en utilisant de conditions pour chaque section de la macro puissent
s'exécuter.


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

J'ai en effet cette procédure 3 fois dans mon module feuille mais pour
déclencher des macros différentes !
"MichDenis" a écrit dans le message de news:

Tu es certaine de ne pas avoir 2 fois cette procédure
événementielle dans ton module feuille ?

Private Sub Worksheet_Change(ByVal Target As Range)



"claire_db" a écrit dans le message de news:
%
Non, pas de macros avec le même nom !

"MichDenis" a écrit dans le message de news:
%
Dans ton module feuille ou standard, tu ne peux pas
avoir 2 macros qui portent le même nom.
Vérifie que ce n'est pas le cas.


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

La macro que m'a donné ne marche pas ! qd je mets "non" ca me met : Nom
ambigue détécté : workssheet_change, pourkoi a ton avis ?
"FFO" a écrit dans le message de news:

Salut claire
Tu mets dans le VBA de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("Macro")
End If
End Sub

Celà devrait faire
Dis moi !!!


Bonjour,
J'ai créé une macro sous Excel afin de masquer des colonnes dans des
tableaux, la macro s'appelle "mask_col". La macro marche nikel mais je
dois
maintenant créer une macro évènementielle pour que quand je marque
dans
la
feuille appellée "page_de_garde" dans la cellule L19 "oui" la macro ne
se
déclenche pas mais qu'elle se déclenche quand je mets "non". comment
faire
svp ???






















Avatar
claire_db
C'es gentil de vouloir m'aider ms je ne comprends rien !
Pour moi, c'est du chinois !
Voila mes trois procédures, je ne vois pas comment n'en faire qu'une seule !

Private Sub Worksheet_Change(ByVal Target As Range)

'le code ci dessous permet de ne déclencher ajoutpages que si une des
cellules de la plage $G$24:$G$35 est modifiée

If Not Intersect(Target, Range("$G$24:$G$35")) Is Nothing Then
AjoutPages
End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("mask_col_quanti")
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L20:L20]) Is Nothing Then
Cancel = True
End If
If Range("L20") = "non" Then
Run ("mask_col_quali")
End If
End Sub

"MichDenis" a écrit dans le message de news:
%
Un petit exemple simple :

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

'Une action lorsqu'une cellule de la colonne A:A est saisie
If Not Intersect(Target, Columns(1)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(1)).Address

'Une action lorsqu'une cellule de la colonne E:E est saisie
ElseIf Not Intersect(Target, Columns(5)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(5)).Address

End If

'et tu peux continuer d'ajouter des conditions
End Sub
'-------------------------------



"claire_db" a écrit dans le message de news:
%
Comment ça utilser des conditions ?!

"MichDenis" a écrit dans le message de news:
eZlYe$
| en effet cette procédure 3 fois dans mon module feuille mais pour
| déclencher des macros différentes !

Tu dois alors intégrer tes 3 macros dans la même procédure événementielle
en utilisant de conditions pour chaque section de la macro puissent
s'exécuter.


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

J'ai en effet cette procédure 3 fois dans mon module feuille mais pour
déclencher des macros différentes !
"MichDenis" a écrit dans le message de news:

Tu es certaine de ne pas avoir 2 fois cette procédure
événementielle dans ton module feuille ?

Private Sub Worksheet_Change(ByVal Target As Range)



"claire_db" a écrit dans le message de news:
%
Non, pas de macros avec le même nom !

"MichDenis" a écrit dans le message de news:
%
Dans ton module feuille ou standard, tu ne peux pas
avoir 2 macros qui portent le même nom.
Vérifie que ce n'est pas le cas.


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

La macro que m'a donné ne marche pas ! qd je mets "non" ca me met : Nom
ambigue détécté : workssheet_change, pourkoi a ton avis ?
"FFO" a écrit dans le message de news:

Salut claire
Tu mets dans le VBA de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("Macro")
End If
End Sub

Celà devrait faire
Dis moi !!!


Bonjour,
J'ai créé une macro sous Excel afin de masquer des colonnes dans des
tableaux, la macro s'appelle "mask_col". La macro marche nikel mais
je
dois
maintenant créer une macro évènementielle pour que quand je marque
dans
la
feuille appellée "page_de_garde" dans la cellule L19 "oui" la macro
ne
se
déclenche pas mais qu'elle se déclenche quand je mets "non". comment
faire
svp ???



























Avatar
MichDenis
à moins que tu utilises ceci à titre de variable déclarée
dans le haut de ton module, je ne comprends pas l'usage
Cancel = True

Si tu veux quitter la procédure, utilise à la place la commande
Exit sub

Cette macro remplace les 3 macros du module.
Je ne suis pas sûr qu'elle fera le travail, je ne sais pas ce que
chaque section doit accomplir !

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

'le code ci dessous permet de ne déclencher
'ajoutpages que si une des cellules de la
'plage $G$24:$G$35 est modifiée

If Not Intersect(Target, Range("$G$24:$G$35")) Is Nothing Then
AjoutPages
End If

If Not Intersect(Target, [L20:L20]) Is Nothing Then
Cancel = True
End If

If Range("L20") = "non" Then
Run "mask_col_quali"
End If

If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run "mask_col_quanti"
End If

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




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

C'es gentil de vouloir m'aider ms je ne comprends rien !
Pour moi, c'est du chinois !
Voila mes trois procédures, je ne vois pas comment n'en faire qu'une seule !

Private Sub Worksheet_Change(ByVal Target As Range)

'le code ci dessous permet de ne déclencher ajoutpages que si une des
cellules de la plage $G$24:$G$35 est modifiée

If Not Intersect(Target, Range("$G$24:$G$35")) Is Nothing Then
AjoutPages
End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("mask_col_quanti")
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L20:L20]) Is Nothing Then
Cancel = True
End If
If Range("L20") = "non" Then
Run ("mask_col_quali")
End If
End Sub

"MichDenis" a écrit dans le message de news:
%
Un petit exemple simple :

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

'Une action lorsqu'une cellule de la colonne A:A est saisie
If Not Intersect(Target, Columns(1)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(1)).Address

'Une action lorsqu'une cellule de la colonne E:E est saisie
ElseIf Not Intersect(Target, Columns(5)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(5)).Address

End If

'et tu peux continuer d'ajouter des conditions
End Sub
'-------------------------------



"claire_db" a écrit dans le message de news:
%
Comment ça utilser des conditions ?!

"MichDenis" a écrit dans le message de news:
eZlYe$
| en effet cette procédure 3 fois dans mon module feuille mais pour
| déclencher des macros différentes !

Tu dois alors intégrer tes 3 macros dans la même procédure événementielle
en utilisant de conditions pour chaque section de la macro puissent
s'exécuter.


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

J'ai en effet cette procédure 3 fois dans mon module feuille mais pour
déclencher des macros différentes !
"MichDenis" a écrit dans le message de news:

Tu es certaine de ne pas avoir 2 fois cette procédure
événementielle dans ton module feuille ?

Private Sub Worksheet_Change(ByVal Target As Range)



"claire_db" a écrit dans le message de news:
%
Non, pas de macros avec le même nom !

"MichDenis" a écrit dans le message de news:
%
Dans ton module feuille ou standard, tu ne peux pas
avoir 2 macros qui portent le même nom.
Vérifie que ce n'est pas le cas.


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

La macro que m'a donné ne marche pas ! qd je mets "non" ca me met : Nom
ambigue détécté : workssheet_change, pourkoi a ton avis ?
"FFO" a écrit dans le message de news:

Salut claire
Tu mets dans le VBA de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("Macro")
End If
End Sub

Celà devrait faire
Dis moi !!!


Bonjour,
J'ai créé une macro sous Excel afin de masquer des colonnes dans des
tableaux, la macro s'appelle "mask_col". La macro marche nikel mais
je
dois
maintenant créer une macro évènementielle pour que quand je marque
dans
la
feuille appellée "page_de_garde" dans la cellule L19 "oui" la macro
ne
se
déclenche pas mais qu'elle se déclenche quand je mets "non". comment
faire
svp ???



























Avatar
claire_db
J'en sais rien, on m'a dit de mettre ca ! J'y connais vraiment rien en VBA !
du coups, jfais quoi pour faire 3 macros en une ?!


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

à moins que tu utilises ceci à titre de variable déclarée
dans le haut de ton module, je ne comprends pas l'usage
Cancel = True

Si tu veux quitter la procédure, utilise à la place la commande
Exit sub

Cette macro remplace les 3 macros du module.
Je ne suis pas sûr qu'elle fera le travail, je ne sais pas ce que
chaque section doit accomplir !

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

'le code ci dessous permet de ne déclencher
'ajoutpages que si une des cellules de la
'plage $G$24:$G$35 est modifiée

If Not Intersect(Target, Range("$G$24:$G$35")) Is Nothing Then
AjoutPages
End If

If Not Intersect(Target, [L20:L20]) Is Nothing Then
Cancel = True
End If

If Range("L20") = "non" Then
Run "mask_col_quali"
End If

If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run "mask_col_quanti"
End If

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




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

C'es gentil de vouloir m'aider ms je ne comprends rien !
Pour moi, c'est du chinois !
Voila mes trois procédures, je ne vois pas comment n'en faire qu'une seule
!

Private Sub Worksheet_Change(ByVal Target As Range)

'le code ci dessous permet de ne déclencher ajoutpages que si une des
cellules de la plage $G$24:$G$35 est modifiée

If Not Intersect(Target, Range("$G$24:$G$35")) Is Nothing Then
AjoutPages
End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("mask_col_quanti")
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L20:L20]) Is Nothing Then
Cancel = True
End If
If Range("L20") = "non" Then
Run ("mask_col_quali")
End If
End Sub

"MichDenis" a écrit dans le message de news:
%
Un petit exemple simple :

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

'Une action lorsqu'une cellule de la colonne A:A est saisie
If Not Intersect(Target, Columns(1)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(1)).Address

'Une action lorsqu'une cellule de la colonne E:E est saisie
ElseIf Not Intersect(Target, Columns(5)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(5)).Address

End If

'et tu peux continuer d'ajouter des conditions
End Sub
'-------------------------------



"claire_db" a écrit dans le message de news:
%
Comment ça utilser des conditions ?!

"MichDenis" a écrit dans le message de news:
eZlYe$
| en effet cette procédure 3 fois dans mon module feuille mais pour
| déclencher des macros différentes !

Tu dois alors intégrer tes 3 macros dans la même procédure
événementielle
en utilisant de conditions pour chaque section de la macro puissent
s'exécuter.


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

J'ai en effet cette procédure 3 fois dans mon module feuille mais pour
déclencher des macros différentes !
"MichDenis" a écrit dans le message de news:

Tu es certaine de ne pas avoir 2 fois cette procédure
événementielle dans ton module feuille ?

Private Sub Worksheet_Change(ByVal Target As Range)



"claire_db" a écrit dans le message de news:
%
Non, pas de macros avec le même nom !

"MichDenis" a écrit dans le message de news:
%
Dans ton module feuille ou standard, tu ne peux pas
avoir 2 macros qui portent le même nom.
Vérifie que ce n'est pas le cas.


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

La macro que m'a donné ne marche pas ! qd je mets "non" ca me met :
Nom
ambigue détécté : workssheet_change, pourkoi a ton avis ?
"FFO" a écrit dans le message de news:

Salut claire
Tu mets dans le VBA de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("Macro")
End If
End Sub

Celà devrait faire
Dis moi !!!


Bonjour,
J'ai créé une macro sous Excel afin de masquer des colonnes dans des
tableaux, la macro s'appelle "mask_col". La macro marche nikel mais
je
dois
maintenant créer une macro évènementielle pour que quand je marque
dans
la
feuille appellée "page_de_garde" dans la cellule L19 "oui" la macro
ne
se
déclenche pas mais qu'elle se déclenche quand je mets "non". comment
faire
svp ???
































Avatar
MichDenis
Copie ce code dans le module feuille où l'action se déroule :

Si cela ne fonctionne pas comme tu l'entends, tu devras
nous décrire ce que tu tentes de réaliser....il y a sûrement
quelqu'un ici pour t'aider !

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

'le code ci dessous permet de ne déclencher
'ajoutpages que si une des cellules de la
'plage $G$24:$G$35 est modifiée

If Not Intersect(Target, Range("$G$24:$G$35")) Is Nothing Then
AjoutPages

'Macro déclenchée si tu saisie "non" dans la cellule L20
ElseIf Not Intersect(Target, Range("L20")) Is Nothing Then
If LCase(Range("L20")) = "non" Then
mask_col_quali
End If

'Macro déclenchée si tu saisie "non" dans la cellule L19
ElseIf Not Intersect(Target, Range("L19")) Is Nothing Then
If LCase(Range("L19")) = "non" Then
mask_col_quanti
End If
End If

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




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

J'en sais rien, on m'a dit de mettre ca ! J'y connais vraiment rien en VBA !
du coups, jfais quoi pour faire 3 macros en une ?!


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

à moins que tu utilises ceci à titre de variable déclarée
dans le haut de ton module, je ne comprends pas l'usage
Cancel = True

Si tu veux quitter la procédure, utilise à la place la commande
Exit sub

Cette macro remplace les 3 macros du module.
Je ne suis pas sûr qu'elle fera le travail, je ne sais pas ce que
chaque section doit accomplir !

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

'le code ci dessous permet de ne déclencher
'ajoutpages que si une des cellules de la
'plage $G$24:$G$35 est modifiée

If Not Intersect(Target, Range("$G$24:$G$35")) Is Nothing Then
AjoutPages
End If

If Not Intersect(Target, [L20:L20]) Is Nothing Then
Cancel = True
End If

If Range("L20") = "non" Then
Run "mask_col_quali"
End If

If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run "mask_col_quanti"
End If

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




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

C'es gentil de vouloir m'aider ms je ne comprends rien !
Pour moi, c'est du chinois !
Voila mes trois procédures, je ne vois pas comment n'en faire qu'une seule
!

Private Sub Worksheet_Change(ByVal Target As Range)

'le code ci dessous permet de ne déclencher ajoutpages que si une des
cellules de la plage $G$24:$G$35 est modifiée

If Not Intersect(Target, Range("$G$24:$G$35")) Is Nothing Then
AjoutPages
End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("mask_col_quanti")
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L20:L20]) Is Nothing Then
Cancel = True
End If
If Range("L20") = "non" Then
Run ("mask_col_quali")
End If
End Sub

"MichDenis" a écrit dans le message de news:
%
Un petit exemple simple :

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

'Une action lorsqu'une cellule de la colonne A:A est saisie
If Not Intersect(Target, Columns(1)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(1)).Address

'Une action lorsqu'une cellule de la colonne E:E est saisie
ElseIf Not Intersect(Target, Columns(5)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(5)).Address

End If

'et tu peux continuer d'ajouter des conditions
End Sub
'-------------------------------



"claire_db" a écrit dans le message de news:
%
Comment ça utilser des conditions ?!

"MichDenis" a écrit dans le message de news:
eZlYe$
| en effet cette procédure 3 fois dans mon module feuille mais pour
| déclencher des macros différentes !

Tu dois alors intégrer tes 3 macros dans la même procédure
événementielle
en utilisant de conditions pour chaque section de la macro puissent
s'exécuter.


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

J'ai en effet cette procédure 3 fois dans mon module feuille mais pour
déclencher des macros différentes !
"MichDenis" a écrit dans le message de news:

Tu es certaine de ne pas avoir 2 fois cette procédure
événementielle dans ton module feuille ?

Private Sub Worksheet_Change(ByVal Target As Range)



"claire_db" a écrit dans le message de news:
%
Non, pas de macros avec le même nom !

"MichDenis" a écrit dans le message de news:
%
Dans ton module feuille ou standard, tu ne peux pas
avoir 2 macros qui portent le même nom.
Vérifie que ce n'est pas le cas.


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

La macro que m'a donné ne marche pas ! qd je mets "non" ca me met :
Nom
ambigue détécté : workssheet_change, pourkoi a ton avis ?
"FFO" a écrit dans le message de news:

Salut claire
Tu mets dans le VBA de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("Macro")
End If
End Sub

Celà devrait faire
Dis moi !!!


Bonjour,
J'ai créé une macro sous Excel afin de masquer des colonnes dans des
tableaux, la macro s'appelle "mask_col". La macro marche nikel mais
je
dois
maintenant créer une macro évènementielle pour que quand je marque
dans
la
feuille appellée "page_de_garde" dans la cellule L19 "oui" la macro
ne
se
déclenche pas mais qu'elle se déclenche quand je mets "non". comment
faire
svp ???
































Avatar
FFO
Rebonjour Claire
Inutile de s'affoler
On vas y arriver !!!

Je propose en unique code à mettre dans le VBA de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("19").Address And Range("L19") = "non" Then
Run ("mask_col_quanti")
End If
If Target.Address = Range("L20").Address And Range("L20") = "non" Then
Run ("mask_col_quali")
End If
For Each c In Worksheets("Feuil1").Range("$G$24", "$G$35")
If Target.Address = c.Address And c <> "" Then
Sheets.Add
End If
Next
End Sub

Actualise le nom "Feuil1" en fonction du non de ta feuille dans la ligne :
For Each c In Worksheets("Feuil1").Range("$G$24", "$G$35")

Testes le et dit moi !!!!


J'en sais rien, on m'a dit de mettre ca ! J'y connais vraiment rien en VBA !
du coups, jfais quoi pour faire 3 macros en une ?!


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

à moins que tu utilises ceci à titre de variable déclarée
dans le haut de ton module, je ne comprends pas l'usage
Cancel = True

Si tu veux quitter la procédure, utilise à la place la commande
Exit sub

Cette macro remplace les 3 macros du module.
Je ne suis pas sûr qu'elle fera le travail, je ne sais pas ce que
chaque section doit accomplir !

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

'le code ci dessous permet de ne déclencher
'ajoutpages que si une des cellules de la
'plage $G$24:$G$35 est modifiée

If Not Intersect(Target, Range("$G$24:$G$35")) Is Nothing Then
AjoutPages
End If

If Not Intersect(Target, [L20:L20]) Is Nothing Then
Cancel = True
End If

If Range("L20") = "non" Then
Run "mask_col_quali"
End If

If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run "mask_col_quanti"
End If

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




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

C'es gentil de vouloir m'aider ms je ne comprends rien !
Pour moi, c'est du chinois !
Voila mes trois procédures, je ne vois pas comment n'en faire qu'une seule
!

Private Sub Worksheet_Change(ByVal Target As Range)

'le code ci dessous permet de ne déclencher ajoutpages que si une des
cellules de la plage $G$24:$G$35 est modifiée

If Not Intersect(Target, Range("$G$24:$G$35")) Is Nothing Then
AjoutPages
End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("mask_col_quanti")
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L20:L20]) Is Nothing Then
Cancel = True
End If
If Range("L20") = "non" Then
Run ("mask_col_quali")
End If
End Sub

"MichDenis" a écrit dans le message de news:
%
Un petit exemple simple :

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

'Une action lorsqu'une cellule de la colonne A:A est saisie
If Not Intersect(Target, Columns(1)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(1)).Address

'Une action lorsqu'une cellule de la colonne E:E est saisie
ElseIf Not Intersect(Target, Columns(5)) Is Nothing Then
'le code à exécuter
MsgBox Intersect(Target, Columns(5)).Address

End If

'et tu peux continuer d'ajouter des conditions
End Sub
'-------------------------------



"claire_db" a écrit dans le message de news:
%
Comment ça utilser des conditions ?!

"MichDenis" a écrit dans le message de news:
eZlYe$
| en effet cette procédure 3 fois dans mon module feuille mais pour
| déclencher des macros différentes !

Tu dois alors intégrer tes 3 macros dans la même procédure
événementielle
en utilisant de conditions pour chaque section de la macro puissent
s'exécuter.


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

J'ai en effet cette procédure 3 fois dans mon module feuille mais pour
déclencher des macros différentes !
"MichDenis" a écrit dans le message de news:

Tu es certaine de ne pas avoir 2 fois cette procédure
événementielle dans ton module feuille ?

Private Sub Worksheet_Change(ByVal Target As Range)



"claire_db" a écrit dans le message de news:
%
Non, pas de macros avec le même nom !

"MichDenis" a écrit dans le message de news:
%
Dans ton module feuille ou standard, tu ne peux pas
avoir 2 macros qui portent le même nom.
Vérifie que ce n'est pas le cas.


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

La macro que m'a donné ne marche pas ! qd je mets "non" ca me met :
Nom
ambigue détécté : workssheet_change, pourkoi a ton avis ?
"FFO" a écrit dans le message de news:

Salut claire
Tu mets dans le VBA de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [L19:L19]) Is Nothing Then
Cancel = True
End If
If Range("L19") = "non" Then
Run ("Macro")
End If
End Sub

Celà devrait faire
Dis moi !!!


Bonjour,
J'ai créé une macro sous Excel afin de masquer des colonnes dans des
tableaux, la macro s'appelle "mask_col". La macro marche nikel mais
je
dois
maintenant créer une macro évènementielle pour que quand je marque
dans
la
feuille appellée "page_de_garde" dans la cellule L19 "oui" la macro
ne
se
déclenche pas mais qu'elle se déclenche quand je mets "non". comment
faire
svp ???





































1 2