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

XL 2016 rechercher des données en vba dans tableau avec des dates

  • Initiateur de la discussion Initiateur de la discussion desmonts
  • 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 !

desmonts

XLDnaute Occasionnel
Bonjour à toutes et tous,
J'aurai besoin d'un petit coup de main
je souhaiterai reconstituer un Chiffre d'affaire. J'ai dans mon onglet 1, des ref avec des prix et une période de validé. Dans l'onglet 2 les ref avec des date de réception.
En onglet 3 le chiffre d'affaire de chaque ref. Via une petite macro est il possible déterminer le chiffre d'affaire de chaque Ref en automatique avec les onglets 1 et 2 en tant que donné d'entrée.
Par avance merci de votre aide.
 

Pièces jointes

bonjour Desmonts le forum
En onglet 3 le chiffre d'affaire de chaque ref. Via une petite macro est il possible déterminer le chiffre d'affaire de chaque Ref en automatique avec les onglets 1 et 2 en tant que donné d'entrée.
Tu as joint un fichier xlsx donc pas de macro dedans, mais je ne comprend pas tu demandes
est il possible déterminer le chiffre d'affaire de chaque Ref en automatique avec les onglets 1 et 2 en tant que donné d'entrée.
tu veux quoi que les totaux par A B C soient fait dans les feuilles 1 et 2 c'est cela??
à te relire
a+
Papou 🙂
 
Merci de ton retour Paritec, je précise mon besoin, je cherche a avoir comme résultat l'onglet 3 c'est a dire le CA de chaque ref (prix * qtité) en fonction de la période car le prix des ref évoluent en fonction de la période de l'année. Là je l'ai fait manuellement mais je voudrais savoir si on peut l'automatiser via une macro ?
par avance merci
 
Re Bonjours desmonts le forum
je précise mon besoin, je cherche a avoir comme résultat l'onglet 3 c'est a dire le CA de chaque ref (prix * qtité) en fonction de la période
OK j'ai compris mais la période elle sera défini par quoi??? tu entres une date de départ et une date de fin??
dans tes feuille tu as 10 lignes !!!
alors je ne vois pas, explique clairement dans un pavé texte et fais moi un modèle dans la feuille 1 de ce que tu souhaites obtenir et je te ferai cela sans problèmes
a+
Papou 🙂
 
Merci de prendre du tps. le fichier est juste un exemple c'est pour cela qu'il y a que quelques lignes (je peux pas mettre le vrai). Ce que je souhaite obtenir est dans l'onglet résultat.
Ref A 4445 €
Ref B 1730€
Ref C 11580€

Dans l'onglet "date de validité de prix" tu as les Ref avec un prix et une date de début de validé colonne C et une date de fin de validé prix en colonne D ,
pour l'exemple la "ref c"

ref C
prix de 20€​
entre le 01/01/2018​
et le 01/10/2018​
ref C
prix de 19€​
entre le 02/10/2018​
et le 31/12/2018​
dans l'onglet "date de réception "
tu as toutes les ref réceptionnées avec leurs qtités en colonne B et leurs date de réceptions en colonne C.

Donc pour une Ref C dont on a réceptionnée 123 unités le 03/08 le prix sera de 20€ et pour les 456 unité réceptionnées le 04/03 le prix sera tjs de 20€, je doit obtenir en chiffre d'affaire pour cette ref C (123*20+456*20) soit 11580€. Si j'avais eu une réception de 12 pièces le 03/10 en plus le résultat aurait été (123*20+456*20+12*19) soit 11808€.

En espérant que cela soit plus clair. Merci de ton aide
 
Bonjour desmonts
Bonjour le Fil(papou), le Forum
je pense qu il faut recupere les donnees en feuille 2.(tableau)
puis pour chaque ref(unique)
recupere chaque date de commande et faire une recherche dans le Tableau des donnees de la feuille1
pour faire le recap du prix (global)en fonction .
(pas dordi)
jean marie
 
Bonjour.
J'ai écrit quelque chose :
VB:
Option Explicit

Private Sub Worksheet_Activate()
   Dim Ref As SsGr, Dat As SsGr, Détail, TRés(), L, PrixU As Currency
   ReDim TRés(1 To 5000, 1 To 2)
   For Each Ref In Gigogne(TableUnique(Feuil1.[A2], Feuil2.[A2]), 1, 3)
      L = L + 1: TRés(L, 1) = Ref.ID
      For Each Dat In Ref.Co
         For Each Détail In Dat.Co
            If Détail(0) = 0 Then PrixU = Détail(2) Else TRés(L, 2) = TRés(L, 2) + Détail(2) * PrixU
            Next Détail, Dat, Ref
   Me.[A7].Resize(5000, 2).Value = TRés
   End Sub
Mais pour la REF B je trouve 1930 au lieu de 1730. C'est moi qui ai raison ou c'est vous ?
 
D'ailleurs j'avais même pas vu : pour la A je trouve 4045 au lieu de 4445.
Avec cette procédure : …
VB:
Option Explicit

