Bonjour Samoth, bonjour le forum,
Si une solution VBA peut convenir, essaie comme ça :
Sub ThauTheme()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Set O = Worksheets("Feuil1") 'définit l'onglet O
O.Range("G1").CurrentRegion.Offset(1, 0).ClearContents 'efface les anciennes données
DL = O.Cells(Application.Rows.Count, "B").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne B de l'onglet O
For I = 2 To DL 'boucle des lignes 2 à DL
If O.Cells(I, "B").Value <> "" Then 'si la cellule ligne I colonne B n'est pas vide
TV = O.Range(O.Cells(I, "B"), O.Cells(I, "B").End(xlToRight)) 'définit la tableau des valeurs TV
Set DEST = O.Cells(Application.Rows.Count, "G").End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST
DEST.Resize(UBound(TV, 2), 1).Value = Application.Transpose(TV) 'renvoie dans DEST redimensionnée le tableau TV transposé
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub