Trouver 2 lignes du même client et les additionner [Résolu/Fermé]

Signaler
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018
-
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018
-
Bonjour,

J'ai un fichier dans lequel j'ai une macro pour un tas de triage et j'aimerais incorporer une section pour traiter une petite exception rencontrée dans la liste de client. Dans le fichier joint, j'ai mis une petite section de mon résultat final. j'ai mis un client en jaune qui se retrouve 2 fois. Et c'est juste le client 3570 qui a ça. Comment incorporer dans ma macro un petit bout qui additionnerait les 2 lignes de ce client pour n'en garder qu'une svp ?

merci
https://www.cjoint.com/c/FDDrAmjlnDV


(excel 2010)

6 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 249
Bonjour,

j'ai une macro pour un tas de triage et j'aimerais incorporer une section pour traiter une petite exception

Comment veux-tu que l'on incorpore un traitement dans une macro dont l'on ignore tout ?
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018

y a trop de stock dedans. Mais l'exemple que j'ai mis, c'est lorsque la macro est terminée. Je veux juste rajouter à la fin de ma macro le truc pour combiner les 2 lignes de ce client.
je reviendrai lundi matin.
merci
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 249
Bonsoir,

Je veux juste rajouter à la fin de ma macro
Il serait plus facile et plus judicieux de le faire à l'écriture de la ligne : si idem => cumuler.
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018

bonjour,

je n'ai pas trop compris à quel endroit je dois inscrire cette formule.
En fait, ce que j'ai envoyé était le résultat final après l'exécution d'une macro. Ça partait d'un fichier que je reçois qui contient tous les clients à facturer et ils sont tous dans la même feuille. Il y a des clients pour le plan A, le plan C et le plan E à facturer. La macro servait à mettre chaque plan dans une feuille séparée en faisant un filtre, puis copier coller dans des feuilles séparées. Donc, après avoir collé le plan C, j'aimerais mettre dans ma macro ce que tu proposes.
Voici cette section de ma macro:
'PLAN C
ActiveSheet.Range("$A$6:$I$500").AutoFilter Field:=1, Criteria1:="C"
Range("A1:I500").Select
Selection.Copy
Sheets("Feuil2").Select
Sheets.Add
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A2").Select
Sheets("Feuil2").Select
Application.CutCopyMode = False

peux-tu m'aider à compléter svp ?

merci beaucoup.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 249
Bonsoir,

Tu as choisis par macro la procédure de filtre que tu n'avais pas réussi à implémenter, il te faut donc boucler sur tes données et les cumuler lors d'identifiant identique en supprimant la ligne qui a été cumulée.

Cependant tu peux avoir le même cas dans tous tes plans et donc ce serait préférable de le faire avant l'éclatement. Il te faudrait aussi faire un tri préalable pour être sûr que les identifiants se suivent bien.
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018

bonjour,

j'aimerais préciser que je ne sais pas composer des macros directement dans le VBA. Je passe par "enregistrer une macro" et je procède avec les étapes voulues au fur et à mesure directement dans mon fichier. C'est pour ça que je ne sais pas comment compléter ma macro. Je prends les solutions proposées et je fais du copier/coller dans ma macro. Si tu pouvais juste m'écrire ce que ça prend, je pourrais le copier svp. Ce serait très apprécié.

merci
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 249
Bonjour,

En fonction de ton exemple cela peut donner cette séquence à placer de préférence avant la séparation du classeur initial.
Dim lig As Long
For lig = 7 To ActiveSheet.UsedRange.Rows.Count
    If Cells(lig, "B").Value = Cells(lig - 1, "B").Value Then
        Cells(lig - 1, "C").Value = Cells(lig - 1, "C").Value + Cells(lig, "C").Value
        Cells(lig - 1, "D").Value = Cells(lig - 1, "D").Value + Cells(lig, "D").Value
        Cells(lig - 1, "G").Value = Cells(lig - 1, "G").Value + Cells(lig, "G").Value
        Rows(lig).Delete
    End If
Next lig

Il est bien évident que si ton classeur n'est pas trié sur "Plan /No" cela ne fonctionnera pas.
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018

salut, ça n'a pas marché.J'ai incorporé ton bout de macro dans la mienne, juste avant le split, j'ai exécuté la macro et au bout d'une minute, j'ai dû faire "escape" pour l'arrêter. Le bug s'est arrêté à "end if".
sais-tu pourquoi ???
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 249
Bonsoir,

Sans doute que ton classeur a beaucoup de lignes utilisées mais vides.
Si tu fais ctrl+fin sur ton classeur tu as quelle ligne d'affichée ?

Remplace la ligne 2 ci-dessus par celle-ci
For lig = 7 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Messages postés
135
Date d'inscription
mardi 11 juin 2013
Statut
Membre
Dernière intervention
19 mars 2018

pour ta première question, si je fais ctrl-fin, j'arrive à la cellule AM45394. Qu'est-ce que ça veut dire ?
Mais j'ai remplacé la ligne 2 par la nouvelle et ça fonctionne très bien.
Donc, la première question ne se pose plus, je pense bien :)

merci beaucoup, t'as résolu mon problème.

bonne journée.