Private Sub Worksheet_Activate()
   Dim Ref As SsGr, Dat As SsGr, Détail, TRés(), L, LDéb, PrixU As Currency, Montant As Currency, TotRéf As Currency
   ReDim TRés(1 To 5000, 1 To 5)
   L = -1
   For Each Ref In Gigogne(TableUnique(Feuil1.[A2], Feuil2.[A2]), 1, 3)
      L = L + 1: TRés(L + 1, 1) = Ref.Id: TotRéf = 0
      For Each Dat In Ref.Co
         For Each Détail In Dat.Co
            If Détail(0) = 0 Then
               PrixU = Détail(2)
            Else
               L = L + 1
               TRés(L, 2) = Dat.Id
               TRés(L, 3) = Détail(2)
               TRés(L, 4) = PrixU
               Montant = Détail(2) * PrixU
               TRés(L, 5) = Montant
               TotRéf = TotRéf + Montant
               End If
            Next Détail, Dat
         L = L + 1: TRés(L, 2) = "Total :": TRés(L, 5) = TotRéf
      Next Ref
   Me.[A7].Resize(5000, 5).Value = TRés
   End Sub
… je sors le détail et j'obtiens :
REFDateQtéPrixMontant
A02/02/20181005,00 €500,00 €
30/05/20187673,00 €2 301,00 €
01/11/2018222,00 €44,00 €
15/12/20182002,00 €400,00 €
04/04/2084002,00 €800,00 €
Total :4 045,00 €
B17/07/20182345,00 €1 170,00 €
14/10/2018205,00 €100,00 €
20/06/2081106,00 €660,00 €
Total :1 930,00 €
C04/03/201845620,00 €9 120,00 €
03/08/201812320,00 €2 460,00 €
Total :11 580,00 €
 
Mais … L'année 208 c'est pas un peu vieux ?
Après avoir corrigé en 2018, et ajouté à la fin la date de début d'application du prix j'obtiens ça :
REFDateQtéPrixMontantDate prix
A02/02/20181005,00 €500,00 €01/01/2018
04/04/20184003,00 €1 200,00 €16/03/2018
30/05/20187673,00 €2 301,00 €16/03/2018
01/11/2018222,00 €44,00 €19/10/2018
15/12/20182002,00 €400,00 €19/10/2018
Total :4 445,00 €
B20/06/20181104,00 €440,00 €01/01/2018
17/07/20182345,00 €1 170,00 €21/06/2018
14/10/2018205,00 €100,00 €21/06/2018
Total :1 710,00 €
C04/03/201845620,00 €9 120,00 €01/01/2018
03/08/201812320,00 €2 460,00 €01/01/2018
Total :11 580,00 €
Soit encore 20 € de moins que les 1730 que vous aviez annoncé pour la REF "B"
 
On retombe sur vos 1730 en prenant au lieu de 5, pour les 20 "B" du 14/10/2018 le prix 6 qui ne s'applique qu'en 2019.
Mais je viens de comprendre: Dans la ligne après la date2 au 15/09/2018 vous avez mis Date 1 à 16/02/2019 au lieu de 16/02/2018
Installez le complément à mettre en référence pour que les codes indiqués puissent tourner.
 

Pièces jointes

Dernière édition:
Merci Draneb,

Effectivement beaucoup d'erreur de dates désolé, c'est bien cela que je souhaite avoir. Parcontre je ne sais comment faire tourner ta macro ou tes macro, pourrais tu me guider stp car je suis néophyte et c'est un peu du chinois pour moi. Quand j'ouvre ton fichier temp que dois je faire après ?
Par avance merci beaucoup.
cordialement
 
Le GigIdx venant tout juste d'être installé, ça devrait marcher. Sinon, coté VBA menu Outils, Références, cochez GigIdx. Si vous êtes sorti d'Excel après l'avoir installé alors d'abord coté Excel, menu Développeur, groupe Compléments, commande Compléments Excel, cochez "Fonction Gigogne" pour qu'il soit à nouveau ouvert. La macro se déclenche à l'activation de la feuille.
 
Dernière édition:
RE,
J'ai vérifier et côté VBA Gigdx est bien coché. Coté Excel j'ai pas trouvé la fonction Gigogne mais uniquement Analysis tool, complement solver etc.... Quand j'ouvre votre excel Temp et que je vais sur 1 autre onglet et que je retourne sur résultat cela bug (je vous ai mis en copie ce que cela donnait. Vraiment désolé
 

Pièces jointes

  • Capture.JPG
    135.5 KB · Affichages: 11
Il semblerait que vous avez oublié d'installer d'abord le complément GigIdx.xlam à partir du précurseur GigIdx.xlsm déposé au poste #10
D'ailleurs, on ne voit pas son projet GigIdx dans l'explorateur de projet montré par votre image.
Ou alors vous l'avez installé ailleurs que dans la bibliothèque de compléments Excel. Dans ce cas vous devez l'ouvrir manuellement depuis là où vous l'avez mis. Mais même une fois ouvert vous ne le verrez pas si c'est bien un .xlam.
 
Dernière édition:
Remarquez ce sont 3 modules de service dont 2 standard assez gros, et 1 de classe.
Je pourrais vous les installer dans le Temp.xlsm si vous préférez. Mais pour chaque application où vous voudriez les réutiliser vous devrez les y mettre aussi.
 
- 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
5
Affichages
295
Réponses
3
Affichages
259
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…