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

  • Initiateur de la discussion Initiateur de la discussion Clema
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 !
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour