Gestion de la consommation en TCD

Bonjour à Tous !

Je fais appel à vous dans le cadre de la mise en place d'un outil de controle de consommation du carburant pour une flotte de camions.

Grâce à vous j'ai réussi a importer les données de plusieurs pompes sous un même format / tableau mais la je bloque sur le TCD..

Mon probleme maintenant est que je n'arrive pas a récupérer la valeurs des kms antérieure selon tel ou tel camion. Pour calculer mon kilométrage effectué j'ai besoin de récupérer les kms lors du derniers plein pour ensuite établir ma consommation par camions.

Si l'un d'entre vous peux m'orienter dans ma démarche, le tableau fais maintenant 20.000 lignes et j'essaie d'automatiser petit à petit la gestion.

Merci d'avance,

Comment un camion peut avoir moins de kilomètres au plein suivant ? il a roulé en marche arrière ??

Steelson a écrit :

Comment un camion peut avoir moins de kilomètres au plein suivant ? il a roulé en marche arrière ??

Les chauffeurs tapent eux meme les kms sur la borne, il arrive donc qu'ils se loupent.

Dans certains cas la carte à été "prétée" à un autre camion et donc les kms ne correspondent pas !

Pour ces cas exceptionnels je fais la modification manuellement.

Cependant ce sont des cas assez particuliers qu'il ne faut pas prendre en compte dans la demande, c'est vraiment la méthode qui m'interesse !

Merci !

Bonjour,

Come spécifié par Steelson (bonjour), les données sont incohérentes.

Cependant, regarde cette proposition.

Cdlt.

Jean-Eric a écrit :

Bonjour,

Come spécifié par Steelson (bonjour), les données sont incohérentes.

Cependant, regarde cette proposition.

Cdlt.

Bonjour Jean Eric,

Effectivement il y'a des incohérences mais c'est justement le but de ce fichier, vérifier que tout est cohérent, que les chauffeurs saisissent correctement les KMS et ne pretent pas leurs cartes..

En l'occurence ton fichier met bien en avant les incohérences et permet de controler tout de suite le plein.

Je te remercie d'avoir pris le temps, j'ai utilisé ta base et j'essaye de l'adapter pour qu'elle colle le plus à mon besoin.

Le probleme c'est que l'on ne peux pas diviser l'evolution des kms recupérés via TCD par un champ du tableau non ?

En gros la formule = 100*VOLUME/EVOLUTION KMS

Bonne journée & MERCI

Bonjour,

A méditer avec un bon café.

Cordialement.

Bonjour !

Mais tu vas tuer mon pauvre petit cerveau la ^^

J'essaie de tout comprendre et je reviens vers toi !

Merci encore !

Après deux cafés je commence à comprendre ce que tu as fais !

J'ai reupload ton fichier avec des données cohérentes pour 5 camions (j'en ai 200 et 300 chauffeurs, ca peux etre important comme information ^^).

Pour les onglets 1 et 2 c'est parfait, excatement ce que je veux.

Par contre pour le dernier onglet que tu as crée j'ai quelques soucis :

  • ca ne s'actualise pas correctement, les données en onglet 2 sont correctes mais en 3 ca ne passe pas.
  • Pourquoi être passé par les semaines ? Excel gère mal les dates ?
  • C'est impossible de passer la colonne Consommation que tu as créee sur l'onglet 2 ?

Merci d'avance !

24test3.xlsm (46.78 Ko)

Re,

Excel ne propose un nombre de filtres important pour les dates, mais pas pour les semaines.

C'était un plus. maintenant, c'est à toi de décider de l'utilité...

J'ai revu la feuille TCD LIEU en modifiant la procédure VBA, que tu as certainement remarqué.

On code en dur, alors si on ajoute une colonne dans le TCD, c'est chaud.

A te relire.

Cdlt.

