Bonjour à tous,
Une bonne âme pourrait peut être m'aider à finaliser une macro qui me donne du fil à retordre.
Voici le sujet :
J'utilise Business Intelligent (BI pour les intimes) dont les résultats sortent sous forme de tableaux croisés dynamiques.
J'ai pondu une macro qui permet de modifier en série les filtres des rapports. Ainsi même si j'ai 50 tableaux croisés différents, ma macro modifie le filtre demandé de l'ensemble des tableaux sur la feuille.
Par contre, je dois encore à chaque fois ouvrir la macro pour modifier le nom du filtre que je veux obtenir.
C'est cette dernière étape dont je voudrais me passer. C'est à dire, entrer la valeur que je veux avoir dans chacun des filtres et valider ma macro pour retrouver cette valeur dans mes filtres.
Je sais le faire dans un tableau croisé "classique" d'Excel, mais lorsque c'est celui d'un fichier BI c'est plus compliqué.
Voilà pourquoi je me permet de solliciter votre aide.
Voici la macro :
Sub ModifierSecteurBIdeux()
'Etape 1 : Pour indiquer le nombre de tableaux croisés à modifier sur la feuille
Dim i As Integer
Application.ScreenUpdating = False
For i = 1 To 2
'Etape 2 : Pour mettre à vide le filtre (ici le code secteur appelé Code)
ActiveSheet.PivotTables("Tableau croisé dynamique" & i).PivotFields( _
"[Salesperson Purchaser].[Global Dimension 1 Code].[Global Dimension 1 Code]"). _
ClearAllFilters
'Etape 3 : Indique la valeur à mettre dans le filtre (ici le code secteur appelé Code)
ActiveSheet.PivotTables("Tableau croisé dynamique" & i).PivotFields( _
"[Salesperson Purchaser].[Global Dimension 1 Code].[Global Dimension 1 Code]"). _
CurrentPageName = "[Salesperson Purchaser].[Global Dimension 1 Code].&[FR-333]"
Next
End Sub
Il faudrait donc parvenir à remplacer sur la dernière ligne le Code FR-333 (en rouge) par une valeur se trouvant dans une case de ma feuille Excel
J'espère avoir été clair dans ma requête.
Merci par avance à ceux qui ce seront gratté la tête pour tenter de me venir en aide.