Fusion lignes excel

Résolu
Bonjour,

j'ai vu sur un précedent poste qu'il était possible de fusionner des lignes

Voici mon tableau :

A 25
A 75

B 55
B 25
B 20

Et je voudrais tout sur la meme ligne...Serais ce possible?

Merci beaucoup

PS: je peux eventuellement poster mon tableau
Configuration: Windows XP
Internet Explorer 6.0

25 réponses

Résumé de la discussion

Le sujet concerne la fusion de lignes dans un tableau Excel afin d’obtenir toutes les valeurs A et B sur une seule ligne et de simplifier l’affichage. Plusieurs répondants indiquent que la fonction Consolidate n’ajoute pas les valeurs comme attendu et ne fusionne pas les lignes, ce qui ne satisfait pas l’objectif. D’autres proposent d’utiliser une macro VBA, notamment le script Dedouble, avec des variantes pour adapter le nom de la feuille et optimiser le temps d’exécution. En cas de cas d’usage plus volumineux, certains évoquent la nécessité de copier la feuille et de tester les résultats sur un échantillon afin d’éviter les pertes de données et les erreurs.

Bobot (l’IA à votre service)
  1. Contributeur
    Bonjour, :-)
    Effectivement, ce serait bien si tu mettais ton classeur sur Cjoint.com
    A+
    1. J'ai essayer la focntion consolider, mais cela ne marche pas...
      1. Contributeur
        Si je comprend bien,
        Tu voudrais sélectionner les lignes qui ont le même N° dans la colonne B et qu'il n'y ai plus qu'une seule ligne mais avec les données des autres lignes, ensuite supprimer les ligne en doublons ?
        Tu dis
        1. oui tout à fait, comme dans le début de mon tableau en fait
          1. Pour le moment je fais tout à la main...

            Mais c'est surtout pour avoir un modele car aprés j'aurai d'autres tableau à traité comme celui ci qui seront plus grand

            Un modele pourrait me faire gagner beaucoup de temps :)

            MErci
            1. Contributeur
              Encore une question, pour éviter de surcharger la fonctions
              Je remarque que les N° en colonne B, quand il sont identiques les lignes se suivent !
              Pourrait-il arriver que ce même N° se retrouve 25, ou xx nombre lignes plus loin.
              Si oui, la macros va prendre un temps fou avec le nombre de lignes que tu a.
              1. Contributeur
                OK, mais je doit m'absenter, ce serra pour la soirée ou demain.
                A+
                1. oui bien sur, il n'y a pas de probleme.

                  J'attends ta réponse soit ce soir soit pour demain.

                  Merci encore pour ton aide

                  Bonne fin de journée
                  1. Contributeur
                    Avant d'employer la macros fait une copie de la feuille... ont ne sait jamais.
                    Je l'ai tester et cela m'a l'air de correspondre à ce que tu veux.
                    Tu colle le code dans un module général.
                    Sub Dedouble()
                    Dim Lig As Long
                    Dim Col As Integer
                    Dim TP
                        Application.ScreenUpdating = False
                        Lig = 2
                        With Sheets("Feuil1")
                            TP = Cells(1, 2)
                            While Cells(Lig, 2) <> ""
                                If Cells(Lig, 2) = TP Then
                                    For Col = 4 To 26
                                        If Cells(Lig, Col) <> "" Then
                                            Cells(Lig - 1, Col) = Cells(Lig - 1, Col) + Cells(Lig, Col)
                                        End If
                                    Next Col
                                    Rows(Lig).Delete
                                Else
                                    TP = Cells(Lig, 2)
                                    Lig = Lig + 1
                                End If
                            Wend
                        End With
                        Application.ScreenUpdating = True
                    End Sub

                    Ca prend quand même quelques secondes.
                    Et tu peu avantageusement remplacer les formules que tu a en AA par
                    =SOMME(D1:Z1)

                    que tu met sur la 1ère ligne ensuite tu copie vers le bas.
                    Tu dis...
                    1. Merci beaucoup pour ton travail.

                      Par contre ne connaissant pas du tout ce genre d'opération, je voulais savoir ou je devais mettre cette expression?

                      Et surtout comment je peux l'appliquer aux autres tableaux que j'aurai a traité par la suite

                      Encore merci
                      1. Contributeur
                        Dans Excel ...
                        Alt+F11 pour entrer dans l'IDE du VBA
                        sur le menu >> Insertion >> Module
                        C'est dans cette nouvelle fenêtre que tu colle le code.
                        Tu peu ensuite mettre le curseur DANS la macros et taper F5 pour exécuter.
                        Pour éviter les erreurs j'ai rectifier la macros, emploi celle ci-dessous.
                        Sub Dedouble()
                        Dim Lig As Long
                        Dim Col As Integer
                        Dim TP
                            Application.ScreenUpdating = False
                            Lig = 1
                            With Sheets("Feuil1")
                                TP = .Cells(Lig, 2)
                                Lig = Lig + 1
                                While .Cells(Lig, 2) <> ""
                                    If .Cells(Lig, 2) = TP Then
                                        For Col = 4 To 26
                                            If .Cells(Lig, Col) <> "" Then
                                                .Cells(Lig - 1, Col) = .Cells(Lig - 1, Col) + .Cells(Lig, Col)
                                            End If
                                        Next Col
                                        .Rows(Lig).Delete
                                    Else
                                        TP = .Cells(Lig, 2)
                                        Lig = Lig + 1
                                    End If
                                Wend
                            End With
                            Application.ScreenUpdating = True
                        End Sub


                        Pour adapter à d'autre feuille faut changer
                        "Feuil1" par le nom de la feuille
                        Lig = la 1ère ligne à traiter
                        Exemple: si tu a 2 lignes de titres faut mettre 3
                        Tu dis...
                        1. Super, tout fonctionne!!!

                          Merci beaucoup pour ton aide

                          Bonne journée et à bientot
                          1. Bonjour,

                            voila j'aurai de nouveau besoin d'un petit programme pour me simplifier la vie :)

                            Je pense qu'il s'agit presque du meme que celui précedent, je poste mon tableau ci joint :

                            http://www.cijoint.fr/cjlink.php?file=cj200903/cijtZvIivg.xls

                            en fait j'ai un numéro de site(premiere colonne)
                            des valeurs d'occupâtions du sol
                            des pourcentages

                            J'aimerais obtenir une seule ligne par numéro de site avec un pourcentage pour chaque occ sol

                            Je pensais pouvoir réutiliser celui du dessus mais apparement pas....

                            Merci beaucoup une nouvelle fois pour votre aide si précieuse
                            Cordialement, nicolas
                            1. Contributeur
                              Re.. bonjour,
                              Effectivement le code précédant ne va pas convenir.
                              Si j'ai bien compris tu veux remettre toutes les donnée sur les première lignes et supprimer quand elle sont déplacées ?
                              Ca va être beaucoup plus compliquer comme macros, laisse moi un peu de temps, je cogite pour avoir une solution.
                              Tu a beaucoup de fichier de ce genre ? parce qu'une macros pour une seule fois ça ne vaut pas la peine.
                              Tu dis
                              1. oui j'en ai beaucoup dans ce genre à venir(environ une 40aine)

                                En fait ce tableau represente des bassins versants que je croise avec une occupation du sol
                                Je veux le pourcentage d'occ sol sur le BV

                                Ici je n'ai que 7 BV il me semble...mais pour d'autres calculs j'en aurai plus

                                En fait je veux une seule ligne su style :
                                533 320 240 ...... total
                                PA2635 50 25 25 100%

                                J'espere etre clair sinon je peux poster une ebauche de résultat finla que je fais a la main

                                Mon probleme est qu'il ne fait pas les calculs d'occ sol directement et que je me retrouve avec le Bv qui comprends plusieurs valeurs pour le meme occsol...
                              2. @youchlurepardon voila ce que je veux :
                                ..................511......333.........211............total
                                PA2635.......25........25...........50............100%
                              3. @youchlurePar contre je ne comprends pas vraiment pourquoi la macro précedente ne marche pas, en fait j'arrive pas à voir la difference entre mes 2 types de résultats...
                            2. Contributeur
                              Bon, beh BV pour moi... ça veux rien dire
                              et oui, met moi un résulat souhaiter pour que je comprenne
                              parce que jusqu' ici.. j'ai pas compris.
                              1. BV: bassins versants

                                http://www.cijoint.fr/cjlink.php?file=cj200903/cijSp23E3R.xls

                                voici pour 2 bassins le resultat voulu

                                MErci encore
                              2. @youchlureEn fait BV correspond à PA3250 etc ...ce n'est pas important en soit...
                            3. Contributeur
                              Prennons plutôt le 2632, si j'ai compris, tu veux 7,4 dans la colonne D ?
                              1. oui tout à fait je veux 7.4 dans la col D et 5.9 ds la G et ainsi de suite
                            • 1
                            • 2