Sub transfert()
Dim monTablo()
With Sheets("Feuil1")
derlig = .[A10000].End(xlUp).Row 'repérer la dernière cellule non-vide en colonne A
ReDim monTablo(((derlig - 1) / 12) - 1, 38) 'on réserve un tableau à deux dimensions
'dimension 1=nbre de blocs de 12 ... dimension 2=nbre de colonnes du tableau "final"
ligne% = 0: colonne% = 0 'on initialise 3 variables
For lig = 2 To derlig Step 12 'de la ligne 2 à la dernière ligne, par pas de 12
monTablo(ligne, colonne) = .Cells(lig, 1) 'copier le groupe
monTablo(ligne, colonne + 1) = .Cells(lig, 2) 'copier le code
monTablo(ligne, colonne + 2) = .Cells(lig, 3) 'copier le nom
For i = 0 To 11 'petite boucle pour copier ...
monTablo(ligne, colonne + 3 + i) = .Cells(lig + i, 5) 'les 12 données 1
monTablo(ligne, colonne + 15 + i) = .Cells(lig + i, 6) 'les 12 données 2
monTablo(ligne, colonne + 27 + i) = .Cells(lig + i, 7) 'les 12 données 3
Next i
ligne = ligne + 1
colonne = 0
Next lig
End With
With Sheets("Feuil2")
'on efface, en feuil2, les données sous la ligne de titres
.[A2].Resize(.[A2].CurrentRegion.Rows.Count, .[A2].CurrentRegion.Columns.Count).ClearContents
'on "colle" le contenu du tableau dans une plage de cellules de la bonne dimension
.[A2].Resize(((derlig - 1) / 12), 39) = monTablo
End With
End Sub