Pour reproduire cela dans ton fichier d'origine, il faut copier ce code dans un module de ton fichier
(alt +F11 pour ouvrir le gestionnaire de projet VBA, repérer ton fichier dans la liste à gauche, click droit dessus, insérer un module, click droit sur le module => code)
Sub Transpose()
i = 2
Do While Range("B" & i) <> ""
Fligne = Range("B" & i).Row
Do Until Range("B" & i + 1) <> Range("B" & i)
i = i + 1
Loop
Dligne = Range("B" & i).Row
If Dligne <> Fligne Then
Range("C" & Fligne + 1 & ":C" & Dligne & "").Select
Selection.Copy
Range("D" & Fligne).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
Range("C" & Fligne + 1 & ":C" & Dligne & "").EntireRow.Hidden = True
End If
i = i + 1
Loop
End Sub
Ensuite tu insère un bouton via l'onglet développeur et tu lui assigne la macro. Si ton fichier réél a bien exactement la même structure que le fichier test cela devrait fonctionner. Enfin n'hésites pas à revenir prévenir de tout problème.
Pour effacer les lignes au lieu de les masquer, il faut remplacer l'instruction
Range("C" & Fligne + 1 & ":C" & Dligne & "").EntireRow.Hidden = True
par
Range("C" & Fligne + 1 & ":C" & Dligne & "").EntireRow.Delete
Cordialement,