Indiqué le ou les vendeurs en fonction du produit vendu

Bonjour ,

Après plusieurs recherche je n'arrive pas à trouver ma solution , peut-être du aux mots clé de recherche

J'ai un fichier avec un certains nombres de feuille

J'aimerais que dans une feuille (Bilan) que je puisse voir apparaitre atomiquement les Nom et Prénom des vendeurs par rapport au fruit vendu (Liste déroulante ) au matin et au midi

Exemple Mr A , Mr B et Mr C vents des fruits les mêmes jours

J'aimerais voir en ligne 7 Mr A ,en Ligne 8 Mr B et en ligne 9 Mr C tout en sachant qu'il est possible de vendre des fruits le midi.

Tout le tableaux est fictif , j'aimerais l'intégrer dans un tableaux beaucoup plus détaillé est personnel

En pièce jointe en petit tableau , (le tableau des ventes ne peux être modifier )

Merci d'avance .

Et si il existe un sujet similaire je m'en excuse

31classeur-test.xlsx (11.38 Ko)

Bonjour

Dans votre fichier faites ceci :

1. Onglet Bilan
- Click droite puis choisir "Visualiser le code"
- Dans la fenetre, coller le code ci-dessous

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B3")) Is Nothing Then
    Fruit = Target.Value
    Call BilanFruit
End If
End Sub

2. Allez dans l'éditeur VBA
- dans le menu choisir insertion choisir -> Module
- Dans la fenetre, coller le code ci-dessous

Public Fruit As String
Sub BilanFruit()

Dim c As Range, Plage As Range
Dim tablo As Collection
Dim item
Dim dlgB As Integer

With Sheets("Tableau des ventes")

    Set Plage = .Range("B4:B" & .Range("B" & Rows.Count).End(xlUp).Row)
    Set tablo = New Collection
    On Error Resume Next
    For Each c In Plage
        If .Range("E" & c.Row) = Fruit Then
            tablo.Add c.Value, CStr(c.Value)
        End If
    Next c
End With
On Error GoTo 0

With Sheets("Bilan")
    .Range("A6").CurrentRegion.Offset(1, 0).Delete
    For Each item In tablo
        dlgB = .Range("A" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & dlgB) = item
        .Range("B" & dlgB) = WorksheetFunction.SumIfs(Plage.Offset(0, 1), Plage, item, Plage.Offset(0, 3), Fruit)
        .Range("C" & dlgB) = WorksheetFunction.SumIfs(Plage.Offset(0, 2), Plage, item, Plage.Offset(0, 3), Fruit)
    Next item
End With
End Sub

3. Enregistrez votre fichier au format XLSM pour accepter l'utilisation des macros

Une fois terminé, changez la valeur en B3 dans la feuille Bilan

Cordialement

Bonjour,

Merci de m'avoir répondu .

Excel m'indique une erreur après enregistrement (enregistrement Excel avec prise en compte de la macro)

Type d'erreur ( Erreur d'execution:'9':) L'indice n'appartient pas à la sélection.

Quand je clic sur Débogage voici la capture de l'erreur

N'étant pas à l'aise avec VBA je ne sais pas quoi faire

capture vba

Cordialement

Bonjour,
Une proposition TCD (tableau croisé dynamique) et une actualisation auto. VBA.
Cdlt.

29classeur-test.xlsm (20.90 Ko)

Bonjour

Excel m'indique une erreur après enregistrement (enregistrement Excel avec prise en compte de la macro)

Oui car le nom de votre onglet Bilan comporte un espace après le n.

Il vous suffit de l'enlever

Crdlt

Bonjour Jean Eric ,

Merci de m'avoir répondu,

je ne connaissais pas la mise à jour automatique d'un TCD je pourrais m'en inspiré pour une autre utilisation mais ne convient pas a mon problème énoncer, Car la liste des vendeurs peuvent s'agrandir au fil des jours.

Bonjour Dan ,

Merci aussi de m'avoir répondu . j'ai corrigé mon erreur sur l'espace après le (n), les espaces est Excel ne font pas bon ménage.

Ta proposition est parfaite pour mon cas .

Par contre j'aimerais savoir comment décalé la somme des ventes si c'est possible j'ai essayer mais je n'y arrive pas

J'aimerais que :

les sommes des ventes matin soit en colonne C

les Sommes des ventes midi soit en colonne D

D'avance merci

Cordialement

Bonjour,
Le Tableau Ventes (source du TCD) est est un tableau structuré et donc dynamique.
Si tu ajoutes des données (manuellement, par copier/coller), ce dernier se redimensionne automatiquement.
A l'activation de la feuille Bilan, le TCD est actualisé avec la procédure évènementielle VBA.
Cdlt.

Re bonjour Jean Eric Effectivement le tableau ce met a jour automatiquement .

Merci .

Bonjour

Par contre j'aimerais savoir comment décalé la somme des ventes si c'est possible j'ai essayer mais je n'y arrive pas

J'aimerais que :
les sommes des ventes matin soit en colonne C
les Sommes des ventes midi soit en colonne D

C'est simple, à la fin du code vous avez deux lignes qui comporte l'instruction WorsheetFunction. Remplacez les lettres correspondantes aux colonnes B et C

.Range("B" & dlgB) par --> .Range("C" & dlgB)
.Range("C" & dlgB)
par --> .Range("D" & dlgB)

Dan , merci

J'avais essayé plusieurs fois de faire la même manip avant d'écrire elle décaler toujours les sommes.

Est bizarrement quand je copie colle ta formule cela fonctionne , certainement erreur d'écriture de ma part.

En tout cas un grand merci a toi et Jean Eric de m'avoir répondu.

Je clôture le sujet est vous souhaite une bonne journée

Cordialement

Bonjour

Crdlt

Bonsoir ,

Je n'ai pas encore fermer le sujet car j'ai tester le fichier est essayé de le modifier à ma convenance mais impossible d'y arriver. je vous remet le tableau un peu plus complet.

Exemple Mr A le 29/09 :

Mr A GE somme =2

Mr A NE somme =3

Merci d'avance pour ceux qui pourront m'aider

Cordialement

Bonjour

Cela n'a plus rien à voir avec votre demande ici et je n'ai pas compris ce que vous voulez.
Mettez au moins un mot d'explication plus clair.

Vous choisissez 1 dans la liste, la Somme des ventes midi, vous la pêchez où ?

Crdlt

Bonjour Dan ,

Merci de m'avoir répondu.

Désoler j'ai vraiment était nul dans mes explications .

En pièce jointe le tableau avec un exemple.

Alors ce que j'aimerais faire :

En choisi le magasin ( 1-2-3 ou 4 ) dans bilan j'aimerais savoir ce que Mr A et Mr B qui était dans ce même magasin à fait.

Mr A en NE a réaliser 1+2 soit 3 il a également fait du GE soit 2 .

Mr B en GE à réalisé 1

j'espère que mes explications est plus clair .

Encore désoler.

Re

C'est quoi la référence Agent dans le fichier ??

Puis après tout, pourquoi ne pas faire un TCD comme Jean Eric avait proposé ? C'est encore plus simple et sans code

Crdlt

Rechercher des sujets similaires à "indique vendeurs fonction produit vendu"