Liste récapitulative infos autre onglet

Magg

XLDnaute Junior
Bonjour,

Je viens vous demander votre aide pour un truc que je n'arrive pas à faire.
Sur le fichier, j'ai un onglet "commandes" sur lequel sont rentrés tous les articles commandés sous format de bon.
Je cherche à remplir automatiquement l'onglet récap mais je ne sais pas comment m'y prendre.
Peut-être que votre regard neuf va me permettre de me rendre compte qu'il y a une façon de modifier le fichier pour que ce soit plus simple :)

Si vous avez des suggestions, n'hésitez pas !
Merci d'avance,
Magg.
 

Pièces jointes

  • Magg liste récap.xlsx
    32 KB · Affichages: 12

sylvanu

XLDnaute Barbatruc
Supporter XLD
Un seul onglet "Récap" et pas d'onglets masqués. Je n'ai pas posté avant de vérifier. :(
1.jpg
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Un premier essai.
La macro se lance en appuyant sur le bouton.
Recap est effacé et reconstruit.
J'ai rajouté les dates de commande et de paiement. Ca ne coutait rien.
VB:
Public DL, NoL                                      ' En public, évite les passages de paramètres entre macros.
Sub Recap()
    Derlig = Range("A65500").End(xlUp).Row          ' Dernière ligne de Commandes
    Sheets("Récap").Range("A2:M10000").ClearContents ' Efface données de Récap
    For NoL = 1 To Derlig                           ' Pour toutes les lignes de Commandes
        If Cells(NoL, 1) = "N° de commande :" Then  ' Si N° de commande alors ... c'est une nouvelle commande
            ExportData                              ' On exporte les data vers Recap
        End If
    Next NoL
End Sub
Sub ExportContext()
' Remplit le contexte
' La ref cellule est la cellule qui contient N° de commande. Donc offset L et C à partir de là.
Set Cde = Sheets("Commandes")                       ' Cde pour Commandes
With Sheets("Récap")
    .Cells(DL, "A") = Cde.Cells(NoL + 0, "B")       ' Bon Cde
    .Cells(DL, "B") = Cde.Cells(NoL - 2, "E")       ' Nom
    .Cells(DL, "C") = Cde.Cells(NoL - 2, "D")       ' Prénom
    .Cells(DL, "D") = Cde.Cells(NoL - 2, "G")       ' CodPost
    .Cells(DL, "L") = Cde.Cells(NoL + 1, "B")       ' DateCommande
    .Cells(DL, "M") = Cde.Cells(NoL + 0, "J")       ' DatePaiement
End With
End Sub
Sub ExportData()
' Exporte chaque article
LA = NoL + 4                                        ' Premier article ( LA pour Ligne Article )
Set Cde = Sheets("Commandes")                       ' Cde pour Commandes
With Sheets("Récap")
    While Sheets("Commandes").Cells(LA, "A") <> ""  ' Tant qu'il y a un article
        DL = 1 + .Range("A65500").End(xlUp).Row     ' Cherche dernière ligne de Récap
        ExportContext                               ' Stocke le contexte ( Nom, Prénom ... )
        .Cells(DL, "E") = Cde.Cells(LA, "A")        ' Ref article
        .Cells(DL, "F") = Cde.Cells(LA, "B")        ' Qté
        .Cells(DL, "G") = Cde.Cells(LA, "D")        ' Détail
        .Cells(DL, "H") = Cde.Cells(LA, "G")        ' PU VDI
        .Cells(DL, "I") = Cde.Cells(LA, "B")        ' PUC
        .Cells(DL, "J") = Cde.Cells(LA, "I")        ' Tot VDI
        .Cells(DL, "K") = Cde.Cells(LA, "H")        ' TotClient
        LA = LA + 1                                 ' Ligne suivante
    Wend
End With
End Sub
A vous lire pour le résultat.
 

Pièces jointes

  • Magg liste récap (2).xlsm
    42.3 KB · Affichages: 3

Magg

XLDnaute Junior
Nickel, je le modifie pour correspondre exactement à mes colonnes mais c'est parfait !
J'ai remarqué que si je lançais la macro à partir de l'onglet Récap directement, elle effaçait les données mais ne recomplétait pas. (pas de problème, je laisse le bouton macro sur l'onglet Commandes du coup ^^) Pour ma culture, est-il possible de m'expliquer pourquoi ?

En tout cas, merci pour cette macro !
Bonne journée,
Magg
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Tout simplement parce que j'avais prévu de lancer à partir de Commandes. Aussi ai je omis de préciser la feuille concernée dans le premier module.
En PJ c'est rectifié. Je vous le concède, c'est plus propre.
 

Pièces jointes

  • Magg liste récap (3).xlsm
    42.1 KB · Affichages: 2

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87