Filtre automatique et Mise en Forme conditionnel dans VBA
Bonjour à tous,
J'ai tant bien que mal réussi a faire la macro que je souhaitais (tri des données brutes, suppression des "Pas" si autre imputation, crée deux tableaux dynamiques a partir de ces données triés) mais il me reste deux problèmes tres facile à résoudre pour des "pros"...
Le 1er est un probleme avec le filtre automatique (voir le bug dans le fichier joint).
J'aimerais tout simplement trié mes données de l'onglet "DonneesBrutes" par ordre décroissant...
Le 2eme est à la fin de la macro (je n'ai rien écrit dessus encore), j'aimerais mettre une mise en forme automatique UNIQUEMENT sur les données allant du R01 au R04 (surligné les 10% valeurs plus importantes, sur les 2 TCT). Mon probleme réside dans la définition de la zone car la zone ne sera jamais de même taille (il peut avoir plusieurs imputation différentes, pas tous les pas concernées,...).
Il faut donc arriver à définir la zone de résultats dans les TCT pour les imputations R01 à R04.
Si ce n'est pas clair, n'hésitez pas à me demander!
Merci beaucoup de votre aide
Bonsoir,
J'ai 3 points à voir avec toi pour comprendre ce que tu souhaites
Problème 1 :
Trier les données par ordre décroissant
----> Quel est le critère à retenir pour le tri (ou encore le champ ou la colonne)?
Problème 2 :
----> A quoi correspondent les termes R01 et R04?
Question :
----> Que signifie TCT
Cordialement
Bonjour Jean Eric,
Voici les réponses:
1/ Le critère de tri est la durée. Je voudrais avoir les arrêts les plus long en premiers.
2/ R01, R02, R03, R04 sont des types d'imputations. C'est sur quoi je voudrais travailler.
Lance la macro tu vas voir, en gros pour chaque numéro de pas correspond une imputation différente.
3/ Je voulais dire TCD pour Tableau Croisé Dynamique (les deux qui se crée avec la macro)
En esperant que tu pourras m'aider
Re,
Au sujet des 10% valeurs plus importantes,
1) Les 10 valeurs les plus importantes ou les valeurs supérieures de 10% au total du TCD?
2) Est-ce sur le total du TCD ou par champ (R01, R02, etc...)
Ci-dessous, code du 1er. TCD à insérer dans un module.
Qu'en penses-tu?
Cordialemet
Public Sub Créer_TCD_1()
Dim Plage As Range
Dim PTCache As PivotCache
Dim PT As PivotTable
Dim p As PivotField
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
On Error Resume Next
Worksheets("Arrêt").Delete
On Error Resume Next
Set Plage = Range("A1").CurrentRegion
Set PTCache = ActiveWorkbook.PivotCaches.Add( _
SourceType:=xlDatabase, SourceData:=Plage)
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Arrêt"
Set PT = PTCache.CreatePivotTable(tabledestination:=Range("A1"), tablename:="TCD1")
With PT
.PivotFields("Imputation").Orientation = xlColumnField
.PivotFields("Pas").Orientation = xlRowField
.PivotFields("Côté").Orientation = xlRowField
.PivotFields("Durée").Orientation = xlDataField
With .PivotFields("Nombre de durée")
.Caption = "Somme des durées "
.Function = xlSum
.NumberFormat = "hh:mm:ss"
End With
With .PivotFields("Imputation")
.PivotItems("MAI").Visible = False
.PivotItems("Eq C").Visible = False
.PivotItems("LOG").Visible = False
End With
With .PivotFields
For Each p In ActiveSheet.PivotTables(1).PivotFields
If p.Orientation = 1 Then p.Subtotals = Array(False, False, False, False, _
False, False, False, False, False, False, False, False)
Next p
End With
.RowGrand = False
End WithRe,
Ci-joint fichier TCD 1 avec format personnalisée pour les valeurs supérieures à 10% du total par champ (RO1, R02, etc...)
Lancer :
1 - TCD_1
2 -EssaiCouleur
J'attends tes remarques
Cordialement
Tout d'abord merci pour ton aide et désolé pour ma réponse tardive, j'ai eu un problème d'ordi!
Ta macro "Couleur" semble en effet bien fonctionner.
Par contre, je vais essayer de l'integrer a ma macro initiale car il j'aimerais que tout se fasse d'un coup. En gros, je lance 1 fois et ensuite tous mes résultats s'affichent..
Je reviendrais sur ce forum en cas de probleme