*Bonjour ALF*,bonsoir jean luc,
et merci pour ton info..en effet cela semble interressant..
par contre,je comprends pas trop pourquoi utiliser seulement la colonne
B,etant donné que des cellules peuvent se trouver ailleurs que sur la colonne
B???
J'ai (lamentablement) supposé que ton tableau était structuré avec ces
infos en colonne B. Mais tu peux remettre la même plage qu'au début, à
savoir B2:Q73. De toute façon tu fais quand même 5 ou 6 boucles de
moins ;-)
d'autre part,j'ai un probleme pour Case Else Couleur=xlNone car certaines
cellules ont des motifs d'origine avec couleur...
J'ai mis un Case Else car dans ton code d'origine, si tu trouvais
l'info cherchée tu mettais une couleur, sinon tu mettais :
Range(c.Offset(0, 3), c.Offset(0, 4)).Select
Selection.Interior.ColorIndex = xlNone
et ceci à chaque fois
J'en ai conclu que ... :-)existe t il dans ce cas Couleur = si Case est different de ceux declarés
alors laisser le motif d'origine...
Il suffit d'enlever le Case Else
et enfin,dans le code que m'avais propose jp25 ,la macro bloque sur
MaSelectionMultiple.select..avec le message :OBJET requis manquant...
Attention, si tu a copier une partie du code et réécrit une autre
partie, MaSelectionMultiple prend un accent : MaS*é*lectionMultiplemerci pour ton soutien
Ce fut un plaisir--
ALFVoici le code obtenu :-) : plus simple à maintenir et on voit mieux ce
que l'on fait, moins long car moins de boucles
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
For Each c In Range("B2:B73")
Select Case c
Case "Taux de siren"
Union(c.Offset(0, 3), c.Offset(0, 4)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case Is = "Départs ACT"
Union(c.Offset(0, 1), c.Offset(0, 2), c.Offset(0, 4), c.Offset(0,
5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Nombre de dossiers par ETP", "Nombre de d 'avis par ETP"
Union(c.Offset(0, 1), c.Offset(0, 4), c.Offset(0, 5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Montant du Stock", "Montant Moyen Créance", "Nombre Total de
dossiers en stock"
Union(c.Offset(0, 4), c.Offset(0, 5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Efficacité du recouvrement (sans ACI)", "Nombre d' ACI",
"Montant d' ACI"
c.Offset(0, 5).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Nombre de prestataires"
Union(c.Offset(0, 3), c.Offset(0, 4), c.Offset(0, 5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case Else
Union(c.Offset(0, 3), c.Offset(0, 4)).Select
Couleur = xlNone
End Select
With Range(c.AddressLocal & ":" & c.Offset(0,
5).AddressLocal).Interior
.ColorIndex = xlAutomatic
.Pattern = xlPatternNone
.PatternColorIndex = xlColorIndexNone
End With
With Selection.Interior
.ColorIndex = Couleur
.Pattern = Motif
.PatternColorIndex = CouleurMotif
End With
Next c
Range("B2").Select
Application.EnableEvents = True
FeuilleActive.Select
Application.ScreenUpdating = True
Dis nous ce que tu en pense
;-)*Bonjour ALF*,
Pour tes boucles, tu gagnerais en temps si tu faisais ta boucle seulement
sur la colonne B :
For Each c In Range("B2:B73")
En complement, je ferais plutot un select case pour tout faire dans la même
boucle au lieu d'en faire 6. 6 boucles= 6 fois plus long :/For Each c In Range("B2:Q73")
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour ALF*,
bonsoir jean luc,
et merci pour ton info..en effet cela semble interressant..
par contre,je comprends pas trop pourquoi utiliser seulement la colonne
B,etant donné que des cellules peuvent se trouver ailleurs que sur la colonne
B???
J'ai (lamentablement) supposé que ton tableau était structuré avec ces
infos en colonne B. Mais tu peux remettre la même plage qu'au début, à
savoir B2:Q73. De toute façon tu fais quand même 5 ou 6 boucles de
moins ;-)
d'autre part,j'ai un probleme pour Case Else Couleur=xlNone car certaines
cellules ont des motifs d'origine avec couleur...
J'ai mis un Case Else car dans ton code d'origine, si tu trouvais
l'info cherchée tu mettais une couleur, sinon tu mettais :
Range(c.Offset(0, 3), c.Offset(0, 4)).Select
Selection.Interior.ColorIndex = xlNone
et ceci à chaque fois
J'en ai conclu que ... :-)
existe t il dans ce cas Couleur = si Case est different de ceux declarés
alors laisser le motif d'origine...
Il suffit d'enlever le Case Else
et enfin,dans le code que m'avais propose jp25 ,la macro bloque sur
MaSelectionMultiple.select..avec le message :OBJET requis manquant...
Attention, si tu a copier une partie du code et réécrit une autre
partie, MaSelectionMultiple prend un accent : MaS*é*lectionMultiple
merci pour ton soutien
Ce fut un plaisir
--
ALF
Voici le code obtenu :-) : plus simple à maintenir et on voit mieux ce
que l'on fait, moins long car moins de boucles
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
For Each c In Range("B2:B73")
Select Case c
Case "Taux de siren"
Union(c.Offset(0, 3), c.Offset(0, 4)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case Is = "Départs ACT"
Union(c.Offset(0, 1), c.Offset(0, 2), c.Offset(0, 4), c.Offset(0,
5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Nombre de dossiers par ETP", "Nombre de d 'avis par ETP"
Union(c.Offset(0, 1), c.Offset(0, 4), c.Offset(0, 5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Montant du Stock", "Montant Moyen Créance", "Nombre Total de
dossiers en stock"
Union(c.Offset(0, 4), c.Offset(0, 5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Efficacité du recouvrement (sans ACI)", "Nombre d' ACI",
"Montant d' ACI"
c.Offset(0, 5).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Nombre de prestataires"
Union(c.Offset(0, 3), c.Offset(0, 4), c.Offset(0, 5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case Else
Union(c.Offset(0, 3), c.Offset(0, 4)).Select
Couleur = xlNone
End Select
With Range(c.AddressLocal & ":" & c.Offset(0,
5).AddressLocal).Interior
.ColorIndex = xlAutomatic
.Pattern = xlPatternNone
.PatternColorIndex = xlColorIndexNone
End With
With Selection.Interior
.ColorIndex = Couleur
.Pattern = Motif
.PatternColorIndex = CouleurMotif
End With
Next c
Range("B2").Select
Application.EnableEvents = True
FeuilleActive.Select
Application.ScreenUpdating = True
Dis nous ce que tu en pense
;-)
*Bonjour ALF*,
Pour tes boucles, tu gagnerais en temps si tu faisais ta boucle seulement
sur la colonne B :
For Each c In Range("B2:B73")
En complement, je ferais plutot un select case pour tout faire dans la même
boucle au lieu d'en faire 6. 6 boucles= 6 fois plus long :/
For Each c In Range("B2:Q73")
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour ALF*,bonsoir jean luc,
et merci pour ton info..en effet cela semble interressant..
par contre,je comprends pas trop pourquoi utiliser seulement la colonne
B,etant donné que des cellules peuvent se trouver ailleurs que sur la colonne
B???
J'ai (lamentablement) supposé que ton tableau était structuré avec ces
infos en colonne B. Mais tu peux remettre la même plage qu'au début, à
savoir B2:Q73. De toute façon tu fais quand même 5 ou 6 boucles de
moins ;-)
d'autre part,j'ai un probleme pour Case Else Couleur=xlNone car certaines
cellules ont des motifs d'origine avec couleur...
J'ai mis un Case Else car dans ton code d'origine, si tu trouvais
l'info cherchée tu mettais une couleur, sinon tu mettais :
Range(c.Offset(0, 3), c.Offset(0, 4)).Select
Selection.Interior.ColorIndex = xlNone
et ceci à chaque fois
J'en ai conclu que ... :-)existe t il dans ce cas Couleur = si Case est different de ceux declarés
alors laisser le motif d'origine...
Il suffit d'enlever le Case Else
et enfin,dans le code que m'avais propose jp25 ,la macro bloque sur
MaSelectionMultiple.select..avec le message :OBJET requis manquant...
Attention, si tu a copier une partie du code et réécrit une autre
partie, MaSelectionMultiple prend un accent : MaS*é*lectionMultiplemerci pour ton soutien
Ce fut un plaisir--
ALFVoici le code obtenu :-) : plus simple à maintenir et on voit mieux ce
que l'on fait, moins long car moins de boucles
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
For Each c In Range("B2:B73")
Select Case c
Case "Taux de siren"
Union(c.Offset(0, 3), c.Offset(0, 4)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case Is = "Départs ACT"
Union(c.Offset(0, 1), c.Offset(0, 2), c.Offset(0, 4), c.Offset(0,
5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Nombre de dossiers par ETP", "Nombre de d 'avis par ETP"
Union(c.Offset(0, 1), c.Offset(0, 4), c.Offset(0, 5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Montant du Stock", "Montant Moyen Créance", "Nombre Total de
dossiers en stock"
Union(c.Offset(0, 4), c.Offset(0, 5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Efficacité du recouvrement (sans ACI)", "Nombre d' ACI",
"Montant d' ACI"
c.Offset(0, 5).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case "Nombre de prestataires"
Union(c.Offset(0, 3), c.Offset(0, 4), c.Offset(0, 5)).Select
Couleur = 15
Motif = xlSolid
CouleurMotif = xlAutomatic
Case Else
Union(c.Offset(0, 3), c.Offset(0, 4)).Select
Couleur = xlNone
End Select
With Range(c.AddressLocal & ":" & c.Offset(0,
5).AddressLocal).Interior
.ColorIndex = xlAutomatic
.Pattern = xlPatternNone
.PatternColorIndex = xlColorIndexNone
End With
With Selection.Interior
.ColorIndex = Couleur
.Pattern = Motif
.PatternColorIndex = CouleurMotif
End With
Next c
Range("B2").Select
Application.EnableEvents = True
FeuilleActive.Select
Application.ScreenUpdating = True
Dis nous ce que tu en pense
;-)*Bonjour ALF*,
Pour tes boucles, tu gagnerais en temps si tu faisais ta boucle seulement
sur la colonne B :
For Each c In Range("B2:B73")
En complement, je ferais plutot un select case pour tout faire dans la même
boucle au lieu d'en faire 6. 6 boucles= 6 fois plus long :/For Each c In Range("B2:Q73")
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
If Target.Address <> "$B$12" And Target.Address <> "$B$5" Then Exit Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
If Target.Address <> "$B$12" And Target.Address <> "$B$5" Then Exit Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
If Target.Address <> "$B$12" And Target.Address <> "$B$5" Then Exit Sub
si je choisi ma selection ("B2:Q73") avec des cellules origines avec motifs
differents,il me faut absolument "Case else" car je travaille sur une feuille
qui change de donnees en fonction de la selection sur le menu..et donc le
format Couleur reste alors qu'il devrait y avoir couleur=aucune couleur ou
vert ou etc..
1/ Comment sont définies tes couleurs au départ ?
la grosse difficulté etant probablement de remplacer
case else
union(x) .select
couleur=xlnone par couleur=couleur d'origine car toutes les couleurs
d'origine ne sont pas =xlnone
Si la couleur d'origine est la bonne en colonne A, par exemple :
le code que j'ai donné n'est q'une partie du code total..et ne comprends pas
ce menu!!...
! Quel menu ??
je te donne donc la totalité du code pour que tu comprennes mieux..
d'autre part,je me suis trompé sur mon case else d'origine..
ce n'est pas uniquement: Case Else
Union(c.Offset(0, 3), c.Offset(0, 4)).Select pour tous les case
mais
Case Else
Union répété de chaque Case.Select
exemple: Union(c.Offset(0, 1), c.Offset(0, 2), c.Offset(0, 4), c.Offset(0,
5)).Select pour "Départs ACT"
ou
Union(c.Offset(0, 3), c.Offset(0, 4), c.Offset(0, 5)).Select pour Case
"Efficacité du recouvrement (sans ACI)", "Nombre d' ACI"
etc...
2/ Des explications un peut plus poussées me semblent nécéssaire :-?
voici mon code (avec menu) adapté avec ton code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
3/ Si tu mets ton code dans cette procédure évenementielle, elle sera
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
If Target.Address <> "$B$12" And Target.Address <> "$B$5" Then Exit Sub
si je choisi ma selection ("B2:Q73") avec des cellules origines avec motifs
differents,il me faut absolument "Case else" car je travaille sur une feuille
qui change de donnees en fonction de la selection sur le menu..et donc le
format Couleur reste alors qu'il devrait y avoir couleur=aucune couleur ou
vert ou etc..
1/ Comment sont définies tes couleurs au départ ?
la grosse difficulté etant probablement de remplacer
case else
union(x) .select
couleur=xlnone par couleur=couleur d'origine car toutes les couleurs
d'origine ne sont pas =xlnone
Si la couleur d'origine est la bonne en colonne A, par exemple :
le code que j'ai donné n'est q'une partie du code total..et ne comprends pas
ce menu!!...
! Quel menu ??
je te donne donc la totalité du code pour que tu comprennes mieux..
d'autre part,je me suis trompé sur mon case else d'origine..
ce n'est pas uniquement: Case Else
Union(c.Offset(0, 3), c.Offset(0, 4)).Select pour tous les case
mais
Case Else
Union répété de chaque Case.Select
exemple: Union(c.Offset(0, 1), c.Offset(0, 2), c.Offset(0, 4), c.Offset(0,
5)).Select pour "Départs ACT"
ou
Union(c.Offset(0, 3), c.Offset(0, 4), c.Offset(0, 5)).Select pour Case
"Efficacité du recouvrement (sans ACI)", "Nombre d' ACI"
etc...
2/ Des explications un peut plus poussées me semblent nécéssaire :-?
voici mon code (avec menu) adapté avec ton code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
3/ Si tu mets ton code dans cette procédure évenementielle, elle sera
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
If Target.Address <> "$B$12" And Target.Address <> "$B$5" Then Exit Sub
si je choisi ma selection ("B2:Q73") avec des cellules origines avec motifs
differents,il me faut absolument "Case else" car je travaille sur une feuille
qui change de donnees en fonction de la selection sur le menu..et donc le
format Couleur reste alors qu'il devrait y avoir couleur=aucune couleur ou
vert ou etc..
1/ Comment sont définies tes couleurs au départ ?
la grosse difficulté etant probablement de remplacer
case else
union(x) .select
couleur=xlnone par couleur=couleur d'origine car toutes les couleurs
d'origine ne sont pas =xlnone
Si la couleur d'origine est la bonne en colonne A, par exemple :
le code que j'ai donné n'est q'une partie du code total..et ne comprends pas
ce menu!!...
! Quel menu ??
je te donne donc la totalité du code pour que tu comprennes mieux..
d'autre part,je me suis trompé sur mon case else d'origine..
ce n'est pas uniquement: Case Else
Union(c.Offset(0, 3), c.Offset(0, 4)).Select pour tous les case
mais
Case Else
Union répété de chaque Case.Select
exemple: Union(c.Offset(0, 1), c.Offset(0, 2), c.Offset(0, 4), c.Offset(0,
5)).Select pour "Départs ACT"
ou
Union(c.Offset(0, 3), c.Offset(0, 4), c.Offset(0, 5)).Select pour Case
"Efficacité du recouvrement (sans ACI)", "Nombre d' ACI"
etc...
2/ Des explications un peut plus poussées me semblent nécéssaire :-?
voici mon code (avec menu) adapté avec ton code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
3/ Si tu mets ton code dans cette procédure évenementielle, elle sera
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
If Target.Address <> "$B$12" And Target.Address <> "$B$5" Then Exit Sub
2/ Des explications un peut plus poussées me semblent nécéssaire :-?
je voulais simplement dire que pour chaque "case"" que tu as defini il faut
lancée pour toutes les feuilles du classeur !
Préfere lui la procédure :
Private Sub Worksheet_Change(ByVal Target As Range)
à mettre dans le code de la feuille en question
*Bonjour ALF*,
Plusieurs remarques :si je choisi ma selection ("B2:Q73") avec des cellules origines avec motifs
differents,il me faut absolument "Case else" car je travaille sur une feuille
qui change de donnees en fonction de la selection sur le menu..et donc le
format Couleur reste alors qu'il devrait y avoir couleur=aucune couleur ou
vert ou etc..
1/ Comment sont définies tes couleurs au départ ?la grosse difficulté etant probablement de remplacer
case else
union(x) .select
couleur=xlnone par couleur=couleur d'origine car toutes les couleurs
d'origine ne sont pas =xlnone
Si la couleur d'origine est la bonne en colonne A, par exemple :
Couleur = Range("A" & c.Row).Interior.ColorIndex
le code que j'ai donné n'est q'une partie du code total..et ne comprends pas
ce menu!!...
! Quel menu ??je te donne donc la totalité du code pour que tu comprennes mieux..
d'autre part,je me suis trompé sur mon case else d'origine..
ce n'est pas uniquement: Case Else
Union(c.Offset(0, 3), c.Offset(0, 4)).Select pour tous les case
mais
Case Else
Union répété de chaque Case.Select
exemple: Union(c.Offset(0, 1), c.Offset(0, 2), c.Offset(0, 4), c.Offset(0,
5)).Select pour "Départs ACT"
ou
Union(c.Offset(0, 3), c.Offset(0, 4), c.Offset(0, 5)).Select pour Case
"Efficacité du recouvrement (sans ACI)", "Nombre d' ACI"
etc...
2/ Des explications un peut plus poussées me semblent nécéssaire :-?
voici mon code (avec menu) adapté avec ton code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
3/ Si tu mets ton code dans cette procédure évenementielle, elle sera
lancée pour toutes les feuilles du classeur !
Préfere lui la procédure :
Private Sub Worksheet_Change(ByVal Target As Range)
à mettre dans le code de la feuille en question
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
If Target.Address <> "$B$12" And Target.Address <> "$B$5" Then Exit Sub
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
2/ Des explications un peut plus poussées me semblent nécéssaire :-?
je voulais simplement dire que pour chaque "case"" que tu as defini il faut
lancée pour toutes les feuilles du classeur !
Préfere lui la procédure :
Private Sub Worksheet_Change(ByVal Target As Range)
à mettre dans le code de la feuille en question
*Bonjour ALF*,
Plusieurs remarques :
si je choisi ma selection ("B2:Q73") avec des cellules origines avec motifs
differents,il me faut absolument "Case else" car je travaille sur une feuille
qui change de donnees en fonction de la selection sur le menu..et donc le
format Couleur reste alors qu'il devrait y avoir couleur=aucune couleur ou
vert ou etc..
1/ Comment sont définies tes couleurs au départ ?
la grosse difficulté etant probablement de remplacer
case else
union(x) .select
couleur=xlnone par couleur=couleur d'origine car toutes les couleurs
d'origine ne sont pas =xlnone
Si la couleur d'origine est la bonne en colonne A, par exemple :
Couleur = Range("A" & c.Row).Interior.ColorIndex
le code que j'ai donné n'est q'une partie du code total..et ne comprends pas
ce menu!!...
! Quel menu ??
je te donne donc la totalité du code pour que tu comprennes mieux..
d'autre part,je me suis trompé sur mon case else d'origine..
ce n'est pas uniquement: Case Else
Union(c.Offset(0, 3), c.Offset(0, 4)).Select pour tous les case
mais
Case Else
Union répété de chaque Case.Select
exemple: Union(c.Offset(0, 1), c.Offset(0, 2), c.Offset(0, 4), c.Offset(0,
5)).Select pour "Départs ACT"
ou
Union(c.Offset(0, 3), c.Offset(0, 4), c.Offset(0, 5)).Select pour Case
"Efficacité du recouvrement (sans ACI)", "Nombre d' ACI"
etc...
2/ Des explications un peut plus poussées me semblent nécéssaire :-?
voici mon code (avec menu) adapté avec ton code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
3/ Si tu mets ton code dans cette procédure évenementielle, elle sera
lancée pour toutes les feuilles du classeur !
Préfere lui la procédure :
Private Sub Worksheet_Change(ByVal Target As Range)
à mettre dans le code de la feuille en question
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
If Target.Address <> "$B$12" And Target.Address <> "$B$5" Then Exit Sub
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
2/ Des explications un peut plus poussées me semblent nécéssaire :-?
je voulais simplement dire que pour chaque "case"" que tu as defini il faut
lancée pour toutes les feuilles du classeur !
Préfere lui la procédure :
Private Sub Worksheet_Change(ByVal Target As Range)
à mettre dans le code de la feuille en question
*Bonjour ALF*,
Plusieurs remarques :si je choisi ma selection ("B2:Q73") avec des cellules origines avec motifs
differents,il me faut absolument "Case else" car je travaille sur une feuille
qui change de donnees en fonction de la selection sur le menu..et donc le
format Couleur reste alors qu'il devrait y avoir couleur=aucune couleur ou
vert ou etc..
1/ Comment sont définies tes couleurs au départ ?la grosse difficulté etant probablement de remplacer
case else
union(x) .select
couleur=xlnone par couleur=couleur d'origine car toutes les couleurs
d'origine ne sont pas =xlnone
Si la couleur d'origine est la bonne en colonne A, par exemple :
Couleur = Range("A" & c.Row).Interior.ColorIndex
le code que j'ai donné n'est q'une partie du code total..et ne comprends pas
ce menu!!...
! Quel menu ??je te donne donc la totalité du code pour que tu comprennes mieux..
d'autre part,je me suis trompé sur mon case else d'origine..
ce n'est pas uniquement: Case Else
Union(c.Offset(0, 3), c.Offset(0, 4)).Select pour tous les case
mais
Case Else
Union répété de chaque Case.Select
exemple: Union(c.Offset(0, 1), c.Offset(0, 2), c.Offset(0, 4), c.Offset(0,
5)).Select pour "Départs ACT"
ou
Union(c.Offset(0, 3), c.Offset(0, 4), c.Offset(0, 5)).Select pour Case
"Efficacité du recouvrement (sans ACI)", "Nombre d' ACI"
etc...
2/ Des explications un peut plus poussées me semblent nécéssaire :-?
voici mon code (avec menu) adapté avec ton code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
3/ Si tu mets ton code dans cette procédure évenementielle, elle sera
lancée pour toutes les feuilles du classeur !
Préfere lui la procédure :
Private Sub Worksheet_Change(ByVal Target As Range)
à mettre dans le code de la feuille en question
Dim FeuilleActive As Worksheet
Dim Couleur As Variant
Dim Motif As Long
Dim CouleurMotif As Long
Application.ScreenUpdating = False
Set FeuilleActive = ActiveSheet
Dim c As Range
If Target.Address <> "$B$12" And Target.Address <> "$B$5" Then Exit Sub
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
c'est en fait sur une feuille "entite1" ou apparait 2 cellules b12 et b5 et
sur ces 2 cellules il y a une liste deroulante ..en b5,on choisit le type de
processus et en b12 ,on choisit le mois..c 'est a partir de ces 2 selections
que les donnees choisis vont arriver et remplir la feuille "entité1"..
l'astuce de la macro etant de synchroniser ce choix avec d'autres feuilles
similaires..c'est à dire que le choix sur la feuille "entité 1" va se
reporter instantanement sur les autres feuilles
"entité2","entité3"..jusqu'a"entité7"...c'est pourquoi il faut absolument
garder workbook plutot que worksheet afin aussi d'eviter des modifications
multiples...
c'est en fait sur une feuille "entite1" ou apparait 2 cellules b12 et b5 et
sur ces 2 cellules il y a une liste deroulante ..en b5,on choisit le type de
processus et en b12 ,on choisit le mois..c 'est a partir de ces 2 selections
que les donnees choisis vont arriver et remplir la feuille "entité1"..
l'astuce de la macro etant de synchroniser ce choix avec d'autres feuilles
similaires..c'est à dire que le choix sur la feuille "entité 1" va se
reporter instantanement sur les autres feuilles
"entité2","entité3"..jusqu'a"entité7"...c'est pourquoi il faut absolument
garder workbook plutot que worksheet afin aussi d'eviter des modifications
multiples...
c'est en fait sur une feuille "entite1" ou apparait 2 cellules b12 et b5 et
sur ces 2 cellules il y a une liste deroulante ..en b5,on choisit le type de
processus et en b12 ,on choisit le mois..c 'est a partir de ces 2 selections
que les donnees choisis vont arriver et remplir la feuille "entité1"..
l'astuce de la macro etant de synchroniser ce choix avec d'autres feuilles
similaires..c'est à dire que le choix sur la feuille "entité 1" va se
reporter instantanement sur les autres feuilles
"entité2","entité3"..jusqu'a"entité7"...c'est pourquoi il faut absolument
garder workbook plutot que worksheet afin aussi d'eviter des modifications
multiples...
*Bonjour ALF*,
Je t'avouerais humblement que je ne suis pas trop ton raisonnement. Tu
parle de plusieurs feuilles et, dans ta macro, tu ne travaille que sur
la feuille active ??
Si tes données ne sont pas confidentielles, pourrais tu mettre ton
classeur sur www.cjoint.com et revenir nous donner le lien ? Sinon, un
classeur avec la même structure reprenant quelques données ferait
l'affaire.c'est en fait sur une feuille "entite1" ou apparait 2 cellules b12 et b5 et
sur ces 2 cellules il y a une liste deroulante ..en b5,on choisit le type de
processus et en b12 ,on choisit le mois..c 'est a partir de ces 2 selections
que les donnees choisis vont arriver et remplir la feuille "entité1"..
l'astuce de la macro etant de synchroniser ce choix avec d'autres feuilles
similaires..c'est à dire que le choix sur la feuille "entité 1" va se
reporter instantanement sur les autres feuilles
"entité2","entité3"..jusqu'a"entité7"...c'est pourquoi il faut absolument
garder workbook plutot que worksheet afin aussi d'eviter des modifications
multiples...
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour ALF*,
Je t'avouerais humblement que je ne suis pas trop ton raisonnement. Tu
parle de plusieurs feuilles et, dans ta macro, tu ne travaille que sur
la feuille active ??
Si tes données ne sont pas confidentielles, pourrais tu mettre ton
classeur sur www.cjoint.com et revenir nous donner le lien ? Sinon, un
classeur avec la même structure reprenant quelques données ferait
l'affaire.
c'est en fait sur une feuille "entite1" ou apparait 2 cellules b12 et b5 et
sur ces 2 cellules il y a une liste deroulante ..en b5,on choisit le type de
processus et en b12 ,on choisit le mois..c 'est a partir de ces 2 selections
que les donnees choisis vont arriver et remplir la feuille "entité1"..
l'astuce de la macro etant de synchroniser ce choix avec d'autres feuilles
similaires..c'est à dire que le choix sur la feuille "entité 1" va se
reporter instantanement sur les autres feuilles
"entité2","entité3"..jusqu'a"entité7"...c'est pourquoi il faut absolument
garder workbook plutot que worksheet afin aussi d'eviter des modifications
multiples...
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour ALF*,
Je t'avouerais humblement que je ne suis pas trop ton raisonnement. Tu
parle de plusieurs feuilles et, dans ta macro, tu ne travaille que sur
la feuille active ??
Si tes données ne sont pas confidentielles, pourrais tu mettre ton
classeur sur www.cjoint.com et revenir nous donner le lien ? Sinon, un
classeur avec la même structure reprenant quelques données ferait
l'affaire.c'est en fait sur une feuille "entite1" ou apparait 2 cellules b12 et b5 et
sur ces 2 cellules il y a une liste deroulante ..en b5,on choisit le type de
processus et en b12 ,on choisit le mois..c 'est a partir de ces 2 selections
que les donnees choisis vont arriver et remplir la feuille "entité1"..
l'astuce de la macro etant de synchroniser ce choix avec d'autres feuilles
similaires..c'est à dire que le choix sur la feuille "entité 1" va se
reporter instantanement sur les autres feuilles
"entité2","entité3"..jusqu'a"entité7"...c'est pourquoi il faut absolument
garder workbook plutot que worksheet afin aussi d'eviter des modifications
multiples...
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
bonsoir jluc,
je te laisse comme convenu mon classeur qui a ete reduit pour la
circonstance car le fichier ne doit pas faire plus de 500ko...
ton code n'a pas encore ete introduit dans ma macro car il est en cours de
construction...
http://cjoint.com/?fDapbJxzCs
Merci
--
ALF*Bonjour ALF*,
Je t'avouerais humblement que je ne suis pas trop ton raisonnement. Tu
parle de plusieurs feuilles et, dans ta macro, tu ne travaille que sur
la feuille active ??
Si tes données ne sont pas confidentielles, pourrais tu mettre ton
classeur sur www.cjoint.com et revenir nous donner le lien ? Sinon, un
classeur avec la même structure reprenant quelques données ferait
l'affaire.c'est en fait sur une feuille "entite1" ou apparait 2 cellules b12 et b5
et sur ces 2 cellules il y a une liste deroulante ..en b5,on choisit le
type de processus et en b12 ,on choisit le mois..c 'est a partir de ces 2
selections que les donnees choisis vont arriver et remplir la feuille
"entité1".. l'astuce de la macro etant de synchroniser ce choix avec
d'autres feuilles similaires..c'est à dire que le choix sur la feuille
"entité 1" va se reporter instantanement sur les autres feuilles
"entité2","entité3"..jusqu'a"entité7"...c'est pourquoi il faut absolument
garder workbook plutot que worksheet afin aussi d'eviter des modifications
multiples...
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
bonsoir jluc,
je te laisse comme convenu mon classeur qui a ete reduit pour la
circonstance car le fichier ne doit pas faire plus de 500ko...
ton code n'a pas encore ete introduit dans ma macro car il est en cours de
construction...
http://cjoint.com/?fDapbJxzCs
Merci
--
ALF
*Bonjour ALF*,
Je t'avouerais humblement que je ne suis pas trop ton raisonnement. Tu
parle de plusieurs feuilles et, dans ta macro, tu ne travaille que sur
la feuille active ??
Si tes données ne sont pas confidentielles, pourrais tu mettre ton
classeur sur www.cjoint.com et revenir nous donner le lien ? Sinon, un
classeur avec la même structure reprenant quelques données ferait
l'affaire.
c'est en fait sur une feuille "entite1" ou apparait 2 cellules b12 et b5
et sur ces 2 cellules il y a une liste deroulante ..en b5,on choisit le
type de processus et en b12 ,on choisit le mois..c 'est a partir de ces 2
selections que les donnees choisis vont arriver et remplir la feuille
"entité1".. l'astuce de la macro etant de synchroniser ce choix avec
d'autres feuilles similaires..c'est à dire que le choix sur la feuille
"entité 1" va se reporter instantanement sur les autres feuilles
"entité2","entité3"..jusqu'a"entité7"...c'est pourquoi il faut absolument
garder workbook plutot que worksheet afin aussi d'eviter des modifications
multiples...
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
bonsoir jluc,
je te laisse comme convenu mon classeur qui a ete reduit pour la
circonstance car le fichier ne doit pas faire plus de 500ko...
ton code n'a pas encore ete introduit dans ma macro car il est en cours de
construction...
http://cjoint.com/?fDapbJxzCs
Merci
--
ALF*Bonjour ALF*,
Je t'avouerais humblement que je ne suis pas trop ton raisonnement. Tu
parle de plusieurs feuilles et, dans ta macro, tu ne travaille que sur
la feuille active ??
Si tes données ne sont pas confidentielles, pourrais tu mettre ton
classeur sur www.cjoint.com et revenir nous donner le lien ? Sinon, un
classeur avec la même structure reprenant quelques données ferait
l'affaire.c'est en fait sur une feuille "entite1" ou apparait 2 cellules b12 et b5
et sur ces 2 cellules il y a une liste deroulante ..en b5,on choisit le
type de processus et en b12 ,on choisit le mois..c 'est a partir de ces 2
selections que les donnees choisis vont arriver et remplir la feuille
"entité1".. l'astuce de la macro etant de synchroniser ce choix avec
d'autres feuilles similaires..c'est à dire que le choix sur la feuille
"entité 1" va se reporter instantanement sur les autres feuilles
"entité2","entité3"..jusqu'a"entité7"...c'est pourquoi il faut absolument
garder workbook plutot que worksheet afin aussi d'eviter des modifications
multiples...
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
"National", "Avignon", "Brest", "Limoges", "Lisieux", "Paris_E", "IDF",
"St-Omer"
et sur les tableaux :
- Ressources et moyens (Run)
- Indicateurs d'activité
- Indicateurs de résultats
- Efficience du processus "
"St-Omer"(il n'y a ici,que "National", "Avignon" suite au fichier restreint volontairement car limité à 500ko)
et la 2eme,aux feuilles du type "impayés impayés_GP_du_fixe", "impayés
*ReBonjour ALF*,
En fait, tu veux que ta macro traivaille sur les feuilles :
"National", "Avignon", "Brest", "Limoges", "Lisieux", "Paris_E", "IDF",
"St-Omer"
et sur les tableaux :
- Ressources et moyens (Run)
- Indicateurs d'activité
- Indicateurs de résultats
- Efficience du processus
C'est tout ? Dis nous si c'est çà ;o)
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
"National", "Avignon", "Brest", "Limoges", "Lisieux", "Paris_E", "IDF",
"St-Omer"
et sur les tableaux :
- Ressources et moyens (Run)
- Indicateurs d'activité
- Indicateurs de résultats
- Efficience du processus "
"St-Omer"(il n'y a ici,que "National", "Avignon" suite au fichier restreint volontairement car limité à 500ko)
et la 2eme,aux feuilles du type "impayés impayés_GP_du_fixe", "impayés
*ReBonjour ALF*,
En fait, tu veux que ta macro traivaille sur les feuilles :
"National", "Avignon", "Brest", "Limoges", "Lisieux", "Paris_E", "IDF",
"St-Omer"
et sur les tableaux :
- Ressources et moyens (Run)
- Indicateurs d'activité
- Indicateurs de résultats
- Efficience du processus
C'est tout ? Dis nous si c'est çà ;o)
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
"National", "Avignon", "Brest", "Limoges", "Lisieux", "Paris_E", "IDF",
"St-Omer"
et sur les tableaux :
- Ressources et moyens (Run)
- Indicateurs d'activité
- Indicateurs de résultats
- Efficience du processus "
"St-Omer"(il n'y a ici,que "National", "Avignon" suite au fichier restreint volontairement car limité à 500ko)
et la 2eme,aux feuilles du type "impayés impayés_GP_du_fixe", "impayés
*ReBonjour ALF*,
En fait, tu veux que ta macro traivaille sur les feuilles :
"National", "Avignon", "Brest", "Limoges", "Lisieux", "Paris_E", "IDF",
"St-Omer"
et sur les tableaux :
- Ressources et moyens (Run)
- Indicateurs d'activité
- Indicateurs de résultats
- Efficience du processus
C'est tout ? Dis nous si c'est çà ;o)
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O