mise en forme conditionnelle et tableau croisé

Le
Roberto
Bonjour,
Y-a-t'il moyen d'appliquer une mise en forme conditionnelle sur un tableau
croisé dynamique qui s'étendrait à l'actualisation du tableau, sur les
éléments qui se seraient ajoutés en dehors de la plage définie au départ de
la mise en place du format conditionnel.

Merci

Cordialement
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #22551231
Bonjour,

Si une plage doit s'étendre à plus de lignes ou colonnes a priori je
ne dois rien avoir autour sinon on va l'écraser
j'essayerai donc simplement d'appliquer ma MEFC à la plage
potentiellement maximale de mon tableau.

Cordialement.

--
LSteph


On 8 sep, 15:30, "Roberto"
Bonjour,
Y-a-t'il moyen d'appliquer une mise en forme conditionnelle sur un tablea u
croisé dynamique qui s'étendrait à l'actualisation du tableau, sur les
éléments qui se seraient ajoutés en dehors de la plage définie au départ de
la mise en place du format conditionnel.

Merci

Cordialement
michdenis
Le #22551221
Bonjour,

Dans le module de la feuille où est le TDC, ajoute cette procédure.
À chaque fois que tu mets à jour ton TDC, la procédure est déclenchée.
La mise à forme conditionnelle est mise à jour sur l'ensemble de la plage
du champ retenu.
Évidemment, tu devras modifier un peu la procédure pour qu'elle
reflète l'environnement de ton application.

'-------------------------------
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

Dim Pt As PivotTable, Pf As PivotField, X As String
'Tu peux remplacer le numéro du TDC de la feuille
'par son nom
Set Pt = Me.PivotTables(1)

'Test pour vérifier que la mise à jour s'adresse au bon TDC
'de la feuille si tu as plus d'un TDC dans cette dernière.
If Pt.Name = Target.Name Then
'Tu peux remplacer le numéro du champ par son nom
Set Pf = Pt.PivotFields(1)
'X contient l'adresse de la plage du champ
X = Pf.DataRange.Offset(, 1).Address
With Me.Range(X)
'Supprime l'ancienne mise en forme conditionnelle
.FormatConditions.Delete
'Ajoute la nouvelle mise en forme conditionnelle
With .FormatConditions
.Add Type:=xlExpression, Formula1:="=$B$6>5"
End With
'Le format de la mise en forme conditionnelle
With .FormatConditions(1).Font
.Bold = True
.Italic = False
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0.399945066682943
End With
End With
End If
End Sub
'-------------------------------

--
MichD
--------------------------------------------


"Roberto" 4c87900c$0$5389$
Bonjour,
Y-a-t'il moyen d'appliquer une mise en forme conditionnelle sur un tableau
croisé dynamique qui s'étendrait à l'actualisation du tableau, sur les
éléments qui se seraient ajoutés en dehors de la plage définie au départ de
la mise en place du format conditionnel.

Merci

Cordialement
DanielCo
Le #22552001
Bonjour.
Regarde le fichier suivant :
http://www.cijoint.fr/cjlink.php?file=cj201009/cijIPgp2EZ.pdf
C'est en anglais, mais il y a des dessins. C'est ppour XL2007 et
postérieur.
Cordialement.
Daniel


Bonjour,
Y-a-t'il moyen d'appliquer une mise en forme conditionnelle sur un tableau
croisé dynamique qui s'étendrait à l'actualisation du tableau, sur les
éléments qui se seraient ajoutés en dehors de la plage définie au départ de
la mise en place du format conditionnel.

Merci

Cordialement
LSteph
Le #22552391
Evidemment si on peut faire très compliqué pourquoi faire simple?

On 8 sep, 16:35, "michdenis"
Bonjour,

Dans le module de la feuille où est le TDC, ajoute cette procédure.
À chaque fois que tu mets à jour ton TDC, la procédure est déclen chée.
La mise à forme conditionnelle est mise à jour sur l'ensemble de la p lage
du champ retenu.
Évidemment, tu devras modifier un peu la procédure pour qu'elle
reflète l'environnement de ton application.

'-------------------------------
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

