Bonsoir Hervé et Bruno
Ci dessous un bout de code qui gère les "entre 2 lignes" à insérer dans ta macro
Dim lig_fin As Long, anc As Long, lig As Long
'ligne fin des données
lig_fin = Range("A10000").End(xlUp).Row
lig = 1
Do While lig < lig_fin
anc = lig
lig = Columns(1).Find("-----", Cells(lig, 1), , , xlByRows).Row
' ta zone de travail se trouve dans ce domaine anc+1 et lig-1
'tu insères donc ici tes lignes de transferts vers toto, tata...
Loop