Fusionner les cellules de plusieurs lignes ayant le même index
cedz_9441
Messages postés
3
Statut
Membre
-
cedz_9441 Messages postés 3 Statut Membre -
cedz_9441 Messages postés 3 Statut Membre -
Bonjour,
Voici résumé mon problème : Je cherche à concatener les contenus textes (sur plusieurs lignes) de cellules se trouvant sur des lignes différentes, mais ayant le même index.
En d'autres termes, j'ai dans mon fichier de départ deux colonnes comme ça :
et je voudrais arriver à ça :
Questions subsidiaire, dans quel ordre les textes seront-ils concaténés ?
Vous l'aurez deviné, j'ai plusieurs centaines d'index et plusieurs milliers de lignes...
L'un(e) d'entre vous aurait-il un idée, sachant que je ne maîtrise ni les macros ni le VBA.
Par avance merci pour votre aide
Voici résumé mon problème : Je cherche à concatener les contenus textes (sur plusieurs lignes) de cellules se trouvant sur des lignes différentes, mais ayant le même index.
En d'autres termes, j'ai dans mon fichier de départ deux colonnes comme ça :

et je voudrais arriver à ça :

Questions subsidiaire, dans quel ordre les textes seront-ils concaténés ?
Vous l'aurez deviné, j'ai plusieurs centaines d'index et plusieurs milliers de lignes...
L'un(e) d'entre vous aurait-il un idée, sachant que je ne maîtrise ni les macros ni le VBA.
Par avance merci pour votre aide
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
as-tu l'intention d'apprendre le VBA?
dans quel ordre les textes doivent-ils être concaténés?
les lignes à concaténer se suivent-elles toujours?-
Bonjour ! je n'ai aucune connaissance et pas vraiment le temps d'apprendre le VBA.
- En l'état actuel du tableau, les textes peuvent être concaténés dans leur ordre d'apparition dans le fichier.
- Donc oui, pour un même index, les lignes à concaténer se suivent dans le tableau
Merci pour votre aide !- voici un exemple, qui suppose que le tableau de départ commence en A1 de la feuille appelée cedz, et qui crée le tableau de destination en C1.
Option Explicit Private Sub cedz() Dim fl As Worksheet, source As Range, texte As String, destination As Range, index As String Set fl = ThisWorkbook.Sheets("cedz") Set source = fl.[A1] Set destination = fl.[C1] index = "" Do While source <> "" If source <> index Then If index <> "" Then destination = index destination.Offset(0, 1) = texte Set destination = destination.Offset(1, 0) End If index = source texte = source.Offset(0, 1) Else texte = texte + vbCrLf + CStr(source.Offset(0, 1)) End If index = source Set source = source.Offset(1, 0) Loop If index <> "" Then destination = index destination.Offset(0, 1) = texte End If End Sub
-
-