Dim Pt As PivotTable, Pf As PivotField, X As String
'Tu peux remplacer le numéro du TDC de la feuille
'par son nom
Set Pt = Me.PivotTables(1)

'Test pour vérifier que la mise à jour s'adresse au bon TDC
'de la feuille si tu as plus d'un TDC dans cette dernière.
If Pt.Name = Target.Name Then
    'Tu peux remplacer le numéro du champ par son nom
    Set Pf = Pt.PivotFields(1)
    'X contient l'adresse de la plage du champ
    X = Pf.DataRange.Offset(, 1).Address
    With Me.Range(X)
        'Supprime l'ancienne mise en forme conditionnelle
        .FormatConditions.Delete
        'Ajoute la nouvelle mise en forme conditionnelle
        With .FormatConditions
            .Add Type:=xlExpression, Formula1:="=$B$6>5 "
        End With
        'Le format de la mise en forme conditionnelle
        With .FormatConditions(1).Font
            .Bold = True
            .Italic = False
            .ThemeColor = xlThemeColorLight2
            .TintAndShade = 0.399945066682943
        End With
    End With
End If
End Sub
'-------------------------------

--
MichD
--------------------------------------------

"Roberto" 4c87900c$0$5389$
Bonjour,
Y-a-t'il moyen d'appliquer une mise en forme conditionnelle sur un tablea u
croisé dynamique qui s'étendrait à l'actualisation du tableau, sur les
éléments qui se seraient ajoutés en dehors de la plage définie au départ de
la mise en place du format conditionnel.

Merci

Cordialement
michdenis
Le #22552461
On peut toujours simplifier... au lieu de refaire la mise en forme
conditionnelle dans le code, on peut simplement réaffecter l'étendue
de la plage de cellules d'un "Nom" (insertion / nom / définir) que l'on
a utilisé dans la mise en forme conditionnelle...

'------------------------
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

Dim Pt As PivotTable, Pf As PivotField, X As String
'Tu peux remplacer le numéro du TDC de la feuille
'par son nom
Set Pt = Me.PivotTables(1)

'Test pour vérifier que la mise à jour s'adresse au bon TDC
'de la feuille si tu as plus d'un TDC dans cette dernière.
If Pt.Name = Target.Name Then
'Tu peux remplacer le numéro du champ par son nom
Set Pf = Pt.PivotFields(1)
Pf.DataRange.Name ="NomDeLaPlageDeCellules"
End If
End Sub
'-------------------------------

--
MichD
--------------------------------------------


"LSteph"
Evidemment si on peut faire très compliqué pourquoi faire simple?

On 8 sep, 16:35, "michdenis"
Bonjour,

Dans le module de la feuille où est le TDC, ajoute cette procédure.
À chaque fois que tu mets à jour ton TDC, la procédure est déclenchée.
La mise à forme conditionnelle est mise à jour sur l'ensemble de la plage
du champ retenu.
Évidemment, tu devras modifier un peu la procédure pour qu'elle
reflète l'environnement de ton application.

'-------------------------------
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

Dim Pt As PivotTable, Pf As PivotField, X As String
'Tu peux remplacer le numéro du TDC de la feuille
'par son nom
Set Pt = Me.PivotTables(1)

'Test pour vérifier que la mise à jour s'adresse au bon TDC
'de la feuille si tu as plus d'un TDC dans cette dernière.
If Pt.Name = Target.Name Then
'Tu peux remplacer le numéro du champ par son nom
Set Pf = Pt.PivotFields(1)
'X contient l'adresse de la plage du champ
X = Pf.DataRange.Offset(, 1).Address
With Me.Range(X)
'Supprime l'ancienne mise en forme conditionnelle
.FormatConditions.Delete
'Ajoute la nouvelle mise en forme conditionnelle
With .FormatConditions
.Add Type:=xlExpression, Formula1:="=$B$6>5"
End With
'Le format de la mise en forme conditionnelle
With .FormatConditions(1).Font
.Bold = True
.Italic = False
.ThemeColor = xlThemeColorLight2
.TintAndShade = 0.399945066682943
End With
End With
End If
End Sub
'-------------------------------

--
MichD
--------------------------------------------

