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

XL 2016 [RESOLU] Concatener des lignes si valeurs identiques dans 2 colonnes

ivan27

XLDnaute Occasionnel
Bonsoir à tous,

Dans un fichier de longueur variable, je dois identifier les lignes dont les valeurs en colonnes B et L sont identiques.
Si c'est le cas, je dois :

1 - faire la somme des colonnes C et D
2 - Conserver en colonne A la référence de la première ligne concernée
3 - Recopier en colonne R, toutes les références de la colonne A, séparées par des "/".
4 - Conserver les valeurs d'origine sur les autres colonnes
5 - Supprimer les lignes d'origine.

Pour plus de clarté je vous joints un fichier exemple dans lequel j'ai ajouté les lignes 31 à 34 avec les résultats attendus. Dans cet exemple il reste juste à supprimer les lignes d'origine.
N'hésitez pas à me solliciter si je ne suis pas suffisamment clair.
Avec mes remerciements anticipés, je vous souhaite une excellente soirée
Ivan
 

Pièces jointes

  • test.xls
    32.5 KB · Affichages: 35
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re

Pourquoi la colonne K est vide? Et dans quelle colonne tu veux avoir la somme des deux colonnes(C-D). De plus J et L on les mêmes dates, 1 est suffisante non??

Est-ce qu'il faut faire C + D ou C x D??
 

ivan27

XLDnaute Occasionnel
Il s'agit d'un fichier extrait d'une application métier.
Il peut y avoir des données dans les colonnes que j'ai laissé vides.
De même, il y a des cas ou les dates en colonnes J et L peuvent être différentes. Aussi, il faut prendre en compte la colonne L.
 

ivan27

XLDnaute Occasionnel
Dans mon fichier exemple :
En B je trouve plusieurs fois le code 85.
Je prends toutes les lignes qui ont ce code 85 et une date identique en colonne L. Les lignes 3 à 7 répondent à ce critère.
Donc, j'additionne les valeurs de la colonne C soit 1748,23
J'additionne les valeurs de la colonne D, soit 6
Comme je concatène les lignes, il doit m'en rester une seule (voir ligne 31 en exemple de ce calcul)
En A je conserve la référence de la première ligne concerné par le regroupement.
En R, je note toutes les autres références séparées par des slashs.
Pour finir, je supprime les lignes 3 à 7 pour conserver uniquement la 31.

Si je ne suis pas suffisamment clair, je transmettrai un autre fichier demain avec des couleurs et des bulles d'aide.
Bonne nuit.
Ivan
 
Dernière édition:

ivan27

XLDnaute Occasionnel
Bonjour le forum,
J'espère que mes explications seront plus compréhensibles après une bonne nuit de sommeil.
En pièce jointe un nouveau fichier avec des onglets ''Origine'' et ''Résultat Attendu''.
J'ai mis des commentaires sur l'exemple de couleur jaune.
Merci d'avance pour votre aide.
Ivan
 

Pièces jointes

  • test.xls
    55.5 KB · Affichages: 26

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour ivan27, Lone-wolf ,

Un essai dans le fichier joint. Cliquez sur le bouton Hop! Le code est dans Module1.

EDIT : désolé, je n'avais pas vu que vous étiez sur MAC. La structure Dictionary n'est pas disponible sur MacOS. Donc ça ne fonctionnera pas pour vous.
 

Pièces jointes

  • ivan27- test- v1.xls
    73 KB · Affichages: 31
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour mapomme

@ivan27 : il faut juste ajouter Application.ScreenUpdating = False pour ne pas avoir de sursaut de la feuille. Sinon, super travail de mapomme.

Sub Regrouper()
Dim derlig&, tablo, clef, i&, aux, j&, N, ref, iref

Application.ScreenUpdating = False

With Worksheets("Origine")
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…