Sub decomp2()
Dim Tabinit() As Variant
Tabinit = Range("E7:AG" & Range("E" & Rows.Count).End(xlUp).Row).Value ' récupère le tableau en colonnes E à AG+ - avec toutes les lignes
For i = LBound(Tabinit, 1) To UBound(Tabinit, 1) 'pour i allant de la première à la dernière ligne du tablo
For col = 2 To UBound(Tabinit, 2) 'pour col de 2 à la dernière colonne du tablo
nbrepet = Tabinit(i, col) 'on récupère le nombre de répétitions
If nbrepet <> "" And nbrepet <> 0 Then 'si il y a une valeur
With Sheets("Sheet2") 'dans la feuille 2
last = .Range("A" & .Rows.Count).End(xlUp).Row + 1 'on récupère la première ligne vide de la colonne A
.Range("A" & last).Resize(nbrepet) = Tabinit(i, 1) 'on colle le Codes autant de fois qu'il le faut
.Range("A" & last).Offset(0, col - 1).Resize(nbrepet) = 1 'à coté. sur la bonne colonne, on colle un 1
End With
End If
Next col
Next i
End Sub