Calcule moyenne et total

Bonjour,

j'aurais besoin d'une macro pour calculer des totaux et moyenne sur lesquels je passe un temps de malade

j'ai un fichier avec trois colonnes : colonnes A (identifiant) colonnes B (test) et colonnes C (action)

Dans la colonne B j'ai 4 types de test (test1, test2, test3, test4)

Dans la colonne C j'ai 2 action (validé et refusé)

J'aimerai le total du nombre de tests par type de test

J'aimerai le total général du nombre de test (tout type de test confondu)

J'aimerai le total par type de test qui sont refusé

J'aimerai le total général de test qui sont refusé (tout type de test confondu)

J'aimerai la moyenne des test refusé par type de test

J'aimerai la moyenne général des test refusé J'aimerai définir la moyenne par type de test qui sont refusé

et le nombre par identifiant de test refusé et validé par type de test

Bonjour,

et il faut aussi te faire une copie de ton fichier à ta place ???

P.

je joint un fichier afin que ce soit plus compréhensible

25calcul.xlsx (48.86 Ko)

re,

un simple tcd peut t'aider...

as -tu essayé le tcd ?

P.

Bonjour, Sophie, Patrick

un fichier à tester,

sans fichier de votre part, on nage un peu

Amicalement

Pierrot

mes données change d'un mois a un autre je fait habituellement un tcd pour avoir, par identifiant et par type de test le nombre de refusé, validé mais j'aimerai bien automatisé la tache

j'avoue ne pas être une experte excel et encore moins des macros


j'ai joint un fichier pierre

Sophie1234,

Je suis désolé, je ne donnais rien aux tableaux croisés dynamiques, c'est pour cela que je travaille avec des formules.

Pierrot

sophie1234 a écrit :

mes données change d'un mois a un autre je fait habituellement un tcd pour avoir, par identifiant et par type de test le nombre de refusé, validé mais j'aimerai bien automatisé la tache

j'avoue ne pas être une experte excel et encore moins des macros


j'ai joint un fichier pierre

Donc si tu connais les tcd, il suffit de recopier les données nouvelles à la place des anciennes en veillant au nombre de ligne à adapter pour le tcd

P.

Coucou à mon compatriote

j'ai trouvée ça

Sub CREERTCD()

'

' CREERTCD Macro

'

' Sélection des données

Sheets("Feuil1").Select

Columns("A:C").Select

' Création du TCD

ActiveWorkbook.Worksheets("calcul").PivotTables( _

"Tableau croisé dynamique7").PivotCache.CreatePivotTable TableDestination:= _

"", TableName:="Tableau croisé dynamique4", DefaultVersion:= _

xlPivotTableVersion12

' Actualiser

Range("C9").Select

ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotCache.Refresh

End Sub

mais ça bloque sur la partie surligné

si j'ai bien compris ça veut ouvrir un autre classeur mais je ne connais pas la commande pour rester sur celui ouvert

L'avantage du tcd par vba si j'ai bien compris c'est que je n'ai pas a sélectionner mes plage de cellule a chaque actualisation mensuel de mon fichier

et je peut donc automatiser la suite de calcul qui en découle

re,

tu crées un TCD Tableau croisé dynamique7 et tu mets à jour Tableau croisé dynamique4 est ce normal ?

Bon j'ai réussi a adapter une macro mon problème est que je souhaite avoir une plage dynamique pour la colonne A a C

et c'est la que ça coince

voici le code

Sub create_TCD()

'Dimension des variables

Dim wshTCD As Worksheet

Dim PvtTCD As PivotTable

Dim maplage As Range

Dim DernLigne As Long, DernColonne As Integer

DernLigne = Range("A" & Rows.Count).End(xlUp).Row

DernColonne = Cells(1, Cells.Columns.Count).End(xlToLeft).Column

'Affectation du TCD à la feuil 1

Set maplage = Range(Cells(3, 1), Cells(DernLigne, DernColonne))

Set wshTCD = Worksheets("Feuil1")

'Suppression de tous les TCD existants dans la feuille

For Each PvtTCD In wshTCD.PivotTables

PvtTCD.TableRange2.Clear

Next PvtTCD

'Ajout d'un TCD sur la feuille "TCD automatique"

Set PvtTCD = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="maplage") _

.CreatePivotTable(tabledestination:=wshTCD.Range("H2"), TableName:="TCD_test")

'Ajout des champs au TCD

With PvtTCD

'Ajout d'une Ligne

With .PivotFields("ACTION")

.Orientation = xlRowField

.Position = 1

End With

'Ajout d'une Ligne

With .PivotFields("IDENTIFIANT")

.Orientation = xlRowField

.Position = 1

End With

'Ajout d'une Colonne

With .PivotFields("TEST")

.Orientation = xlColumnField

.Position = 1

End With

'Ajout d'une Valeur Cotisation

With .PivotFields("CATEGORIE")

.Orientation = xlDataField

End With

End With

End Sub

Bon problème résolu finalement j'ai créer une plage dynamique et j'efface les cellules de la feuille a chaque actualisation des données

mais je veut bien un coup de pouce pour les calcule de moyenne

Bonjour,

Ma petite contribution du jour.

Le calcul de moyenne doit être effectué par formule.

Cdlt.

18calcul.xlsm (56.69 Ko)
Option Explicit
Option Private Module

Public Sub CreatePivotTable()
Dim wb As Workbook
Dim wsData As Worksheet, wsPT As Worksheet
Dim rngData As Range
Dim PTCache As PivotCache
Dim PT As PivotTable

    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
    End With

    Set wb = ActiveWorkbook
    Set wsData = wb.Worksheets("Données")
    On Error Resume Next
    wb.Worksheets("TCD").Delete
    On Error GoTo 0

    Application.DisplayAlerts = True

    Set rngData = wsData.Cells(1).CurrentRegion

    Set PTCache = wb.PivotCaches.Create(xlDatabase, rngData)

    Set wsPT = wb.Worksheets.Add(after:=Worksheets(Worksheets.Count))

    Set PT = PTCache.CreatePivotTable(wsPT.Cells(1), "TCD")

    With PT
        .ManualUpdate = True
        .AddFields RowFields:="ACTION", ColumnFields:=("CATEGORIE DE TEST")
        With .PivotFields("ACTION")
            .Orientation = xlDataField
            .Position = 1
            .Function = xlCount
            .NumberFormat = "#,##0;[Red]-#,##0;@"
            .Caption = "NB résultats"
        End With
        With .PivotFields("ACTION")
            .Orientation = xlDataField
            .Position = 2
            .Function = xlCount
            .Calculation = xlPercentOfColumn
            .NumberFormat = "0.0%;[Red]-0.0%;@"
            .Caption = "% "
        End With
        .RowAxisLayout xlTabularRow
        .ManualUpdate = False
        .TableRange1.EntireColumn.AutoFit
    End With

    With wsPT
        .Name = "TCD"
    End With

    Set PT = Nothing
    Set PTCache = Nothing
    Set rngData = Nothing
    Set wsPT = Nothing: Set wsData = Nothing
    Set wb = Nothing

End Sub

bonjour

un essai sans tdc ni vba

21sophie.xlsx (48.10 Ko)

cordialement

je répond un peut tard

merci pour vos réponse

du coup je créer un tcd en vba et je viens copier les résultat du coup

Rechercher des sujets similaires à "calcule moyenne total"