[résolu]Excel : Concaténer plusieurs lignes

Posez ici toutes les questions concernant un ou plusieurs logiciels, payants ou gratuits. Pour les demandes spécifiques aux systèmes d'exploitation, passez plutôt par les sections dédiées.

Modérateur: Modérateurs

[résolu]Excel : Concaténer plusieurs lignes

Messagepar Tosem » 23 Juil 2013 07:34

Bonjour,

Voici ma colle :
J'ai un fichier Excel.
J'aimerais concaténer plusieurs lignes de la colonne B lorsque la valeur de la colonne A est identique.
Dans l'exemple joint, vous avez la feuille de départ et le résultat que j'aimerais obtenir.

Départ : Image
Résultat : Image

Je pense qu'il faut passer par du VBScript mais comme je ne connais pas ce langage ...

Merci d'avance pour vos idées !
Dernière édition par Tosem le 24 Juil 2013 08:18, édité 1 fois.
"Si ce que tu as à dire est moins beau que le silence, alors tais-toi !"
Avatar de l’utilisateur
Tosem
Libellulien Junior
Libellulien Junior
 
Messages: 424
Inscription: 29 Sep 2006 13:57
Localisation: Gruyère Land

Re: Excel : Concaténer plusieurs lignes

Messagepar bororo » 23 Juil 2013 09:27

Salut
Quand j'ai un souci excel,je demande ici certes car le forum regorge de petits genies en herbe.
Cependant tu peux,pour te familiariser avec le VBscript,consulter ce site.
http://www.excel-downloads.com/
Avatar de l’utilisateur
bororo
Modérateur
Modérateur
 
Messages: 2099
Inscription: 13 Déc 2003 21:33
Localisation: Bordeaux

Re: Excel : Concaténer plusieurs lignes

Messagepar Tosem » 23 Juil 2013 09:54

Merci, je vais y jeter un œil.

Mais si qqun a une idée :mrgreen:
J'suis preneur. :-D
"Si ce que tu as à dire est moins beau que le silence, alors tais-toi !"
Avatar de l’utilisateur
Tosem
Libellulien Junior
Libellulien Junior
 
Messages: 424
Inscription: 29 Sep 2006 13:57
Localisation: Gruyère Land

Re: Excel : Concaténer plusieurs lignes

Messagepar ascoli47 » 23 Juil 2013 13:41

Bonjour

Ici tu as une explication http://www.commentcamarche.net/faq/3469 ... es-donnees

Enjoy
ImageCueille le jour présent , en te fiant le moins possible au lendemain
Avatar de l’utilisateur
ascoli47
Maître Libellulien
Maître Libellulien
 
Messages: 599
Inscription: 31 Juil 2005 16:18
Localisation: Lille

Re: Excel : Concaténer plusieurs lignes

Messagepar chrisv » 23 Juil 2013 17:04

Bonjour Tosem,

A mettre dans un module du classeur...
(Alt+F11 / Insertion / Module)

Option Explicit

Sub zaza()
Dim i As Long
Dim strName As String
Application.ScreenUpdating = False
strName = ActiveSheet.Name
Sheets.Add.Name = "Copy of " & strName
With Sheets(strName)
[A1:B2] = .[A1:B2].Value
For i = 3 To .[A1].End(xlDown).Row
If .Cells(i, 1) = .Cells(i - 1, 1) Then
[B1].End(xlDown) = [B1].End(xlDown) & Chr(10) & .Cells(i, 2)
Else
[B1].End(xlDown).Offset(1) = .Cells(i, 2)
End If
Next i
End With
[A2].AutoFill Range("A2:A" & [B1].End(xlDown).Row), 2
End Sub


ChrisV

nb: le langage de prog sous Office est VBA et non VBScript... :)
Dernière édition par chrisv le 24 Juil 2013 01:44, édité 2 fois.
Avatar de l’utilisateur
chrisv
 
Messages: 3
Inscription: 23 Juil 2013 16:58

Re: Excel : Concaténer plusieurs lignes

Messagepar DJesus » 23 Juil 2013 21:54

Bonjour !

Il y a bien plus simple => Ajouter une "Table Pivot"...
Selectionner le premier élément à grouper (chiffres) et le mettre dans le groupage des lignes (boite en bas à gauche), et y ajouter ensuite le 2e groupe (text)
=> ne rien mettre dans la section "Valeurs" (boite en bas à droite), sinon ca va compter les éléments de chaque groupe..

