Liste récapitulative infos autre onglet

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

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

Un seul onglet "Récap" et pas d'onglets masqués. Je n'ai pas posté avant de vérifier. 🙁
1.jpg
 
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

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
 
- 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
3
Affichages
706
Réponses
2
Affichages
1 K
Retour