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

Conception Discussion :

Calcul tcd sur cumulé


Sujet :

Conception

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Points : 6
    Points
    6
    Par défaut Calcul tcd sur cumulé
    bonjour

    je possède un TCD comportant deux colonnes en cumulé. lorsque je souhaite insérer un calcul sur ces colonnes cela ne prends pas en compte mon résultat cumulé

    comment peux t on faire ?

    l'idée étant de faire un graphique avec une courbe cumulée mensuelle

    merci à tous pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Points : 442
    Points
    442
    Par défaut TCD en cumulé...
    Vous ne devez pas, je pense additionner des cumulés, il se trouve en dernière ligne des cumul...

    Voilà mon essai :

    Nom : tcd.jpg
Affichages : 539
Taille : 64,4 Ko


    le fichier avec mon essai :

    fichier exemple LN2.xlsx

    salutations,

    geogeo70

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Merci de votre aide

    Cependant ,il me faut vraiment le cumulé mensuel et non en total . car si je rajoute des mois et que le cumul se trouve en total, je ne peux faire une courbe mensuelle cumulée

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    J'ai essayé également par une méthode classique mais je n'y suis pas arrivé.

    Le fichier joint contient une solution par VBA consistant à ajouter une colonne à droite du TCD et de faire le rapport en pourcentage de Total Cessions cumulées / Total Ventilés cumulés.

    Le code dans le module standard :

    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
    91
    92
    93
    94
    95
    96
    97
     
    Sub AjouterColonneTotalAttritionCumule(ByVal FeuilleTcd As Worksheet, ByVal Tcd As PivotTable)
     
    Dim ColTotalVentiles As Long
    Dim ColTotalCessations As Long
    Dim ColAttrition As Long
     
    Dim LigneDeTitre As Long
    Dim DerniereLigne As Long
     
     
    Dim CelluleTcd As Range
    Dim AireTotalAttrition As Range
     
        Application.ScreenUpdating = False
     
        With Tcd
     
           ColTotalVentiles = 0
           ColTotalCessations = 0
     
           ColAttrition = .TableRange2.Column + .TableRange2.Columns.Count
           LigneDeTitre = .RowRange.Row
           DerniereLigne = .RowRange.Row + .RowRange.Rows.Count - 2
     
           For Each CelluleTcd In .ColumnRange
               Select Case CelluleTcd
                      Case "total ventilés en cumulé"
                           ColTotalVentiles = CelluleTcd.Column
                      Case "total cessation en cumulé"
                           ColTotalCessations = CelluleTcd.Column
               End Select
            Next CelluleTcd
     
            If ColTotalVentiles > 0 And ColTotalCessations > 0 Then
     
               With FeuilleTcd
     
                    Set AireTotalAttrition = .Range(.Cells(LigneDeTitre + 1, ColAttrition), .Cells(DerniereLigne, ColAttrition))
     
                    'Effacement de l'ancienne colonne
                    Range(AireTotalAttrition.Offset(-2, 0), AireTotalAttrition.Offset(12, 0)).Clear
     
                    ' Calcul du total attrition en cumulé
                    For Each CelluleTcd In AireTotalAttrition
                        If CelluleTcd.Offset(0, ColTotalVentiles - ColAttrition) > 0 Then
                            With CelluleTcd
                                 .Value = CelluleTcd.Offset(0, ColTotalCessations - ColAttrition) / CelluleTcd.Offset(0, ColTotalVentiles - ColAttrition)
                                 .NumberFormat = "0.00%"
                            End With
                        End If
                    Next CelluleTcd
     
                    ' Mise en forme des cellules de titre
                    With Range(AireTotalAttrition.Cells(1, 1).Offset(-2, 0), AireTotalAttrition.Cells(1, 1).Offset(-1, 0))
                         .Interior.Color = RGB(220, 230, 241)
                         .Font.Bold = True
                         .HorizontalAlignment = xlCenter
                    End With
     
                    ' Création de la bordure basse de la cellule de titre
                    With AireTotalAttrition.Cells(1, 1).Offset(-1, 0)
                         .Value = "total attrition en cumulé"
                          With .Borders(xlEdgeBottom)
                                .LineStyle = xlContinuous
                                .ThemeColor = 5
                                .TintAndShade = 0.599963377788629
                                .Weight = xlThin
                          End With
                    End With
     
                    ' Mise en forme de la cellule total
                    With .Cells(AireTotalAttrition.Row + AireTotalAttrition.Rows.Count, AireTotalAttrition.Column)
                          .Interior.Color = RGB(220, 230, 241)
                          With .Borders(xlEdgeTop)
                                .LineStyle = xlContinuous
                                .ThemeColor = 5
                                .TintAndShade = 0.599963377788629
                                .Weight = xlThin
                          End With
                    End With
     
                    Set AireTotalAttrition = Nothing
               End With
     
                 '   MsgBox .TableRange2.Address & ", " & .DataBodyRange.Address & Chr(10) _
                 '   & "Colonne attrition" & ColAttrition & Chr(10) _
                 '   & "Ligne de titre" & LigneDeTitre
     
           End If
     
       End With
     
       Application.ScreenUpdating = True
     
     
    End Sub
    Le code dans le module de l'onglet Feuil1

    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
    Option Explicit
     
    Private Sub BoutonMettreAJourAttrition_Click()
     
        If ActiveSheet.PivotTables.Count > 0 Then
     
           For Each Pvt In ActiveSheet.PivotTables
               Pvt.PivotCache.Refresh
     
               If Pvt.Name = "Tableau croisé dynamique1" Then
     
                  Set ShTcd = ActiveSheet
                  Set Pvt = ShTcd.PivotTables("Tableau croisé dynamique1")
     
                  AjouterColonneTotalAttritionCumule ShTcd, Pvt
     
                  Set Pvt = Nothing
                  Set ShTcd = Nothing
     
               End If
     
            Next Pvt
     
        End If
     
    End Sub
    Cordialement.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Bonjour

    votre solution a l'air de fonctionner. Cependant, je ne peux pas cliquer sur le bouton macro.

    un gros MERCI pour votre aide en tout cas.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bnj71 Voir le message
    votre solution a l'air de fonctionner. Cependant, je ne peux pas cliquer sur le bouton macro.
    Ne seriez-vous pas concerné par ce post ? activex-impossible-d-inserer-objet

    Une version sans ActiveX.

    Cordialement.
    Dernière modification par AlainTech ; 20/12/2014 à 19h05. Motif: Fusion de 2 messages

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup pour votre aide précieuse

    je vais maintenant essayer de l'adapter à mon tableau réel... mais ce n'est pas gagné... lol


    vous êtes super efficace en tout cas ! BRAVO

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bnj71 Voir le message
    je vais maintenant essayer de l'adapter à mon tableau réel... mais ce n'est pas gagné... lol
    C'est assez simple :

    -Vous copiez collez le Module1 de mon fichier dans un nouveau module de votre fichier (format .xls ou .xlsm).
    -Vous remplacez le cas échéant le nom du TCD : "Tableau croisé dynamique1" par son vrai nom.
    -Sur votre feuille TCD, vous créez un bouton (non ActiveX) et vous lui associez la macro LancerMettreAJourAttrition

    Cela fonctionne quel que soit l'emplacement du TCD dès lors que le bouton est sur la même feuille.

    Cordialement.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Bonjour ! et meilleurs voeux pour cette nouvelle année 2015 !


    après quelques semaines de vacances, me revoilà et j'ai testé d'adapter votre solution à mon tableau mais cela ne marche pas ....

    "ERREUR DE COMPILATION"


  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bnj71 Voir le message
    "ERREUR DE COMPILATION"
    Bonjour, bonne année à vous aussi.

    Malheureusement, la nouvelle année ne m'a pas donné pour autant le don de divination.

    Cordialement.

  11. #11
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 415
    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 415
    Points : 16 257
    Points
    16 257
    Par défaut
    Bonjour

    A noter pour Eric que ce problème fait l'objet de posts multi forums de la part de bnj71 alias darkfire qui reste très imprécis sur l'objectif concret et ne dit pas si les solutions proposées fonctionnent ou non et, si non, pourquoi...
    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. [XL-97] Calcul sur cumul d'heures
    Par starius dans le forum Excel
    Réponses: 3
    Dernier message: 08/09/2011, 17h30
  2. affichage dans une colone de calcul fait sur les lignes
    Par godiba dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/05/2007, 08h36
  3. Calcul de % sur une requête UNION ALL
    Par lodan dans le forum Langage SQL
    Réponses: 4
    Dernier message: 08/03/2007, 14h20
  4. [VBA-E] calculs automatique sur une seule feuille
    Par repié dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/03/2006, 11h53
  5. calcul durée sur access
    Par juliette2 dans le forum Access
    Réponses: 2
    Dernier message: 23/11/2005, 13h56

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