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

rassembler les doublons

  • Initiateur de la discussion Initiateur de la discussion an@s
  • 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 !

an@s

XLDnaute Occasionnel
Bonjour à tous,

dans l'exemple ci-joint un code dans la feuille RECAP qui permet en premier lieu d'importer les informations de chaque feuille en commençant par 210 et les mettre dans le tableau de la feuille RECAP.

le 2ème rôle de ce code consiste à mettre jour le tableau de la feuille Synthèse en se basant sur celui de la feuille RECAP...

le code fonctionne bien mais j'aimerai faire une petite modification en faisant ceci :

en cliquant sur la feuille Synthèse je veux que le code rassemble les lignes dont les cellules de la colonne C sont les mêmes en une seule ligne, et les valeurs des colonnes E jusqu'à M sera la somme des lignes rassemblées.
exemple (lignes 11 & 12, 13 & 15, 10 & 17, 18-19-20-21-22-23)

NB: je n'ai pas de problème de ne plus avoir les formules dans le tableau de la feuilel synthèse et d'avoir juste des valeurs

Merci d'avance pour votre assistance
 

Pièces jointes

Dernière édition:
Bonsoir Job, le forum

j'ai compris pour les secondes, cela n'est pas grave
par contre j'ai constaté un petit souci concernant la colonne M que je saisi manuellement....
si je mets par exemple dans M10 une valeur de 36 e je vais sur une autre feuille et je reviens sur synthèse je remarque que cette valeur change de position et se place sur M12...
il faut fixer toutes les valeurs que je saisie dans la colonne M.... chose qui faisait déjà le code MAJ...mais avec votre modification ce point ne marche pas

Cordialement
An@s
 
bonjour
une autre solution c'est d'appeler maj par évènement activate et de mettre rassemble à la fin du code
de maj ainsi pas de problème avec screenupdating
an tu pourrais tenir compte des autres intervenants et leur dire un mot
 
Bonjour an@s, le forum,
par contre j'ai constaté un petit souci concernant la colonne M que je saisi manuellement....
Eh oui si les colonnes M O P sont renseignées manuellement cela nécessite une petite gymnastique.

Alors maintenant les Worksheet_Activate des feuilles "SYNTHESE" et "RECAP" appellent cette macro :
Code:
Sub MAJ_SYNTHESE()
Dim a(), b(), i&, j%, k As Variant
Application.ScreenUpdating = False
'---mémorisation des valeurs en colonnes M (N) O P---
With Sheets("SYNTHESE").[C10].CurrentRegion
  ReDim a(1 To .Rows.Count): ReDim b(1 To .Rows.Count, 1 To 4)
  For i = 1 To .Rows.Count
    If Application.CountA(.Cells(i, 11).Resize(, 4)) Then _
      a(i) = .Cells(i, 1): b(i, 1) = .Cells(i, 11): b(i, 3) = .Cells(i, 13): b(i, 4) = .Cells(i, 14)
  Next
  .Cells(1, 11).Resize(.Rows.Count, 4).ClearContents 'effacement des colonnes M N O P
End With
'---exécution de la macro Maj---
Call Maj
'---regroupement des doublons---
With Sheets("SYNTHESE").[C10].CurrentRegion.Resize(, 9) 'colonnes C à K (formules)
  .Value = .Value 'supprime les formules
  .Sort .Cells(1), xlAscending, Header:=xlNo 'tri sur la 1ère colonne
  For i = .Rows.Count To 2 Step -1
    If .Cells(i, 1) = .Cells(i - 1, 1) Then
      For j = 3 To 9 'colonnes E à K
        If IsNumeric(CStr(.Cells(i, j))) Then .Cells(i - 1, j) = .Cells(i, j) + Val(Replace(.Cells(i - 1, j), ",", "."))
      Next
      .Rows(i).EntireRow.Delete 'suppression de la ligne doublon
    End If
  Next
  '---restitution des valeurs mémorisées en colonnes M O P---
  For i = 1 To .Rows.Count
    k = Application.Match(.Cells(i, 1), a, 0)
    If IsNumeric(k) Then .Cells(i, 11) = b(k, 1): .Cells(i, 13) = b(k, 3): .Cells(i, 14) = b(k, 4)
  Next
End With
End Sub
Remarque : il ne peut pas y avoir de doublon de client sur les colonnes M O P puisqu'elles sont renseignées manuellement après activation de la feuille "SYNTHESE".

La macro Maj est Private pour ne pas être lancée manuellement ou affectée à un bouton :
Code:
Private Sub Maj() 'Private pour ne pas être lancée manuellement ou affectée à un bouton
Bien sûr on pourrait regrouper ces 2 macros dans une seule mais c'est plus compréhensible ainsi.

Fichier (2).

A+
 

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

Réponses
16
Affichages
464
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…