1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Public Sub DécoupageEnColonnes()
Dim NbDecoupe As Byte ' Nombre de découpes désiré
Dim NbRows As Long ' Nombre total de lignes du fichier (sans l'entête)
Dim NbCols As Integer ' Nombre initial de colonnes du fichier
Dim lgBloc As Long ' Nombre de lignes dans le bloc à copier
Dim StartCell As Range
NbDecoupe = 18 ' A modifier selon ton plaisir !
Set StartCell = ActiveSheet.Range("a1") ' 1ère cellule en haut à gauche du tableau
With StartCell.CurrentRegion
NbRows = .Rows.Count - 1
NbCols = .Columns.Count
End With
lgBloc = Application.WorksheetFunction.RoundUp((NbRows / NbDecoupe), 0)
For i% = 1 To NbDecoupe ' Couper/Coller des blocs de (lgBloc) lignes
StartCell.Offset(1).Offset(i * lgBloc).Resize(lgBloc, NbCols).Cut StartCell.Offset(1, NbCols * i)
Next i%
For i% = 1 To NbDecoupe - 1 ' mise en places des entêtes
For j% = 1 To NbCols
StartCell.Offset(, (i% * NbCols) + j% - 1) = StartCell.Offset(, j% - 1) & "_" & i% + 1
Next j%
Next i%
End Sub |
Partager