Regrouper des données de plusieurs lignes en 1 selon condition

Résolu
lanetmel Messages postés 200 Date d'inscription   Statut Membre Dernière intervention   -  
lanetmel Messages postés 200 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à vous tous,

Merci à vous tous de prendre le temps de me lire.
Voici mon problème :
J'ai plusieurs données qui sont classées par ligne, que je souhaiterais regrouper sur une seule ligne à condition que les données de la colonne B soient les mêmes.

Voici un exemple de ce que j'ai :
A / B / C / D / E / F / G / H
Clients/ Séchoirs/ Épais/Essence/ Entrée/ Sortie / fac / QT
WIC/ 1-0201/ 4/4/ MERISIER/ 2016-02-10 / 2016-02-27/ 4627 / 94932
CYM/ 1-0202/ 5/4/ ÉRABLE/ 2016-02-28 / 2016-03-16 / 4636 / 70250
WIC/ 1-0202/ 4/4/ CERISIER/ 2016-02-28 / 2016-03-16 / 4637 / 25694

voici le résultat que je souhaiterais obtenir :
Clients /Séchoirs/ Épais / Essence/ Entrée/ Sortie / Fac / QT
WIC /1-0201/4/4 /MERISIER/ 2016-02-10 2016-02-27 4627 94932
CYM-WIC/1-0202/5/4-4/4/ÉRABLE-CERISIER/2016-02-28/2016-03-16/4636-4637/
95 944

Je manque de place pour illustrer mais bon :
Si le # de séchoir dans la colonne B est le même : on regroupe les données (s'il y a lieu) des colonnes A / C/ D/ G
les colonnes E et F sont toujours les mêmes selon la colonne B
Et dans la dernière colonne il faudrait additionner les données
lorsque qu'il y a plusieurs données, l'élément de séparation serait "-"

Je ne sais pas si mes explications sont claires et je crois savoir que mon problème est assez complexe.. je suis débutante alors pour moi c'est vraiment au dessus de mes capacités..

Si quelqu'un a une idée.. voudrait m'aider.. m'éclairer un peu. Je suis prête à travailler, je ne demande pas du tout fait!

merci à l'avance, c'est vraiment apprécié ce que vous faites

Mélanie

2 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Voici un code basique que tu devrais comprendre et qui réalise ta demande.
    Public Sub regrouper()
    Dim lig As Long, col As Integer
        For lig = 2 To Cells(Rows.Count, 1).End(xlUp).Row
            If Cells(lig, "B").Value = Cells(lig + 1, "B").Value Then
                For col = 1 To 7
                    If Cells(lig, col).Value <> Cells(lig + 1, col).Value Then
                        Cells(lig, col).Value = Cells(lig, col).Value & "-" & Cells(lig + 1, col).Value
                    End If
                Next col
                Cells(lig, 8).Value = Cells(lig, 8).Value + Cells(lig + 1, 8).Value
                Rows(lig + 1).Delete
            End If
        Next lig
    End Sub
    

    1
  2. lanetmel Messages postés 200 Date d'inscription   Statut Membre Dernière intervention   4
     
    bonjour Gbinforme

    un énorme merci! ça fonctionne super bien! je cherchais beaucoup trop compliqué pour rien!

    encore merci!!!!
    Mélanie
    0