Fusion de lignes sur Excel

Résolu/Fermé
yugnat10
Messages postés
6
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
9 avril 2009
- 19 mai 2008 à 16:05
ENGIE42
Messages postés
3
Date d'inscription
lundi 28 juin 2010
Statut
Membre
Dernière intervention
24 novembre 2015
- 14 déc. 2012 à 10:51
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

lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
19 mai 2008 à 19:01
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
ENGIE42
Messages postés
3
Date d'inscription
lundi 28 juin 2010
Statut
Membre
Dernière intervention
24 novembre 2015

14 déc. 2012 à 10:51
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.
0
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
19 mai 2008 à 16:14
sans macro, ne fusse que pour supprimé une ligne c'est pas possible
A+
0
yugnat10
Messages postés
6
Date d'inscription
lundi 19 mai 2008
Statut
Membre
Dernière intervention
9 avril 2009

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

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

19 mai 2008 à 19:00
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é!
0
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
0
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
11 juin 2008 à 10:41
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+
0