"Roberto" 4c87900c$0$5389$
Bonjour,
Y-a-t'il moyen d'appliquer une mise en forme conditionnelle sur un tableau
croisé dynamique qui s'étendrait à l'actualisation du tableau, sur les
éléments qui se seraient ajoutés en dehors de la plage définie au départ de
la mise en place du format conditionnel.

Merci

Cordialement
LSteph
Le #22553461
;o) Non plus simplement cette solution que j'indiquais .. sans avoir
besoin de code ni verifier ceci:

'de la feuille si tu as plus d'un TDC dans cette dernière



Si Roberto à un TCD en A:E 1:50 et qu'il sait que son tcd pourrait
même aller jusqu'en X500
Il n'est tout de même pas fou et ne va pas mettre un second tableau
dans la même plage

D'où cette suggestion:
Appliquer la MEFC à la plage maximale du tcd soit dans l'exemple
a1:x500

Cordialement.

--
LSteph

On 8 sep, 21:11, "michdenis"
On peut toujours simplifier... au lieu de refaire la mise en forme
conditionnelle dans le code, on peut simplement réaffecter l'étendue
de la plage de cellules d'un "Nom" (insertion / nom / définir) que l'on
a utilisé dans la mise en forme conditionnelle...

'------------------------
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

Dim Pt As PivotTable, Pf As PivotField, X As String
'Tu peux remplacer le numéro du TDC de la feuille
'par son nom
Set Pt = Me.PivotTables(1)

'Test pour vérifier que la mise à jour s'adresse au bon TDC
'de la feuille si tu as plus d'un TDC dans cette dernière.
If Pt.Name = Target.Name Then
    'Tu peux remplacer le numéro du champ par son nom
    Set Pf = Pt.PivotFields(1)
    Pf.DataRange.Name ="NomDeLaPlageDeCellules"
End If
End Sub
'-------------------------------

--
MichD
--------------------------------------------

"LSteph"
Evidemment si on peut faire très compliqué pourquoi faire simple?

On 8 sep, 16:35, "michdenis"


> Bonjour,

> Dans le module de la feuille où est le TDC, ajoute cette procédure.
> À chaque fois que tu mets à jour ton TDC, la procédure est décl enchée.
> La mise à forme conditionnelle est mise à jour sur l'ensemble de la plage
> du champ retenu.
> Évidemment, tu devras modifier un peu la procédure pour qu'elle
> reflète l'environnement de ton application.

> '-------------------------------
> Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

> Dim Pt As PivotTable, Pf As PivotField, X As String
> 'Tu peux remplacer le numéro du TDC de la feuille
> 'par son nom
> Set Pt = Me.PivotTables(1)

> 'Test pour vérifier que la mise à jour s'adresse au bon TDC
> 'de la feuille si tu as plus d'un TDC dans cette dernière.
> If Pt.Name = Target.Name Then
>     'Tu peux remplacer le numéro du champ par son nom
>     Set Pf = Pt.PivotFields(1)
>     'X contient l'adresse de la plage du champ
>     X = Pf.DataRange.Offset(, 1).Address
>     With Me.Range(X)
>         'Supprime l'ancienne mise en forme conditionnelle
>         .FormatConditions.Delete
>         'Ajoute la nouvelle mise en forme conditionnelle
>         With .FormatConditions
>             .Add Type:=xlExpression, Formula1:="=$B$6 >5"
>         End With
>         'Le format de la mise en forme conditionnelle
>         With .FormatConditions(1).Font
>             .Bold = True
>             .Italic = False
>             .ThemeColor = xlThemeColorLight2
>             .TintAndShade = 0.399945066682943
>         End With
>     End With
> End If
> End Sub
> '-------------------------------

> --
> MichD
> --------------------------------------------

> "Roberto" > 4c87900c$0$5389$
> Bonjour,
> Y-a-t'il moyen d'appliquer une mise en forme conditionnelle sur un tabl eau
> croisé dynamique qui s'étendrait à l'actualisation du tableau, su r les
> éléments qui se seraient ajoutés en dehors de la plage définie au départ de
> la mise en place du format conditionnel.

> Merci

> Cordialement- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
Roberto
Le #22554141
Merci beaucoup pour toutes vos réponses.

Très cordialement

Roberto


