Sommeprod ou somme.si.ens

Bonsoir les amis;

je vous reviens pour vous exposer mon problème. J'ai une feuille BDD et sous-totaux et j'aimerais faire le calcul suivant sur la feuil sous-totaux : C4 = la somme des colonnes de feuillBDD (F2:EQ2) qui ont pour entête (Outils - Matériels - Équipement-traitement)(ligne F1:EQ1) et des condition sur les colonne CS/PS et DATE.

JE JOINS LE FICHIER .

MERCI DE VOTRE RETOUR

13bdyanzo.xlsx (316.14 Ko)

bonjour

trop compliqué à lire

joins un fichier exemple, avec 3 colonnes, 10 ou 12 lignes et surtout le résultat attendu

bonne journée

Bonjour,

Une proposition à étudier.

Réalisée avec Power Query (Mise en forme des données) et un TCD ( crée avec VBA).

Power Query est un complément gratuit à télécharger (pour Excel 2010 et 2013 ; natif 2016).

Cdlt.

14bdyanzo.xlsm (213.55 Ko)

Bonsoir les amis!

Jean-Eric grand merci à vous votre solution est merveilleuse machallah très bien fait exactement comme je le voulais.Je voudrais que vous me expliquer un peu la création du TCD(le code) pour que l'utiliser sur d'autre base de données si c'est possible?

Encore grand merci.

Bonjour,

Que ne comprends-tu pas dans la procédure ?

C'est pour ma part très clair…

Sinon, tu ne dis pas si les résultats sont ceux attendus.

A te relire.

Public Sub Create_PivoTable()
Dim wb As Workbook
Dim wsPT As Worksheet
Dim lo As ListObject
Dim rngPT As Range
Dim PTCache As PivotCache
Dim PT As PivotTable
Dim I As Long

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

    Set wb = ActiveWorkbook
    Set lo = Range("Tableau1_2").ListObject
    Set rngPT = lo.Range

    On Error Resume Next
    wb.Worksheets("TCD").Delete
    On Error GoTo 0

    Application.DisplayAlerts = True

    Set PTCache = wb.PivotCaches.Create(xlDatabase, rngPT)
    Set wsPT = wb.Worksheets.Add(after:=Worksheets(Worksheets.Count))
    wsPT.Name = "TCD"
    Set PT = PTCache.CreatePivotTable(wsPT.Cells(3, 1), "PT_01")

    With PT
        .ManualUpdate = True
        .AddFields RowFields:=Array("Moughataa ", "CS/PS"), PageFields:="Mois"
        For I = 4 To lo.ListColumns.Count
            With .PivotFields(CStr(lo.HeaderRowRange.Cells(I)))
                .Orientation = xlDataField
                .Position = I - 3
                .Function = xlSum
                .Caption = lo.HeaderRowRange.Cells(I) & " "
            End With
        Next I
        .RowAxisLayout xlCompactRow
        .TableStyle2 = "PivotStyleMedium1"
        .DataBodyRange.NumberFormat = "#,##0_ ;[Red]-#,##0 "
        .PivotFields("Mois").CurrentPage = .PivotFields("Mois").PivotItems(1).Name
        .ManualUpdate = False
    End With

End Sub

Bonjour,

Que ne comprends-tu pas dans la procédure ?

C'est pour ma part très clair…

Sinon, tu ne dis pas si les résultats sont ceux attendus.

A te relire.

Bonjour Jean-Eric !Bien sur que les resultats sont ceux attendus,mais j'ai pas compris comment vous l'avez réussi avec POWER QUERY en créant la feuille PQ - BDD le groupage des colonnes.

Grand merci vous m'avez fait découvrir power query!

Bonjour,

Tu as demandé des explications sur la création du TCD.

Maintenant, c'est sur la construction du tableau avec Power Query !?

Que ne comprends tu pas ?

Cdlt.

Bonjour,

Tu as demandé des explications sur la création du TCD.

Maintenant, c'est sur la construction du tableau avec Power Query !?

Que ne comprends tu pas ?

Cdlt.

comment vous avez créer la feuille PQ - BDD avec PQ? comment vous avez calculer les valeurs des colonnes