C'est peut-être pas très esthétique, mais cela à l'avantage d'être très rapide et pas besoin de coder quoi que ce soit.
En plus on peut avoir une table initiale plus complexe, sans avoir a modifier du code...

Note: On oublie souvent les Tables Pivot et leur puissance de groupage des table et le comptage. Très pratique pour les statistiques....

A+
DJesus
Avatar de l’utilisateur
DJesus
 
Messages: 29
Inscription: 23 Juil 2013 21:41
Localisation: Geneva, Suisse

Re: Excel : Concaténer plusieurs lignes

Messagepar chrisv » 24 Juil 2013 01:08

Bonjour DJesus,

Il ne s'agissait pas d'un oubli, mais bien d'une préférence...

Les TCD sont certes puissants, mais à mon goût, trop "statiques".
Ils ne se réactualisent par exemple pas automatiquement, si les données existantes sont modifiées, il faut impérativement l'actualiser pour que les modifications soient prises en compte; l'insertion de données (lignes) supplémentaires n'est également pas automatiquement traitées, il faut systématiquement redéfinir la source de données...
Pas vraiment pratique lorsque le tableau "initial" est "dynamique" et que des données sont ajoutées au fil du temps.

D'autre part, le fait de réfléchir sur "une procédure" permet souvent une vision plus claire des résultats renvoyés et souhaités, surtout, et justement d'ailleurs, sur des tables beaucoup plus complexes...

ChrisV
Avatar de l’utilisateur
chrisv
 
Messages: 3
Inscription: 23 Juil 2013 16:58

Re: Excel : Concaténer plusieurs lignes

Messagepar Tosem » 24 Juil 2013 08:17

Hello !

Merci à tous pour vos réponses, c'est super !
Cela fonctionne super bien.
:supers:

Je vous mets quand même ci-dessous un autre code qu'on m'a proposé sur un autre forum, ça peut aussi vous servir et c'est une autre possibilité :
Code: Tout sélectionner
Option Explicit
Private Sub Concatener_Click()
Dim DerLigD As Long, LigneC As Long
Dim Dico, k
Dim C As Range
Dim WsC As Worksheet
Dim n As Integer
Dim Texte As String
    Application.ScreenUpdating = False
    With Worksheets("Depart")
        DerLigD = .Range("A" & Rows.Count).End(xlUp).Row
        Set Dico = CreateObject("Scripting.dictionary")
        Set WsC = Worksheets("Resultat")
        For Each C In .Range("A2:A" & DerLigD)
           If Not Dico.Exists(C.Value) Then Dico.Add C.Value, C.Offset(0, 1).Value
        Next C
        k = Dico.keys
        LigneC = 2
        WsC.Range("A2:B" & WsC.Range("A1").End(xlDown).Row).ClearContents
        For n = 0 To Dico.Count - 1
            WsC.Range("A" & LigneC).Value = k(n)
            For Each C In .Range("A1:A" & DerLigD)
                If C = k(n) Then Texte = Texte & C.Offset(0, 1) & Chr(10)
            Next C
            WsC.Range("B" & LigneC).Value = Left(Texte, Len(Texte) - 1)
            Texte = ""
            LigneC = LigneC + 1
        Next n
        Set WsC = Nothing: Set Dico = Nothing
    End With
End Sub
"Si ce que tu as à dire est moins beau que le silence, alors tais-toi !"
Avatar de l’utilisateur
Tosem
Libellulien Junior
Libellulien Junior
 
Messages: 424
Inscription: 29 Sep 2006 13:57
Localisation: Gruyère Land

Re: [RESOLU]Excel : Concaténer plusieurs lignes

Messagepar chrisv » 24 Juil 2013 13:12

Bonjour Tosem,

Tu peux indiquer le forum et l'auteur stp ? :)
Merci du retour...


ChrisV
Avatar de l’utilisateur
chrisv
 
Messages: 3
Inscription: 23 Juil 2013 16:58

Re: [RESOLU]Excel : Concaténer plusieurs lignes

Messagepar Tosem » 24 Juil 2013 14:09

Le forum : http://forum.excel-pratique.com
L'auteur du post : frangy

Bon a-m !
"Si ce que tu as à dire est moins beau que le silence, alors tais-toi !"
Avatar de l’utilisateur
Tosem
Libellulien Junior
Libellulien Junior
 
Messages: 424
Inscription: 29 Sep 2006 13:57
Localisation: Gruyère Land


Retourner vers Software - Logiciels

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités