1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| Option Explicit
'--- considère Colonne1 du Tableau1 triée
Sub Concatener()
Dim rT1 As Range, rT2 As Range, sC1 As String, kC As Integer
Set rT1 = Range("Tableau1").Cells(1, 1)
Set rT2 = Range("Tableau2").Cells(1, 1)
If Range("Tableau2").Rows.Count > 1 Then Range("Tableau2").Delete '--- vide Tableau2
sC1 = rT1
While rT1 <> ""
rT2 = rT1
For kC = 1 To 6
rT2.Offset(0, kC) = rT2.Offset(0, kC) & rT1.Offset(0, kC) & vbLf
Next kC
Set rT1 = rT1.Offset(1, 0)
If rT1 <> sC1 Then '--- nouvelle valeur
For kC = 1 To 6 '--- pour supprimer les vbLf inutiles
rT2.Offset(0, kC) = Left(rT2.Offset(0, kC), Len(rT2.Offset(0, kC)) - 1)
Next kC
sC1 = rT1
Set rT2 = rT2.Offset(1, 0)
End If
Wend
End Sub |
Partager