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

XL 2016 gestion de base revendeurs

bks.bob

XLDnaute Nouveau
Bonjour à tous,
j'ai vraiment besoin de votre aide. Je me retrouve avec une base de donnée Excel avec plus de 200 revendeurs qui commercialisent des produits avec différents type et diffèrent prix.

je cherche une situation de vente pour chaque revendeur par type de vente et montant facturé.
EXEMPLE:

vendeurCode vendeurtype de venteprix
benardS520560article 21
250,00
benardS520560article 22
270,00
benardS520560article 23
260,00
benardS520560article 24
190,00
benardS520560article 25
200,00
AAADF89630article 21
250,00
AAADF89630article 22
270,00
AAADF89630article 23
260,00
AAADF89630article 24
190,00
AAADF89630article 25
200,00
BBBGF25010article 21
250,00
BBBGF25010article 22
270,00
BBBGF25010article 23
260,00
BBBGF25010article 24
190,00
BBBGF25010article 25
200,00​
 

WTF

XLDnaute Impliqué
Bonjour bks.bob,

Peux tu préciser certains éléments :
- L'exemple que tu nous présente correspond t il a ta base de données ou au résultat attendu ?
- Le résultat attendu est il un élément figé ou doit il évoluer régulièrement ?

Le plus simple est probablement que tu postes un fichier exemple avec un extrait de BDD anonymisé et sur un 2eme onglet le résultat attendu
 

soan

XLDnaute Barbatruc
Inactif
Bonsoir Bob,

Sur la 2ème feuille, tu peux voir qu'il y a uniquement la ligne des en-têtes.

Pour pouvoir réaliser ta demande, j'ai dû rajouter ces 2 colonnes :

colonne D : M = « N° du Mois » ; sera utilisé pour un tri sur 3 critères
colonne E : Produit ; obligatoire pour faire le « Nombre par type de Produit »

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Va sur la 1ère feuille ; fais Ctrl e ➯ travail effectué

Il y a eu un tri à la fois sur Code, M, Produit (dans cet ordre).

Tu aurais aussi pu faire Ctrl e à partir de la 2ème feuille : résultat identique.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Sur la 1ère feuille, quand tu saisiras l'Echéance, tu peux taper indifféremment des majuscules ou des minuscules, mais respecte les accents ; par exemple, « août » était bon, mais pas « fevrier » ; c'est « Février » ou « février » ; en cas d'erreur, le N° du Mois (M) sera 0 (au lieu de 1 à 12) : incorrect.

soan
 

Pièces jointes

  • Base.xlsm
    25.4 KB · Affichages: 8

bks.bob

XLDnaute Nouveau
Bonsoir,
Merci bcp, ça marche bien , est ce que je peux avoir sur une 3 ème feuille avec le montant globale de chaque revendeur; échéance comme suit.

RevendeurCodeEchéanceMMontant Global
facture


merci.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Bob,

C'est fait ; pour obtenir ta 2ème présentation, fais Ctrl f

(le Ctrl e pour la 1ère présentation est toujours valable)

soan
 

Pièces jointes

  • Base.xlsm
    30.4 KB · Affichages: 14
Dernière édition:

bks.bob

XLDnaute Nouveau
Bonjour soan,
Merci bcp pour le soutien, j'aimerai bien m'aider à servir la feuille "résultat final" qui comporte les résiliations de la feuille "base résiliation".
"montant à payer = (Montant global) - (montant résiliation).

Merci.
 

Pièces jointes

  • Base.xlsm
    36.6 KB · Affichages: 3

soan

XLDnaute Barbatruc
Inactif
Bonjour Bob,

Voici un nouveau fichier, avec une nouvelle macro pour :
« montant à payer = (Montant global) - (montant résiliation) »

Fais Ctrl g à partir de la feuille "base Résiliation" ou "Résultat final" (au choix).
Ctrl e et Ctrl f pour les 2 présentations précédentes sont toujours valables.
VB:
Option Explicit

Sub Essai3()
  Application.ScreenUpdating = 0: Worksheets(5).Select
  Dim nlm&, dl1&, dl2&: nlm = Rows.Count
  With Worksheets(4)
    Dim cel As Range, ech$, lg1&, lg2&
    dl2 = .Cells(nlm, 5).End(3).Row: If dl2 = 1 Then Exit Sub
    dl1 = Cells(nlm, 6).End(3).Row: Application.Calculation = -4135
    If dl1 > 1 Then 'effacement des anciens résultats
      With Range("F2:F" & dl1): .ClearContents: .Borders.LineStyle = -4142: End With
    End If
    dl1 = Cells(nlm, 2).End(3).Row: If dl1 = 1 Then GoTo 1
    For lg1 = 2 To dl1
      Set cel = Cells(lg1, 2): ech = Left$(cel.Offset(, 1), 4)
      For lg2 = 2 To dl2
        If cel = .Cells(lg2, 3) And ech = Left$(.Cells(lg2, 1), 4) Then
          cel.Offset(, 4) = cel.Offset(, 4) + .Cells(lg2, 5)
        End If
      Next lg2
    Next lg1
1   Range("F2:F" & dl1).Borders.LineStyle = 1: Application.Calculation = -4105
  End With
End Sub
soan
 

Pièces jointes

  • Base.xlsm
    47.4 KB · Affichages: 8
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…