re à vous

Jean-Eric, pourquoi créer des calculs (et TCD etc. ) par VBA ? i n'y a pas besoin d'automatiser ces créations

? ? ?

Bonjour à tous

@Jean-Eric : Beau boulot !

Si je vois bien la finalité, pourrais-tu m'expliquer le principe de fonctionnement de

= List.Transform({48..57},each Character.FromNumber(_))

Merci

J'ai compris, je crois, le pourquoi du VBA mais ayant toujours une réticence à créer un TCD à partir d'un tableau à double entrée, j'ai fait une petite variante

5bdyanzo2.xlsx (231.15 Ko)

re à tous

pour traiter (faire un TCD ou autres choses....) une table à double entrée, on la dépivote d'abord, avec Power Query. Depuis 10 ans

RE à tous

@jmd

Tu devrais détailler l'ensemble des fils avant de dégainer plus vite que ton ombre, Lucky Luke du BI, d'autant que Jean-Eric comme moi-même appliquons déjà tes "conseils" !

Ici tu ne sembles n'as pas avoir cherché à comprendre la démarche, ailleurs tu expliques à un demandeur qu'il n'aurait pas du faire son fichier comme il est alors qu'il explique qu'il récupère un fichier fait par d'autres qu'il veut justement reprendre dans les règles...

Alors cool man...

@jmd

Tu devrais détailler l'ensemble des fils avant de dégainer plus vite que ton ombre, Lucky Luke du BI, d'autant que Jean-Eric comme moi-même appliquons déjà tes "conseils" !

salut Chris

note qu'il est impossible de lire l'ensemble des fils !

moi du moins je ne le puis pas.

tu fais comment ?

Ici tu ne sembles n'as pas avoir cherché à comprendre la démarche, ailleurs tu expliques à un demandeur qu'il n'aurait pas du faire son fichier comme il est alors qu'il explique qu'il récupère un fichier fait par d'autres qu'il veut justement reprendre dans les règles...

Alors cool man...

où ai-je donc expliqué au demandeur qu'il n'aurait pas du faire son fichier comme il est ???

je n'ai que posé des question et fait un rappel général sur les tableaux à double entrée.

note que c'est moi qui ai beaucoup appris par tes messages et ceux des autres personnes sur le site

Alors cool man...

amitiés excelliennes à toi et à tous

bonne journée

RE

Lire "l'ensemble de chaque fil" auquel tu participes

Ton post à ce point du fil semblait balayer d'un revers de souris sans apporter de concret ce que nous avions fait et expliqué pour justement aller dans la bonne direction d'où ma remarque sur ce qui semblait indiquer une précipitation de ta part...

Bon week end ...

Bonjour,

@ Chris,

= List.Transform({48..57},each Character.FromNumber(_))

Un peu de lecture en ce dimanche pluvieux :

https://www.excelguru.ca/blog/2015/11/19/keep-only-numbers-in-power-query/

J'ai testé la chose !...

Il y a évidemment d'autres solutions pour supprimer des caractères dans une chaîne.

Si c'est clair pour les nombres, cela l'est moins pour les autres caractères. Cela semble ne fonctionner que pour les 127 premiers codes Ascii !?

Pour le TCD et la création en VBA, j'ai pensé que le nombre de colonnes pouvait être variable et compte-tenu des en-têtes, etc...

Un petit plaisir aussi !...

Entre temps, je me suis rendu compte des formules.

J'envoie une nouvelle proposition en ayant préalablement supprimé toutes les colonnes inutiles.

@ Sanyo

Donc , un nouveau classeur.

Pour les explications (Power Query), j'ai testé une chose avec Paritec (que je salue ) avec TeamViewer

https://www.teamviewer.com/fr/

Ce sera certainement plus simple...

A te relire sur ce point précis.

1bdyanzo-v2.xlsx (111.55 Ko)

@ jmd,

Chris a bien résumé la chose. Inutile donc d'en rajouter.

Une chose tout de même : Power Query ne sert pas qu'à dépivoter et pivoter des données.

Bon dimanche à tous.

Rechercher des sujets similaires à "sommeprod somme ens"