IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

TCD et Segments


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Technicienne Informatique
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicienne Informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut TCD et Segments
    Bonjour,

    J'ai un TCD avec un segment sur le nom d'agent et je souhaiterais automatiser à partir d'un bouton l'envoie d'un mail contenant le résultat à l'agent concerné.
    Je ne suis pas une experte dans le domaine donc en gros avec mon segment lorsque que je sélectionne mon agent "DUPONT" j'ai mon tableau récapitulatif le concernant, et celui-ci doit lui être envoyé par mail. Pour ne pas avoir à répéter la tâche pour chaque agents je souhaiterais automatiser tout cela.

    Merci de votre aide

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    Si le nombre de client n'est pas pléthorique, il serait plus simple de placer le nom du client en zone de filtre, d'utiliser la fonctionnalité TCD qui permet de générer autant d'onglet que de clients avec leur TCD puis de faire une boucle sur les onglets pour transmettre par mail.

    Sinon il faut une boucle par élément du segment dans la boucle d'envoi par mail.

    Cependant il faut intégrer quelque part le lien entre le nom et l'adresse mail et il serait plus prudent d'envoyer non pas le fichier ou l'onglet Excel avec un TCD mais un pdf...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Membre à l'essai
    Femme Profil pro
    Technicienne Informatique
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicienne Informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Merci pour la réponse.

    Le nombre d'agent est assez important donc je pense qu'il vaut mieux privilégier de faire une boucle par élément du segment, et c'est sur ce point que je ne sais pas procéder.
    Pour le lien entre le nom est l'adresse mail ce n'est pas un problème car on a déjà un fichier Excel qui le gère.

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Membre à l'essai
    Femme Profil pro
    Technicienne Informatique
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicienne Informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    J'ai commencé à regardé les différentes conversations liées aux TCD et Segment mais j'avoue que tout cela étant nouveau pour moi je suis un peu perdue.

    J'ai une feuille Excel avec toutes mes données à traiter cette feuille me sert de sources de données pour mes TCD.

    Dans une première feuille Excel je veux avoir la synthèse pour mes agents niveau 1.
    J'ai un premier TCD qui fait la synthèse des anomalies pour l'agent de niveau 1
    Un 2ème TCD qui me donne les enregistrements pour l'anomalie 1
    un 3ème TCD qui mes donne les enregistrements pour l'anomalie2
    et enfin un 4ème TCD qui me donnes les enregistrements pour l'anomalie 3.

    Sur cette feuille j'ai un segment permettant de sélectionner le nom de mon agent de niveau 1 qui me met à jour mes 4 TCD.

    Ce que j'aimerais pouvoir réaliser de façon automatique à l'aide d'une macro c'est un peu ce que propose Excel avec les pages de Filtres de rapport de générer pour chaque agent de niveau 1 une feuille qui regroupe ces 4 TCD et qu'elle soit envoyé automatiquement par mail à l'agent concerné.

    Je ne trouve pas de cas identique au mien et je ne suis pas experte dans le domaine, ce que je souhaite faire n'est peut être pas faisable.

    En tout cas merci pour les informations.

  6. #6
    Membre à l'essai
    Femme Profil pro
    Technicienne Informatique
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicienne Informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Je reviens sur mon problème de macros sur mes segments. J'ai un peu avancé mais j'ai un soucis lors de la génération de ma feuille Excel à joindre à mon mail.
    Ma macro me génère bien une feuille par agent avec les données qui lui sont affectées cependant il garde à chaque fois les données des agents précédents.

    J'avais rajouter la ligne .ClearmanualFilter mais la macro plante à ce niveau.

    Merci pour vos réponses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    Sub Test2()
     
    Dim nom
     
    With ActiveWorkbook.SlicerCaches("Segment_Conseiller_LAIT1")
     
        For Each Iitem In ActiveWorkbook.SlicerCaches("Segment_Conseiller_LAIT1").SlicerItems
     
        nom = Iitem.Name
     
     
        .SlicerItems(nom).Selected = True
     
     
     
    ' VERIFIER SI DOSSIER TEMP EXISTANT SINON LE CREER
        If Dir("C:\Temp", vbDirectory) = "" Then MkDir ("C:\Temp")
        If Dir("C:\Temp\Recap_" & nom & ".xlsx") <> "" Then Kill ("C:\Temp\Recap_" & nom & ".xlsx")
     
        'COPIE ET SAUVEGARDE DE LA FEUILLE A ENVOYER
        Sheets(Array("TDC Bilan Conseillers")).Copy
        Sheets("TDC Bilan Conseillers").Select
        ActiveWorkbook.SaveAs Filename:="C:\Temp\Recap_" & nom & ".xlsx", _
            FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        ActiveWorkbook.Close
     
        'ENVOIE DU MAIL AVEC LA PIECE JOINTE
     
        Dim ol As New Outlook.Application
        Dim olmail As MailItem
        Dim currfile As String
        Set ol = New Outlook.Application
        Set olmail = ol.CreateItem(olMailItem)
        With olmail
            .To = "@"
            .Subject = "Prison Constat Alim"
            .Attachments.Add "C:\Temp\Recap_" & nom & ".xlsx"
            .Display
            .Send
        End With
     
        'SUPPRESSION DU FICHIER CREE POUR LE MAIL
        Kill ("C:\Temp\Recap_" & nom & ".xlsx")
     
         '.ClearManualFilter 
     
        Next
     
     End With
     
        'MSGBOX POUR INDIQUER QUE LE MAIL EST BIEN ENVOYER
        Sheets("TDC Bilan Conseillers").Select
     
        MsgBox ("Opération terminée")
        ThisWorkbook.Save
    End Sub

  7. #7
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    De façon générale : il faut commencer par .ClearManualFilter au début du With puis faire une boucle qui affiche un item et masque les autres donc une double boucle si c'est la liste du contenu du segment qui donne les noms :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        With ActiveWorkbook.SlicerCaches("Segment_Conseiller_LAIT1")
            .ClearManualFilter
            For i = 1 To .SlicerItems.Count
                    .SlicerItems(i).Selected = True
                For j = 1 To .SlicerItems.Count
                    If j <> i Then .SlicerItems(j).Selected = False
                Next j
     
                CODE MAIL
     
            Next i
            .ClearManualFilter
        End With
    Dans ton code, je ne vois qu'un Workbook qui est sauvegardé sous un autre nom puis fermé, envoyé et détruit. Le code devrait donc s'interrompre là !

    Tu dois exporter vers un autre Workbook...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  8. #8
    Membre à l'essai
    Femme Profil pro
    Technicienne Informatique
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicienne Informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Merci pour la réponse qui m'a permis de bien avancer cependant le premier .ClearManuelFilter tombe en erreur je l'ai donc supprimé pour que la macro s’exécute mais au bout du 8ème nom la macro s'arrête sur l'erreur suivante :

    "Erreur d’exécution '1004':
    Impossible d'afficher le rapport de tableau croisé dynamique sur un rapport existant."

    J'ai donc modifié ma macro pour enregistrer mon workwook au format pdf mais l'erreur se produit quand même sur la ligne ".SlicerItems(i).Selected = True".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    Sub test3()
    Dim nom
    Dim i As Integer
    Dim j As Integer
     
    With ActiveWorkbook.SlicerCaches("Segment_Conseiller_LAIT1")
            '.ClearManualFilter
            For i = 1 To .SlicerItems.Count
                    .SlicerItems(i).Selected = True
                For j = 1 To .SlicerItems.Count
                    If j <> i Then .SlicerItems(j).Selected = False
                Next j
     
        nom = .SlicerItems(i).Name
     
     
     
    ' VERIFIER SI DOSSIER TEMP EXISTANT SINON LE CREER
        If Dir("C:\Temp", vbDirectory) = "" Then MkDir ("C:\Temp")
        If Dir("C:\Temp\Recap_" & nom & ".pdf") <> "" Then Kill ("C:\Temp\Recap_" & nom & ".pdf")
     
    'COPIE DE LA FEUILLE EN PDF
     
        Sheets("TDC Bilan Conseillers").Select
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            "C:\Temp\Recap_" & nom & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
            :=False, OpenAfterPublish:=False
     
     
    'ENVOIE DU MAIL AVEC LA PIECE JOINTE
     
        Dim ol As New Outlook.Application
        Dim olmail As MailItem
        Dim currfile As String
        Dim mail
     
        Dim ligneA_agent As Long
        Dim num_ligne As Long, trouve As Boolean
        Dim resultat As String
     
        trouve = False
     
    'RECUPERATION DES INFORMATIONS POUR ENVOIE DU MAIL
     
        'RECHERCHE DU NOM DE L'AGENT DANS FEUILLE MAIL
        ligneA_agent = Feuil7.Range("A1").End(xlDown).Row
     
        For num_ligne = 1 To ligneA_agent
            If Feuil7.Range("A" & num_ligne) = .SlicerItems(i).Name Then trouve = True: Exit For
        Next
     
        mail = Feuil7.Range("B" & num_ligne)
     
        ' SI TROUVE EST FAUX SAISIE MANUELLE DE L'ADRESSE
        If Not trouve Then
     
            resultat = InputBox("Mail introuvable veuillez saisir une adresse mail valide", "Saisir adresse Mail")
            mail = resultat
     
     
        End If
     
        'ENVOIE DU MAIL
     
        Set ol = New Outlook.Application
        Set olmail = ol.CreateItem(olMailItem)
        With olmail
            .To = mail
            .Subject = "Prison Constat Alim"
            .Attachments.Add "C:\Temp\Recap_" & nom & ".pdf"
            .Display
            .Send
        End With
     
    'SUPPRESSION DU FICHIER CREER POUR LE MAIL
        Kill ("C:\Temp\Recap_" & nom & ".pdf")
     
            Next i
     
            .ClearManualFilter
        End With
     
        'MSGBOX POUR INDIQUER QUE LE TRAITEMENT EST TERMINE
        Sheets("TDC Bilan Conseillers").Select
     
        MsgBox ("Opération terminée")
        ThisWorkbook.Save
     
    End Sub

  9. #9
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    Erreur d’exécution '1004':
    Impossible d'afficher le rapport de tableau croisé dynamique sur un rapport existant.
    indique que tu as plusieurs TCD dans ton onglet et que ton TCD va déborder sur un autre TCD

    Pour faire ce genre de moulinette il est préférable d'avoir un TCD unique par onglet ou de les disposer de façon à éviter ce risque.

    Il n'est pas normal que .ClearManualFilter soit en erreur : quelle est l'erreur retournée ?
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  10. #10
    Membre à l'essai
    Femme Profil pro
    Technicienne Informatique
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicienne Informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    pour le premier .clearManualFilter j'avais exactement le même message d'erreur
    Erreur d’exécution '1004':
    Impossible d'afficher le rapport de tableau croisé dynamique sur un rapport existant.
    Mon onglet comporte 4 TCD dont un qui est au dessus des 3 autres donc lorsque l'on supprime le filtre il déborde obligatoirement sur les autres.

    J'ai donc redisposer mes 4 TCD et maintenant mon premier .clearManualFilter ne tombe plus en erreur et ma macro va jusqu'au bout.

    Cependant la double boucle est assez longue est ce possible de procéder à l'inverse masquer tous les item puis afficher le premier et ainsi de suite ?

    Merci

  11. #11
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    Il faut au moins une boucle car on ne peux masquer tout mais tu peux afficher i+1 et masquer i avant le next
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  12. #12
    Membre à l'essai
    Femme Profil pro
    Technicienne Informatique
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicienne Informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Je ne suis pas très douée en VBA du coup j'ai des doutes sur la syntaxe du code j'ai pensé modifier le code de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    With ActiveWorkbook.SlicerCaches("Segment_Conseiller_LAIT1")
           .ClearManualFilter
            For i = 1 To .SlicerItems.Count
                    .SlicerItems(i).Selected = False
                For i+1 To .SlicerItems.Count
                     .SlicerItems(j).Selected = true
                Next i
    Merci

  13. #13
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    Au début de ta procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            .ClearManualFilter
            For i = 2 To .SlicerItems.Count
                    .SlicerItems(i).Selected = False
            Next i
            For i = 1 To .SlicerItems.Count
             .....
    Juste avant next i après l'envoi du mail etc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                .SlicerItems(i + 1).Selected = True
                .SlicerItems(i).Selected = False
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  14. #14
    Membre à l'essai
    Femme Profil pro
    Technicienne Informatique
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicienne Informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Après avoir enfin pu me dégager un peu de temps pour tester la 2ème solution je reviens pour faire le point.

    La deuxième solution ci dessous est nettement plus rapide en exécution cependant une fois avoir traité le dernier le dernier item du segment il me renvoit une erreur d'éxecution 9 "l'indice n'appartient pas à la sélection" et s'arrête sur la ligne ".SlicerItems(i + 1).Selected = True"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For i = 2 To .SlicerItems.Count
                    .SlicerItems(i).Selected = False
            Next i
            For i = 1 To .SlicerItems.Count
                    .SlicerItems(i).Selected = True
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    .SlicerItems(i + 1).Selected = True
            .SlicerItems(i).Selected = False
            Next i
    S'il est possible de corriger le problème ce serait super car le temps d’exécution est divisé par 2 ce qui n'est pas négligeable.

    Merci

  15. #15
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    Effectivement la boucle prenant comme limite le nombre d'items, i+1 est au delà

    Essaie de modifier la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 2 To .SlicerItems.Count
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 2 To .SlicerItems.Count-1
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  16. #16
    Membre à l'essai
    Femme Profil pro
    Technicienne Informatique
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Technicienne Informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Merci pour la rapidité de réponse. J'ai donc testé et j'ai toujours le même problème

  17. #17
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Re

    Je viens de tester : c'est la seconde boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = 1 To .SlicerItems.Count
    ou il faut mettre -1 à la fin. Laisser la 1ère sans le -1
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

Discussions similaires

  1. [Toutes versions] Filtre et Segments liés à différents TCD
    Par marine0207 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/12/2014, 15h37
  2. Réponses: 2
    Dernier message: 25/02/2014, 15h04
  3. [XL 2010] TCD/Insertion segment
    Par Line77 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/02/2014, 14h45
  4. Réponses: 5
    Dernier message: 19/03/2013, 17h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo