Dans cet article, nous allons créer une macro pour fractionner les données par nombre spécifique de lignes.

Nous avons des données brutes dans la feuille «RawData». Nous voulons diviser ces données en plusieurs feuilles.

ArrowRawData

ArrowMain

Avant d’exécuter la macro, nous devons spécifier le nombre de lignes requises dans chaque feuille.

ArrowOutput

Explication du code

CntRows = Cint (Feuilles (« Main »). TextBox1.Value)

Le code ci-dessus est utilisé pour obtenir le nombre de feuilles requises dans une feuille.

LastRow = .Range (« A » & .Rows.Count) .End (xlUp) .Row Le code ci-dessus est utilisé pour obtenir le numéro de ligne de la dernière cellule.

Sheets.Add après: = Sheets (Sheets.Count)

Le code ci-dessus est utilisé pour ajouter une nouvelle feuille après la dernière feuille.

Range (« A » & n) .Resize (CntRows, LastColumn) .Copy Range (« A1 »)

Le code ci-dessus est utilisé pour copier le nombre spécifié de lignes dans une nouvelle feuille de calcul.

Veuillez suivre ci-dessous pour le code

Option Explicit

Sub SplitDataToMultipleSheets()

'Declaring variables

Dim LastRow As Long, n As Long, CntRows As Long

Dim LastColumn As Integer

'Getting count of number of rows required in one sheet

CntRows = CInt(Sheets("Main").TextBox1.Value)

'Disabling screen updates

Application.ScreenUpdating = False

With Sheets("RawData")



'Getting row number and column number of last cell

LastRow = .Range("A" & .Rows.Count).End(xlUp).Row

LastColumn = .Range("A1").SpecialCells(xlCellTypeLastCell).Column



'Looping through data in the sheet

For n = 1 To LastRow Step CntRows



'Adding new worksheet

Sheets.Add after:=Sheets(Sheets.Count)

'Copying data to new worksheet

.Range("A" & n).Resize(CntRows, LastColumn).Copy Range("A1")

Next n



.Activate

End With

'Enabling screen updates

Application.ScreenUpdating = True

End Sub

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]