Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Calculer et classer les factures en fonction de leur importance

  • Initiateur de la discussion Initiateur de la discussion Ines99
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ines99

XLDnaute Occasionnel
Bonjour le forum,

Je vous sollicite pour trouver une façon de représenter "type Pareto" le pourcentage de factures en fonction de leur importance.
J'aimerais pouvoir distinguer un pourcentage de facture.
Par exemple, si je souhaite traiter que 30% de factures, alors me les colorier ou les mettre sur une autre feuille ?
Ci-joint mon fichier exemple

Merci pour votre aide

Ines
 

Pièces jointes

Solution
Re,
Ci-joint une version avec un outil d'aide à la mise à jour :
Il faut coller les nouvelles données en cellule A2 de la feuille "Nouvelles Données" puis cliquer sur le bouton "Clic pour importer".
La macro se charge d'effacer les anciennes données et de coller les nouvelles dans la feuilles "Factures" :
RE

J'ai copié tes lignes dans mon classeur PowerQuery : j'obtiens 98 factures représentant 32,99% (en 2,75 secondes sur mon PC)

Si je modifie par exemple pour 25% : 51 factures pour 24,91% en 0,235 secondes
 
Re,
Voici une vidéo de l'exécution des macros avec tes données et le fichier exécuté.
Je n'ai pas de bug (j'ai dû placer tes données dans les bonnes colonnes et ajouter le calcul du pourcentage) et les délais me semblent raisonnables.



Voir le fichier joint
 

Pièces jointes

Bonsoir,

Le code ci-dessous est a copier dans votre fichier Excel en Poste 1

Puis copier vos valeurs de votre poste #31 (en lieux et place de ceux de votre premier Poste #1 avec ce fichier excel qui est complèté des nouvelles données)

Copier la VBA dans ce fichier et le tour et joué.


VB:
Sub ParetoFactures()

    Dim ws As Worksheet
    Dim lastRow As Long
    Dim totalDebit As Double
    Dim i As Long
    Dim cumul As Double
    Dim seuil As Double
   
    Set ws = ThisWorkbook.Sheets("Factures") ' Adapter le nom de la feuille
   
    ' Paramètres
        'seuil = 0.3   ' 30% (modifiable)
        seuil = ws.Cells(4, 3)
   
    ' Dernière ligne
    lastRow = ws.Cells(ws.Rows.Count, "I").End(xlUp).Row
   
    ' Calcul total
    totalDebit = Application.WorksheetFunction.Sum(ws.Range("I7:I" & lastRow))
    ws.Range("B4").Value = totalDebit

    ' Nettoyage couleurs avant nouvelle exécution
    ws.Range("D8:L" & lastRow).Interior.Color = xlNone
   
    ' Trier les factures par montant décroissant
    ws.Sort.SortFields.Clear
    ws.Sort.SortFields.Add Key:=ws.Range("I7:I" & lastRow), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ws.Sort
        .SetRange ws.Range("D7:L" & lastRow)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .Apply
    End With
   
    ' Boucle pour calculer % poids et % cumulé
    cumul = 0
    For i = 8 To lastRow
        ws.Cells(i, "J").Value = ws.Cells(i, "I").Value / totalDebit
        cumul = cumul + ws.Cells(i, "J").Value
        ws.Cells(i, "L").Value = cumul
       
        ' Colorier si dans les X% premiers
        If cumul <= seuil Then
            ws.Range("D" & i & ":L" & i).Interior.Color = RGB(255, 255, 0) ' Jaune
        Else
            ws.Rows(i).Interior.Color = xlNone
        End If
    Next i
   
    MsgBox "Analyse Pareto terminée - " & Format(seuil * 100, "0") & "% des factures sélectionnées."
   
End Sub
 
Dernière édition:
AtTheOne,
Quand je supprime la data de la feuille factures afin de mettre les nouvelles données, j'ai ceci.
Pourriez-vous rajouter le nombre de factures filtrées, enfin ....c'est déjà très bien, mais dites moi pour la mise à jour des donnés svp
Ines
 

AtTheOne
Je viens de regarder le graphique qui réponds à ma question du nombre de factures filtrées.
J'espère que vous pourrez me dire pour la mise à jour de la data feuille.
Encore merci
Ines
 
Re,
Ci-joint une version avec un outil d'aide à la mise à jour :
Il faut coller les nouvelles données en cellule A2 de la feuille "Nouvelles Données" puis cliquer sur le bouton "Clic pour importer".
La macro se charge d'effacer les anciennes données et de coller les nouvelles dans la feuilles "Factures" :
 

Pièces jointes

Bonsoir Le forum, AtTheOne,
Vraiment très fort la dernière mouture, un grand merci.
J'ai beaucoup appris aujourd'hui et toutes vos propositions de la 1ère à celle-ci sont vraiment très performantes.
Evidemment la dernière réponds de loin à mes attentes.
Vous êtes vraiment très fort
Merciiii
Ines
 
Bonjour le forum,

Je ne comprends rien à ce qu'a fait AtTheOne, pour moi cette macro dans le code de la feuille "Résultat" est évidente :
VB:
Private Sub WorkSheet_Activate()
Dim maxi#, tablo, i&, s#
maxi = [TotalDébit] * [Poids]
Application.ScreenUpdating = False
Cells.Delete 'RAZ
With UsedRange: End With 'actualise le UsedRange
With [TS_Factures].ListObject.Range 'tableau structuré
    .AutoFilter: .AutoFilter 'affiche tout
    .Copy [A1]
End With
With [A1].CurrentRegion
    .Sort .Columns(6), xlDescending, Header:=xlYes 'tri décroissant sur les montants
    tablo = .Columns(6).Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
    For i = 2 To UBound(tablo)
        If IsNumeric(tablo(i, 1)) Then s = s + CDbl(tablo(i, 1))
        If s > maxi Then Exit For
    Next
    If i < .Rows.Count Then .Rows(i + 1).Resize(.Rows.Count - i).Delete xlUp
End With
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Elle se déclenche quand on active la feuille.

Avec Poids = 33% => 0,15 seconde chez moi.

A+
 

Pièces jointes

Bonjour à tous et à toutes, bonjour @job75
Efficace ! Peux-tu ajouter le pourcentage cumulé pour faire le graphe de Pareto et la mise en forme conditionnelle pour mettre en jaune les lignes concernées dans le TS "TS_Factures" ?
À bientôt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
279
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…