Sub Macro1()
Dim s As Object 'déclare la variable s (onglet Source)
Dim d As Object 'déclare la variable d (onglet Destination)
Dim dl As Long 'déclare la variable dl (Dernière Ligne)
Dim i As Long 'déclare la variable i (Incrément)
Dim tb() As Variant 'déclare le tableau tb
Dim j As Long 'déclare la variable j (incrément)
Set s = Sheets("fichier brut") 'définit l'onglet source (tu adapteras)
Set d = Sheets("ce que je voudrais") 'définit l'onglet destination (tu adapteras)
With s 'prend en compte l'onglet source
dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
For i = 1 To dl 'boucle de 1 à dl
.Cells(i, 1).Value = Trim(.Cells(i, 1).Value) 'supprime les éventuels espaces avant et après dans la cellule
'condition si la cellule n'est pas vide et si la cellule au dessous n'est pas vide non plus
If .Cells(i, 1).Value <> "" And .Cells(i + 1, 1).Value <> "" Then
ReDim Preserve tb(1, j) 'redimentionne le tableau tb
tb(0, j) = .Cells(i, 1).Value 'récupère la valeur de la cellule
tb(1, j) = Split(.Cells(i + 1, 1), " - ")(1) 'récupère le texte après " - " de la cellule en dessous
j = j + 1 'incrément j
End If 'fin de la condition
Next i 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet s
d.Range("A1").Resize(UBound(tb, 2) + 1, 2) = Application.Transpose(tb) 'place les données du tableau dans l'onglet d
End Sub