OVH Cloud OVH Cloud

Cellules fucionnées+concenténatione

3 réponses
Avatar
lylo
Bonjour,

J'ai des cellules fusionn=E9es dans un classeur Excel dans la colonne A
avec plusieurs lignes de la colonne B qui correspondent. Je voudrais
concat=E9ner toutes les valeurs contenues dans les cellules de la
colonne B dans uen seule cellule.

Par exemple :


Colonne A Colonne B
Donn=E9e 1 Donn=E9es B1
Donn=E9es B2
Donn=E9es B3

Je veux concat=E9ner Donn=E9es B1 B2 et B3 en B1

Vous avez une id=E9e ?

Merci

lylo

3 réponses

Avatar
michdenis
Bonjour Lylo,

Je n'ai pas saisi quelles étaient les cellules fusionnées .. mais pour
concaténer le contenu des cellules, il s'agit d'utiliser ce type de formule :
= B1 & B2 & B3

Évidemment cela suppose que B1:B3 n'est pas une plage de cellules fusionnées.


Salutations!


"lylo" a écrit dans le message de news:
Bonjour,

J'ai des cellules fusionnées dans un classeur Excel dans la colonne A
avec plusieurs lignes de la colonne B qui correspondent. Je voudrais
concaténer toutes les valeurs contenues dans les cellules de la
colonne B dans uen seule cellule.

Par exemple :


Colonne A Colonne B
Donnée 1 Données B1
Données B2
Données B3

Je veux concaténer Données B1 B2 et B3 en B1

Vous avez une idée ?

Merci

lylo
Avatar
lylo
Ooops, j'ai oublié un petit détail.

Je veux automatiser cette opération, et l'écrire en VBA. J'y suis
arrivée avec la propriété MergeCells mais ça ne marche que
lorsqu'il n'y a que 2 lignes correspondant à la cellule fusionnée.

Ca donne à peu près ça

If Range("A" & i).MergeCells = True Then
Range("C" & i).Value = Range("B" & i).Value & Range("B" & i + 1).Value
Rows(i + 1).Delete
Else: Range("C" & i).Value = Range("B" & i).Value
End If

Mais comment faire pour qu'il prenne la totalité des lignes
correspondant à la cellule fusionnée ?

Merci
Avatar
michdenis
En supposant que j'ai compris ta demande,
voici un petit exemple :

'----------------------------------
Sub test1()

If Range("A1").MergeCells Then
For Each c In Range("A1").MergeArea.Cells
Range("C" & c.Row).Value = Range("B" & c.Row).Value & Range("B" & c.Row + 1).Value
Next
Range("A1").MergeArea.Cells.Offset(1).EntireRow.Delete
Else
Range("C1").Value = Range("B1").Value
End If
End Sub
'----------------------------------


Salutations!



"lylo" a écrit dans le message de news:
Ooops, j'ai oublié un petit détail.

Je veux automatiser cette opération, et l'écrire en VBA. J'y suis
arrivée avec la propriété MergeCells mais ça ne marche que
lorsqu'il n'y a que 2 lignes correspondant à la cellule fusionnée.

Ca donne à peu près ça

If Range("A" & i).MergeCells = True Then
Range("C" & i).Value = Range("B" & i).Value & Range("B" & i + 1).Value
Rows(i + 1).Delete
Else: Range("C" & i).Value = Range("B" & i).Value
End If

Mais comment faire pour qu'il prenne la totalité des lignes
correspondant à la cellule fusionnée ?

Merci