27test3.xlsm (46.85 Ko)
Option Explicit

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim ACell As Range, rngData As Range
Dim lastRow As Long, rw As Long, i As Long

    Application.ScreenUpdating = False
    '---------------------------------------------------------------------
    ' KMS
    '---------------------------------------------------------------------
    Set ACell = Target.PivotFields("KILOMETRES ").DataRange.Cells(1)
    Set rngData = Target.PivotFields("EVOLUTION KMS").DataRange

    [K3].Value = ACell.Value

    With [K4]
        .Value = Application.Sum(rngData)
        .NumberFormat = "[Blue]+#,##0;[Red](#,##0);"
    End With

    [K5].Value = ACell + Application.Sum(rngData)

    [K3,K5].NumberFormat = "#,##0"
    '---------------------------------------------------------------------
    ' VOLUME
    '---------------------------------------------------------------------
    Set rngData = Target.PivotFields("CUMUL VOLUME").DataRange

    With [L5]
        .Value = Application.Max(rngData)
        .NumberFormat = "[Blue]+#,##0.00;[Red](#,##0.00);"
    End With
    '---------------------------------------------------------------------
    ' CONSOMMATION
    '---------------------------------------------------------------------
    With Columns(8)
        .ClearContents
        .Style = "Normal"
    End With
    [H2] = "Consommation"
    [H3] = "(L/100)"
    lastRow = Cells(Rows.Count, 4).End(xlUp).Row
    If lastRow = 4 Then Exit Sub
    rw = 5
    For i = 5 To lastRow
        If (Cells(i, "D") - Cells(i - 1, "D")) = 0 Then
            Cells(rw, "H") = "kms. constant"
        Else
            Cells(rw, "H") = Cells(i - 1, "G") * 100 / (Cells(i, "D") - Cells(i - 1, "D"))
            Cells(rw, "H").NumberFormat = "#,##0.00"
        End If
        If Cells(rw, "H") <= 0 Then Cells(rw, "H") = "évol. kms. négative"
        rw = rw + 1
    Next
    Range(Cells(2, "H"), Cells(lastRow, "H")).Style = "20 % - Accent1"

    Application.ScreenUpdating = True

    Set rngData = Nothing: Set ACell = Nothing

End Sub

Merci beaucoup, je regarde tout ça a tête reposée demain matin !

Bonne fin de journée,

Bonjour Jean Eric !

Merci pour ce que tu as fais, je viens de le mettre à ma "sauce", en passant tous les calculs vba en onglet 2.

Apres qq modifs tout marche nikel, les calculs sont bon, la mise en page est pas trop mal

Je te mets en pj ce que j'ai modifié, que tu vois ce que ça donne au final !

Merci pour tout !

52test-conso-def.xlsm (39.88 Ko)

Allez une petite question quand meme !

Dans le calcul du volume :

'---------------------------------------------------------------------

' VOLUME

'---------------------------------------------------------------------

Set rngData = Target.PivotFields("CUMUL VOLUME").DataRange

With [K6]

.Value = Application.Max(rngData)

.NumberFormat = "[Blue]+#,##0.00;[Red](#,##0.00);"

End With

Qu'est ce que je dois modifier pour qu'il ne prenne pas en compte la premier ligne des volumes ?

Bonjour,

Un truc comme ci-dessous?

Cdlt.

Set ACell = Target.PivotFields("CUMUL VOLUME").DataRange.Cells(1)
    Set rngData = Target.PivotFields("CUMUL VOLUME").DataRange

    With [K6]
        .Value = Application.Max(rngData) - ACell.Value
        .NumberFormat = "[Blue]+#,##0.00;[Red](#,##0.00);"
    End With

Oui un truc comme ça

On touche au but, merci encore d'avoir pris le temps de m'aider, ça fait vraiment plaisir de voir qqn d'aussi compétent et réactif.

Bonne journée à toi !

Rechercher des sujets similaires à "gestion consommation tcd"