abonnement Unibet Coolblue
  zondag 30 juni 2019 @ 14:10:11 #301
77676 The_vice
alweer 'n idee?
pi_187679708
quote:
0s.gif Op zaterdag 29 juni 2019 21:28 schreef wiskundenoob het volgende:
Hoe kan ik makkelijk de rijen met gegevens in 1 sheet verdelen over meerdere sheets?

In sheet 1 heb ik 50.000 rijen met gegevens. Ik wil deze rijen verdelen over 50 sheets met elk 1.000 rijen. Uiteindelijk wil ik dus in sheet rij 1 tot en met 1000, sheet 2 rij 1001 tot en met 2001 enzovoort.
Vraagje, wat is het doel hiervan?
Normaal zou ik alle gegevens (die over hetzelfde onderwerp gaan) juist op één sheet willen hebben.

Maar zoals Janneke141 zegt met een macro.
Ik zou hier eens mee beginnen:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Sub splitsheets()
Dim dataSheet As Worksheet
Set dataSheet = Sheets("Sheet1")
Dim WS As Worksheet
Dim i As Long
Dim stepRows As Long
Dim maxheets As Long
stepRows = 10   'pas nummer aan
maxsheets = 4 'pas nummer aan
Dim shtName As String
Dim CopyRows As String

'er van uitgaande dat alles op Sheet1 staat, en er geen andere sheets zijn.
'knikker reeds aangemaakte sheets weg
VBA_Delete_Sheet

    For i = 1 To maxsheets
    
        Set WS = Sheets.Add(After:=Sheets(Worksheets.Count))
            shtName = "s" & customFormat(CStr(i))
            WS.Name = shtName
            CopyRows = 1 + (i - 1) * stepRows & ":" & (i) * stepRows
            dataSheet.Activate
            Rows(CopyRows).Select
            Selection.Copy
            
            Sheets(shtName).Select
            Range("A1").Select
            ActiveSheet.Paste
            Range("A1").Select
            
            dataSheet.Activate
            Debug.Print WS.Name, CopyRows
        Set WS = Nothing
        Next
    Application.CutCopyMode = False
    Range("A1").Select

End Sub
Public Function customFormat(ByRef sString As String) As String
     customFormat = Right("00" & sString, 2 + Len(sString) - Len(CStr(Val(sString))))
End Function
'delete sheets before inserting new with same name
Sub VBA_Delete_Sheet()
For Each Sheet In ActiveWorkbook.Worksheets
     If Not (Sheet.Name = "Sheet1") Then
          'no warnings
          Application.DisplayAlerts = False
          Sheet.Delete
          Application.DisplayAlerts = True
     End If
Next Sheet
End Sub
Hendrik de Heette heette Hendrik de Heette omdat zijn vader ook Hendrik heette.
-vandaag was 't ook mooi-
Excel; zet het eens in een pivot table
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')