XL 2016 [Controler filtre TDC par VBA] [Imprimer TABLEAU BORD usine]

Clema

XLDnaute Nouveau
Bonjour à tous,

J'ai réalisé un dashboard de productivité par opérateur par des requêtes PowerQuery et présenté dans des TDC.


J'ai une table qui me donne le chef de l'opérateur. Je souhaiterais que le chef sélectionne son nom dans une liste et appuie sur un bouton "Impression" et tous les dashboard de productivité de son équipe s'impriment en masse.

Toutefois je n'arrive pas à controle le TDC ... Voici mon code :


VB:
Sub MACRO()
'
' IMPRESSION_FILTRE Macro
'
Dim imprimante As String, ImprimanteInitiale As String
ImprimanteInitiale = Application.ActivePrinter
Application.Dialogs(xlDialogPrinterSetup).Show
imprimante = Application.ActivePrinter

Dim result As String
Dim FL1 As Worksheet, Cell As Range, NoCol As Integer
Dim DerLig As Long, Var As Variant
Dim i As Long, Cell As Long


'Instance de la feuille qui permet d'utiliser FL1 partout dans
'le code à la place du nom de la feuille
Set FL1 = Worksheets("USERS_PREPA")

'MsgBox imprimante
Application.ActivePrinter = ImprimanteInitiale

'Détermine la dernière ligne renseignée de la feuille de calculs

DerLig = Split(FL1.UsedRange.Address, "$")(4)
        
'Fixe le N° de la colonne à lire avec le nom du chef
NoCol = 4

    'Pour chaque ligne de la colonne ou sont les chefs d'equipe jusqu'à la fin
    For i = 1 To DerLig
    'Si le chef d'equipe est le bon .. En G4 est le nom du chef d'équipe et en la colonne 4 est tous les chefs d'équipe par opérateur
        If Cells(i, 4) = Range("G4") Then
            'Prendre la valeur de l'operateur à la colonne 2
            Var = FL1.Cells(i, 2)
            
            'Aller sur le tableau de bord de productivite
            Worksheets("TABLEAU DE BORD").Activate
            'Changez le nom de la personne filtrée sur le TDC
            ActiveWorkbook.SlicerCaches("Segment_NOM1").VisibleSlicerItemsList = Array("[USERS_PREPA].[NOM].&[Var]")
            
            'Test
            MsgBox "The variable is " + Var
            
        End If
    Next
    i = i + 1
    Set FL1 = Nothing
End Sub


Merci beaucoup !
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Essayez :
VB:
= Array("[USERS_PREPA].[NOM]." & "[Var]")

Et déclarez Var en tant que string, testez son contenu avant de l'utiliser.

Voir un tutoriel sur la concaténation de chaînes de caractères.

Cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 729
Messages
2 081 971
Membres
101 852
dernier inscrit
dthi16088