Fusion de lignes sur Excel

Résolu
yugnat10 Messages postés 7 Statut Membre -  
ENGIE42 Messages postés 5 Statut Membre -
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.
Configuration: Mac OS X
Firefox 2.0.0.14

4 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    1. ENGIE42 Messages postés 5 Statut Membre
       
      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
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    sans macro, ne fusse que pour supprimé une ligne c'est pas possible
    A+
    0
    1. yugnat10 Messages postés 7 Statut Membre
       
      Si il n'ya vraiment pas d'autre solution, alors je me mettrai à la macro. Vous auriez une formule à me proposer éventuellement?
      Merci.
      0
      1. lermite222 Messages postés 9042 Statut Contributeur 1 199 > yugnat10 Messages postés 7 Statut Membre
         
        Je vois ca, un peu de patience
        0
      2. yugnat10 Messages postés 7 Statut Membre > lermite222 Messages postés 9042 Statut Contributeur
         
        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
  3. alweddle
     
    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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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