Rus5ianguy
Gebruiker
- Lid geworden
- 12 aug 2015
- Berichten
- 5
Hallo,
ik had een klein vraagje, Ik was bezig met een macro bouwen die data splitst in nieuwe sheets. Wat die eigenlijk doet is als die in een bepaalde kolom dezelfde gegevens vindt maakt die voor diezelfde gegevens een aparte sheet. jammer genoeg komt t voor dat de gegevens langer zijn dat 31 karakters waardoor de sheetnaam zijn max overschrijd en wil daardoor het niet splitsen. hieronder vindt je de macro:
"Sub SplitDataNrows()
Dim N As Long, rw As Long, rw1 As Long, rw2 As Long, LR As Long, Titles As Boolean
If MsgBox("Split the activesheet into smaller sheets?", vbYesNo, "Confirm") = vbNo Then Exit Sub
N = Application.InputBox("How many rows per sheet?", "N-Rows", 50, Type:=1)
If N = 0 Then Exit Sub
If MsgBox("Include the title row1 on each new sheet?", vbYesNo, "Titles?") = vbYes Then Titles = True
With ActiveSheet
LR = .Range("B" & .Rows.Count).End(xlUp).Row
For rw = 1 + ---Titles To LR Step N
Sheets.Add
If Titles Then
.Rows(1).Copy Range("A1")
.Range("A" & rw).Resize(N).EntireRow.Copy Range("A2")
Else
.Range("A" & rw).Resize(N).EntireRow.Copy Range("A1")
End If
Next rw
.Activate
End With
Application.ScreenUpdating = False
Dim wkSt As String
Dim wkBk As Worksheet
wkSt = ActiveSheet.Name
For Each wkBk In ActiveWorkbook.Worksheets
On Error Resume Next
wkBk.Activate
Cells.EntireColumn.AutoFit
Next wkBk
Sheets(wkSt).Select
Application.ScreenUpdating = True
End Sub
Ik hoop dat iemand een oplossing weet zonder ***ools te gebruiken.
Alvast bedankt!
ik had een klein vraagje, Ik was bezig met een macro bouwen die data splitst in nieuwe sheets. Wat die eigenlijk doet is als die in een bepaalde kolom dezelfde gegevens vindt maakt die voor diezelfde gegevens een aparte sheet. jammer genoeg komt t voor dat de gegevens langer zijn dat 31 karakters waardoor de sheetnaam zijn max overschrijd en wil daardoor het niet splitsen. hieronder vindt je de macro:
"Sub SplitDataNrows()
Dim N As Long, rw As Long, rw1 As Long, rw2 As Long, LR As Long, Titles As Boolean
If MsgBox("Split the activesheet into smaller sheets?", vbYesNo, "Confirm") = vbNo Then Exit Sub
N = Application.InputBox("How many rows per sheet?", "N-Rows", 50, Type:=1)
If N = 0 Then Exit Sub
If MsgBox("Include the title row1 on each new sheet?", vbYesNo, "Titles?") = vbYes Then Titles = True
With ActiveSheet
LR = .Range("B" & .Rows.Count).End(xlUp).Row
For rw = 1 + ---Titles To LR Step N
Sheets.Add
If Titles Then
.Rows(1).Copy Range("A1")
.Range("A" & rw).Resize(N).EntireRow.Copy Range("A2")
Else
.Range("A" & rw).Resize(N).EntireRow.Copy Range("A1")
End If
Next rw
.Activate
End With
Application.ScreenUpdating = False
Dim wkSt As String
Dim wkBk As Worksheet
wkSt = ActiveSheet.Name
For Each wkBk In ActiveWorkbook.Worksheets
On Error Resume Next
wkBk.Activate
Cells.EntireColumn.AutoFit
Next wkBk
Sheets(wkSt).Select
Application.ScreenUpdating = True
End Sub
Ik hoop dat iemand een oplossing weet zonder ***ools te gebruiken.
Alvast bedankt!