XL 2013 Création d'une macro pour additionner valeurs et envoyer sur autre feuille

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 !

débutantplus

XLDnaute Junior
Bonjour à tous et à toutes,
Je suis à la recherche d'une macro qui pourrait me faire gagner beaucoup de temps.
Je souhaiterais que la macro additionne les valeurs "Qté" si les critères "date de livraison" ; "Désignation" ; "lot" ; "liquidé" sont identiques ( sur la feuille "Commandes" )
et qu'elle envoi les résultats des aditions ou si il y a pas d'addition à réaliser des valeurs tout court sur la feuille "stock commande (2) " à la bonne cellule ( date de livraison et critères identiques).
Attention elle doit travailler que sur les lignes portant le critère "liquidé".
J'espère que c'est clair, ne pas hésiter à me demander des précisions, je vous laisse mon fichier ci joint.
Merci d'avance pour votre travail.
 

Pièces jointes

Solution
Re bonjour,
Et voici la version avec macro (exécutée lors de l'activation et la désactivation de la feuille)
Dans le module M01_Stock_Cmdes
Enrichi (BBcode):
Sub Qté_Dés_Lot_Date()

     Dim WshStockCmdes As Worksheet: Dim LoS As ListObject
     Dim Nb_Col As Long, Nb_Lgn As Long
    
     Set WshStockCmdes = Feuil11: Set LoS = WshStockCmdes.ListObjects(1)
     Nb_Lgn = LoS.ListRows.Count: If Nb_Lgn < 1 Then Exit Sub
     Nb_Col = LoS.ListColumns.Count - 1: If Nb_Col < 1 Then Exit Sub
    
     Application.ScreenUpdating = False
     With LoS.DataBodyRange.Offset(0, 1).Resize(, Nb_Col)
          .FormulaR1C1 = "=SUMPRODUCT((Tb_CMDES[Qté])*((Tb_CMDES[Désignation]&CHAR(10)&Tb_CMDES[Lot])=(Tb_STOCK_CMDES[#Headers] C))*(Tb_CMDES[Date...
Bonjour à toutes & à tous, bonjour @débutantplus
Voilà toujours une solution par formule.
Tes dates de livraison sont en fait des textes avec comme séparateur le point, j'ai fait avec ...
La concaténation Désignation Lot n'était pas homogène (avec ou sans espace pour séparer) j'ai mis systématiquement un retour à la ligne (ALT+ENTRÉE).
Pour plus de lisibilité dans la formule, j'ai créé deux tableaux structurés "Tb_CMDES" et "Tb_STOCK_CMDES".
La formule (En colonne B) :
Enrichi (BBcode):
=SOMMEPROD((Tb_CMDES[Qté])*((Tb_CMDES[Désignation]&CAR(10)&Tb_CMDES[Lot])=(Tb_STOCK_CMDES[#En-têtes] B:B))*(Tb_CMDES[Date livr.]=TEXTE(Tb_STOCK_CMDES[[#Cette ligne];[Date]];"jj.mm.aaaa")))
à recopie vers la droite par Copier-Coller (et non en tirant vers la droite)
Amicalement
Alain
MODIF : Version sans formules matricielles et compatible Office2013
 

Pièces jointes

Dernière édition:
Re bonjour,
Et voici la version avec macro (exécutée lors de l'activation et la désactivation de la feuille)
Dans le module M01_Stock_Cmdes
Enrichi (BBcode):
Sub Qté_Dés_Lot_Date()

     Dim WshStockCmdes As Worksheet: Dim LoS As ListObject
     Dim Nb_Col As Long, Nb_Lgn As Long
    
     Set WshStockCmdes = Feuil11: Set LoS = WshStockCmdes.ListObjects(1)
     Nb_Lgn = LoS.ListRows.Count: If Nb_Lgn < 1 Then Exit Sub
     Nb_Col = LoS.ListColumns.Count - 1: If Nb_Col < 1 Then Exit Sub
    
     Application.ScreenUpdating = False
     With LoS.DataBodyRange.Offset(0, 1).Resize(, Nb_Col)
          .FormulaR1C1 = "=SUMPRODUCT((Tb_CMDES[Qté])*((Tb_CMDES[Désignation]&CHAR(10)&Tb_CMDES[Lot])=(Tb_STOCK_CMDES[#Headers] C))*(Tb_CMDES[Date livr.]=TEXT(Tb_STOCK_CMDES[[#This Row],[Date]],""jj.mm.aaaa"")))"
          .Value = .Value
          .Replace What:="0", Replacement:="", LookAt:=xlWhole
     End With
     Application.ScreenUpdating = True
    
End Sub
Code de la feuille "stock commandes (2)"

Enrichi (BBcode):
Private Sub Worksheet_Activate()
     Qté_Dés_Lot_Date
End Sub

Private Sub Worksheet_Deactivate()
     Qté_Dés_Lot_Date
End Sub
Avec les mêmes conditions que pour le post #2
Amicalement
Alain
 

Pièces jointes

- 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

Retour