Graphique croisé dynamique
Fermé
Stikmou
-
25 août 2014 à 15:53
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 - 26 août 2014 à 15:52
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 - 26 août 2014 à 15:52
A voir également:
- Graphique croisé dynamique
- Tableau croisé dynamique - Guide
- Changer carte graphique - Guide
- Liste déroulante dynamique excel - Guide
- Impossible d'afficher le rapport de tableau croisé dynamique sur un rapport existant - Forum Bureautique
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
2 réponses
rEVOLV3r
Messages postés
223
Date d'inscription
jeudi 12 août 2010
Statut
Membre
Dernière intervention
21 septembre 2022
28
26 août 2014 à 15:10
26 août 2014 à 15:10
Bonjour,
Oui c'est totalement possible et le graphique croisé dynamique est une très bonne solution.
Les graphiques croisés dynamiques sont...dynamiques. Il suffit dans changer un champ par exemple afin d'avoir plus de données à visualiser. Regarde sur internet il y a plein de bons tuto pour apprendre à les comprendre et à en faire.
Après pour ce qui est de l'automatisation, il faut passer par macro et là ca se complique. Je peux vous donner des exmples de codes que j'ai créé afin de faire changer automatiquement les pivots du graphiques selon un nombre de caractéristiques dynamiques. Vous pouvze biensur l'adapter simplement si vous vous y connaissez un peu en vba.
Mais je n'aurai pas le temps de vous expliquer ceci en détail.
Bonne journée
Oui c'est totalement possible et le graphique croisé dynamique est une très bonne solution.
Les graphiques croisés dynamiques sont...dynamiques. Il suffit dans changer un champ par exemple afin d'avoir plus de données à visualiser. Regarde sur internet il y a plein de bons tuto pour apprendre à les comprendre et à en faire.
Après pour ce qui est de l'automatisation, il faut passer par macro et là ca se complique. Je peux vous donner des exmples de codes que j'ai créé afin de faire changer automatiquement les pivots du graphiques selon un nombre de caractéristiques dynamiques. Vous pouvze biensur l'adapter simplement si vous vous y connaissez un peu en vba.
Mais je n'aurai pas le temps de vous expliquer ceci en détail.
Bonne journée
rEVOLV3r
Messages postés
223
Date d'inscription
jeudi 12 août 2010
Statut
Membre
Dernière intervention
21 septembre 2022
28
26 août 2014 à 15:52
26 août 2014 à 15:52
Bonjour,
alors voici la macro que j'ai créée. J'ai comme pivot principal : NOM_CARACTERISTIQUE_CONTROLE et comme second pivot : CD_MACHINE. Les noms des pivots sont entrés dans un tableaux (array) nommé TableCaractControled(w). Après je fais varier les pivots de CD_MACHINE pour chaque pivots de TableCaractControled(w) en ayant des tests sur le nom du pivot CD_MACHINE.
Lorsque je prends le noms des pivots pour les inclure dans les tableaux, c'est fait par macro et ** délimite les 3 types : manuel auto et WA donc a modifier et a adapter ;-)
voila :
______
Demandez si vous avez des questions.
alors voici la macro que j'ai créée. J'ai comme pivot principal : NOM_CARACTERISTIQUE_CONTROLE et comme second pivot : CD_MACHINE. Les noms des pivots sont entrés dans un tableaux (array) nommé TableCaractControled(w). Après je fais varier les pivots de CD_MACHINE pour chaque pivots de TableCaractControled(w) en ayant des tests sur le nom du pivot CD_MACHINE.
Lorsque je prends le noms des pivots pour les inclure dans les tableaux, c'est fait par macro et ** délimite les 3 types : manuel auto et WA donc a modifier et a adapter ;-)
voila :
______
Sub GCD_Choice_Copy_Paste()
Set CurrentOngletSheet = ActiveSheet
Dim n As Integer
Dim p As Integer
Dim monPivIt As Object
nbCellTOT = nbCellManu + nbCellAuto + nbCellWA
typeCarac = 1 '1 pour Manu, 2 pour Auto, 3 pour WA
flag = 0
ww = 0
For w = 0 To nbCellTOT - 1 'Attention changer ici nbCell
'MsgBox (TableCaractControled(w))
If Not TableCaractControled(w) = "**" Then
'Filtre de la mesure
CurrentOngletSheet.PivotTables(1).PivotFields("NOM_CARACTERISTIQUE_CONTROLE").ClearAllFilters
CurrentOngletSheet.PivotTables(1).PivotFields("NOM_CARACTERISTIQUE_CONTROLE").CurrentPage = TableCaractControled(w)
'Filtre de la machine pour le type de caractéristiques
'ActiveSheet.PivotTables(1).PivotFields("CD_MACHINE").CurrentPage = "(All)"
Select Case typeCarac
Case 1 'Manuel : commence par 3 digit !exclusivement!
If flag = 0 Then
With ActiveSheet.PivotTables(1).PivotFields("CD_MACHINE")
For Each monPivIt In .PivotItems
On Error Resume Next
monPivIt.Visible = True
Next
For Each monPivIt In .PivotItems
If IsNumeric(Left(monPivIt.Name, 3)) And Not IsNumeric(Mid(monPivIt.Name, 4, 1)) Then
monPivIt.Visible = True
'MsgBox (typeCarac & " " & monPivIt.Name & " visible")
Else
On Error Resume Next
monPivIt.Visible = False
If Err.Number <> 0 Then
MsgBox ("Erreur de pivot CD_MACHINE :" & monPivIt.Name & Chr(10) _
& "Caractéristique : " & TableCaractControled(w))
End If
'MsgBox (typeCarac & " " & monPivIt.Name & " invisible")
End If
Next
End With
flag = 1
End If
Case 2 'Auto : commence par 4 digit !exclusivement!
If flag = 0 Then
With ActiveSheet.PivotTables(1).PivotFields("CD_MACHINE")
For Each monPivIt In .PivotItems
On Error Resume Next
monPivIt.Visible = True
Next
For Each monPivIt In .PivotItems
If IsNumeric(Left(monPivIt.Name, 4)) And IsNumeric(Mid(monPivIt.Name, 4, 1)) Then
monPivIt.Visible = True
'MsgBox (typeCarac & " " & monPivIt.Name & " visible")
Else
On Error Resume Next
monPivIt.Visible = False
If Err.Number <> 0 Then
MsgBox ("Erreur de pivot CD_MACHINE :" & monPivIt.Name & Chr(10) _
& "Caractéristique : " & TableCaractControled(w))
End If
End If
Next
End With
flag = 1
End If
Case 3 'WA : commence par "Contrôle" !exclusivement!
If flag = 0 Then
With ActiveSheet.PivotTables(1).PivotFields("CD_MACHINE")
For Each monPivIt In .PivotItems
On Error Resume Next
monPivIt.Visible = True
Next
For Each monPivIt In .PivotItems
If monPivIt.Name Like "*Contrôle*" Then
monPivIt.Visible = True
'MsgBox (typeCarac & " " & monPivIt.Name & " visible")
Else
On Error Resume Next
monPivIt.Visible = False
If Err.Number <> 0 Then
MsgBox ("Erreur de pivot CD_MACHINE :" & monPivIt.Name & Chr(10) _
& "Caractéristique : " & TableCaractControled(w))
End If
End If
Next
End With
flag = 1
End If
End Select
CurrentOngletSheet.ChartObjects(1).CopyPicture
GraphSheet.Activate
'calcul du futur emplacement des graphiques
Call CalculCells
GraphSheet.Paste
'MsgBox (w & " " & ww)
CurrentOngletSheet.Activate
'variable du nombre de graphique w - les **
ww = ww + 1
ElseIf TableCaractControled(w) = "**" Then
typeCarac = typeCarac + 1
flag = 0
ww = 0
End If
Next w
End Sub
Demandez si vous avez des questions.