Fusion de lignes sur Excel [Résolu/Fermé]

Signaler
Messages postés
6
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
9 avril 2009
-
Messages postés
3
Date d'inscription
lundi 28 juin 2010
Statut
Membre
Dernière intervention
24 novembre 2015
-
Bonjour, je n'ai pas trouvé de réponse à ma questions sur les sujets voisins déjà évoqués.
J'aimerais fusionner des lignes excel portant le même nom sans perdre le contenu des cellules.

Je pars de:


               2007               2006
Julien	  14	
Julien		                         12
Paul	     10	
Paul		                            8


Je voudrais arriver à

               2007               2006 
Julien	    14	                     12
Paul	     10	                       8


Si possible, j'aimerais éviter une macro.

Merci de vos lumières.

4 réponses

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 106
Une macro qui te fais ca... A coller dans un module strandard.
Sub Concatene()
Dim i As Integer, Txt As String
Dim e As Integer, y As Integer
    Sheets("Feuil1").Select
    For i = Range("A1").SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        Txt = LCase(Cells(i, 1).Value)
        If Txt <> "" Then
            'Compare si autre ligne méme texte
            For e = i - 1 To 1 Step -1
                If LCase(Cells(e, 1)) = Txt Then
                'il y a un Doublon
                    For y = 2 To Cells(i, 1).SpecialCells(xlCellTypeLastCell).Column
                        'concatène les 2 lignes
                        If Cells(i, y) <> "" And Cells(e, y) = "" Then
                            Cells(e, y) = Cells(i, y)
                        End If
                    Next y
                    'Supprimé la ligne
                    Rows(i).Delete
                End If
            Next e
        End If
    Next i
End Sub

A+
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60769 internautes nous ont dit merci ce mois-ci

Messages postés
3
Date d'inscription
lundi 28 juin 2010
Statut
Membre
Dernière intervention
24 novembre 2015

Même si ce topic est très ancien, je voulais te remercier LERMITTE222 pour ta solution qui a très bien fonctionné pour un de mes tableau comportant plusieurs centaines de lignes et une trentaine de colonnes avec des infos parfois en ligne 1 parfois en ligne 2.
Parc contre, YUGNAT10, je n'y suis pas arrivé avec la fonction consolider. Si tu peux nous dire comment tu as fait.
Merci.
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 106
sans macro, ne fusse que pour supprimé une ligne c'est pas possible
A+
Messages postés
6
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
9 avril 2009

Si il n'ya vraiment pas d'autre solution, alors je me mettrai à la macro. Vous auriez une formule à me proposer éventuellement?
Merci.
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 106 >
Messages postés
6
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
9 avril 2009

Je vois ca, un peu de patience
Messages postés
6
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
9 avril 2009
>
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020

En fait, je viens de trouver la solution en tatonant. Il suffit d'utiliser la fonction "consolider" d'excel. Pas besoin de macro.

Merci quand même d'avoir cherché!
Bonjour,

je me permet de relancer ce poste car j'ai une question concernant sensiblement le meme problème que celui exprimer par yugnat10 mais en plus complex.

Voila j'ai trois colones et 2567 lignes

Fournisseur Total HT Délai de règlement
F4942601 3 664,70 € 30J DATEFACT
F4942601 3 976,99 € 30J DATEFACT
F4942601 517,59 € 30J DATEFACT
F4942601 2 584,01 € 30J DATEFACT
F4942601 3 390,70 € 30J DATEFACT
F5937001 3 500,00 € 30J DATEFACT
F4942601 8 325,92 € 30J DATEFACT
F4942601 3 090,36 € 30J DATEFACT
F4942601 2 094,93 € 30J DATEFACT
F5937001 6 000,00 € 30J DATEFACT
F4942601 4 077,00 € 30J DATEFACT
F4942601 3 276,29 € 30J DATEFACT
F4942601 3 101,10 € 30J DATEFACT
F5937001 5 000,00 € 30J DATEFACT
F4942601 1 699,21 € 30J DATEFACT
F6000084 66,35 € 30J FM
F3360001 192,76 € 30J FM
F7718301 103,90 € 30J FM
F6011006 1 741,84 € 30J FM


je voudrai que excel me fasse la somme des lignes dont le fournisseur est le meme et qu'il me laisse le delai de réglement

Exemple de résulta F4942601 39 798,80 € 30J DATEFACT

Le but est de pouvoir obtenir dans un tableau croiser dynamique le nombre de frournisseur trier par leur délai de réglement et le montant HT attribuer a chacun

Les macros ne me font pas peur si vous avez une solution n'hésitez pas

J'espère avoir etait clair un grand merci d'avance a toute personne qui fera avancer mon problème a biento

Alweddle.

Alexandre.chretien60@laposte.net
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 106
Bonjour,
Tu aurais eu plus de chance d'avoir une réponse en créant ton propre topic,
Mais bon..,
Ton exposé n'est pas fort logique, dans toutes les facturesque tu montre il n'y à pas de date d'achat, donc pour avoir une somme à payer il faudrait au moins avoir une date de facture.
mais soit, si c'est ce qu tu veux
'Supposition (tu ne précise pas)
'Les données sont dans colonne A, B, C

Sub Total()
Dim i As Integer, Tot As Double, Delais As String
Dim RefFournisseur As String
    'Pour activer le calcul, 2 solutions
    '1°) la cellule sélectionnée est sur colonne A
    '2°) par input référence fournisseur
    Delais = ""
    Sheets("Feuil1").Select 'adapter au nom de ta feuille
    If ActiveCell.Column = 1 Then
        RefFournisseur = ActiveCell.Value
    Else
        RefFournisseur = InputBox("Entrez la référence fournisseur", "Total fournisseur")
        If RefFournisseur = "" Then Exit Sub
    End If
    For i = 1 To Range("A1").SpecialCells(xlCellTypeLastCell).Row
        If Cells(i, 1) = RefFournisseur Then
            If Delais = "" Then Delais = Cells(i, 3)
            Tot = Tot + Val(Cells(i, 2).Value)
        End If
    Next i
    MsgBox "Résultat pour le fournisseur: " & RefFournisseur & Chr(10) _
    & "Montant: " & Tot & Chr$(10) _
    & "Délais de payement: " & Delais
    
End Sub

A+