Sub Transfert()
Dim i As Long, sh As Worksheet, j As Byte, mavar, n As Long, var1 'déclaration des variables
Set sh = Sheets("Résultat") affectation de la feuille Résultat à la variable sh
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row 'boucle de la ligne 2 à la dernière ligne
If [T_resultat].Item(1, 1) <> "" Then n = [T_resultat].Rows.Count + 1 Else n = 1 'affectation d'une nouvelle ligne
For j = 1 To 9 'boucle sur les colonnes 1 à 9
[T_resultat].Item(n, j) = Cells(i, j).Value'nc'est la ligne, j c'est la colonne, i c'est la ligne de la feuille "form...."
[T_resultat].Item(n + 1, j) = Cells(i, j).Value
Next 'fin de la boucle
var1 = Split(Cells(i, 10).Value, ",") split coupe la cellule en fonction du délimiteur (ici la ,)
'résultat dans var1(0) et var1(1)
mavar = Split(var1(0), "-") 'ici le délimiteur est le moins- soit 3 résultats
[T_resultat].Item(n, 10) = mavar(0)
[T_resultat].Item(n, 11) = mavar(1)
[T_resultat].Item(n, 12) = mavar(2)
[T_resultat].Item(n, 13) = Cells(i, 10)
mavar = Split(var1(1), "-") 'idem
[T_resultat].Item(n + 1, 10) = mavar(0)
[T_resultat].Item(n + 1, 11) = mavar(1)
[T_resultat].Item(n + 1, 12) = mavar(2)
[T_resultat].Item(n + 1, 13) = Cells(i, 10)
For j = 11 To 29 'boucle sur les colonnes 11 à 29
If j = 23 Then 'si colonne 23 texte devient numérique
[T_resultat].Item(n, j + 3) = Val(Cells(i, j).Value)
[T_resultat].Item(n + 1, j + 3) = Val(Cells(i, j).Value)
Else
[T_resultat].Item(n, j + 3) = Cells(i, j).Value
[T_resultat].Item(n + 1, j + 3) = Cells(i, j).Value
End If
Next
Next
End Sub