"Roberto" discussion : 4c87900c$0$5389$
Bonjour,
Y-a-t'il moyen d'appliquer une mise en forme conditionnelle sur un tableau
croisé dynamique qui s'étendrait à l'actualisation du tableau, sur les
éléments qui se seraient ajoutés en dehors de la plage définie au départ
de la mise en place du format conditionnel.

Merci

Cordialement



Roberto
Le #22555841
Bonjour,

Merci pour vos réponses, mais Daniel ,pourrais-tu m'expliquer davantage la
syntaxe de
la formule :

- L'adresse dans la boite de dialogue dans le champ Apply Rule to : est R5C7
ça correspond à quelle cellule dans le TCD de l'exemple ?
- Dans la formule =RC/RC[-1]>1.1 - RC c'est la colonne RC je suppose ?
- Les crochets et le point comme séparateur décimal sont-ils le fait de
Version anglaise ?

Merci




"Roberto" discussion : 4c87900c$0$5389$
Bonjour,
Y-a-t'il moyen d'appliquer une mise en forme conditionnelle sur un tableau
croisé dynamique qui s'étendrait à l'actualisation du tableau, sur les
éléments qui se seraient ajoutés en dehors de la plage définie au départ
de la mise en place du format conditionnel.

Merci

Cordialement



DanielCo
Le #22557601
Ceci dit, tu peux utiliser une formule en références A1.
Daniel


Bonjour,

Merci pour vos réponses, mais Daniel ,pourrais-tu m'expliquer davantage la
syntaxe de
la formule :

- L'adresse dans la boite de dialogue dans le champ Apply Rule to : est R5C7
ça correspond à quelle cellule dans le TCD de l'exemple ?
- Dans la formule =RC/RC[-1]>1.1 - RC c'est la colonne RC je suppose ?
- Les crochets et le point comme séparateur décimal sont-ils le fait de
Version anglaise ?

Merci




"Roberto" discussion : 4c87900c$0$5389$
Bonjour,
Y-a-t'il moyen d'appliquer une mise en forme conditionnelle sur un tableau
croisé dynamique qui s'étendrait à l'actualisation du tableau, sur les
éléments qui se seraient ajoutés en dehors de la plage définie au départ de
la mise en place du format conditionnel.

Merci

Cordialement



Roberto
Le #22557761
Ok, merci encore, mais dans cet exemple le format conditionnel s'applique
sur la même plage de cellules que s'applique la condition or, dans mon cas,
je veux appliquer le format conditionnel sur la 1ère colonne de mon TCD qui
contient les éléments en ligne du tableau, ces élément sont des noms de
vendeurs et la condition s'applique sur les résultats qu'ils ont obtenus et
qui sont dans la colonne total du tableau, les éléments en colonne sont des
départements. Ces noms de vendeurs en lignes sont triés par ordre alpha >,
le dernier de la liste s'appelle Robert, si j'ajoute dans ma base TOTO,
après actualisation du tableau, TOTO vient s'ajouter en fin de liste en
dehors de la plage définie au départ pour la création du format
conditionnel.

Je cherche une solution hors VBA, c'est plus pour le jeu intellectuel que
pour améliorer l'interprétation des résultats.

Merci encore

Roberto

"DanielCo" discussion : i6d9g7$1ea$
Ceci dit, tu peux utiliser une formule en références A1.
Daniel


Bonjour,

Merci pour vos réponses, mais Daniel ,pourrais-tu m'expliquer davantage
la syntaxe de
la formule :

- L'adresse dans la boite de dialogue dans le champ Apply Rule to : est
R5C7
ça correspond à quelle cellule dans le TCD de l'exemple ?
- Dans la formule =RC/RC[-1]>1.1 - RC c'est la colonne RC je suppose ?
- Les crochets et le point comme séparateur décimal sont-ils le fait de
Version anglaise ?

Merci




"Roberto" de discussion : 4c87900c$0$5389$
Bonjour,
Y-a-t'il moyen d'appliquer une mise en forme conditionnelle sur un
tableau croisé dynamique qui s'étendrait à l'actualisation du tableau,
sur les éléments qui se seraient ajoutés en dehors de la plage définie
au départ de la mise en place du format conditionnel.

Merci

Cordialement









Publicité
Poster une réponse
Anonyme