Sortering af arkfaner
Et ofte stillet spørgsmål
omkring Excel er, om det er muligt at sortere arkfanerne? Det er der ingen
umiddelbar mulighed for at gøre. Her er en funktion, der sortere arkene
alfabetisk, efter først at have spurgt om der skal sorteres i stigende eller
faldende orden.
Sub SorterAlfa()
Dim SortRkf As Byte
Dim sh1 As Worksheet
Dim sh2 As Worksheet
SortRkf = MsgBox("Klik Ja for at sortere i stigende orden?" &
_
vbCrLf & "Klik nej for at sortere i
faldende" & _
vbcrlf & "Klik Annuller for at
undlade at sortere", _
vbYesNoCancel + vbQuestion)
Application.ScreenUpdating = False
If SortRkf = vbYes Then
For Each sh1 In Worksheets
For Each sh2
In Worksheets
If sh1.Name > sh2.Name Then
sh2.Move sh1
End If
Next sh2
Next sh1
ElseIf SortRkf = vbNo Then
For Each sh1 In Worksheets
For Each sh2
In Worksheets
If sh1.Name < sh2.Name Then
sh2.Move sh1
End If
Next sh2
Next sh1
Else
Exit Sub
End If
Application.ScreenUpdating = True
End Sub
Er arknavnene tal, og der
ønskes sorteret i numerisk orden i stedet for alfabetisk, kan følgende anvendes.
Sub SorterNum()
Dim SortRkf As Byte
Dim sh1 As Worksheet
Dim sh2 As Worksheet
On Error GoTo Fejl
SortRkf = MsgBox("Klik Ja for at sortere i stigende orden?" &
_
vbCrLf & "Klik nej for at sortere i
faldende" & _
vbCrLf & "Klik Annuller for at
undlade at sortere", _
vbYesNoCancel + vbQuestion)
Application.ScreenUpdating = False
If SortRkf = vbYes Then
For Each sh1 In Worksheets
For Each sh2
In Worksheets
If CInt(sh1.Name) > CInt(sh2.Name) Then
sh2.Move sh1
End If
Next sh2
Next sh1
ElseIf SortRkf = vbNo Then
For Each sh1 In Worksheets
For Each sh2
In Worksheets
If CInt(sh1.Name) < CInt(sh2.Name) Then
sh2.Move sh1
End If
Next sh2
Next sh1
Else
Exit Sub
End If
Exit Sub
Fejl:
If Err.Number = 13 Then
Ans = MsgBox("Denne funktion virker kun, hvis alle arknavne
er numeriske" _
& vbCrLf & "Ønsker du i stedet at
sortere alfabetisk?" _
, vbYesNo + vbExclamation)
If Ans = vbYes Then
Call
SorterAlfa
Else
Exit Sub
End If
End If
Application.ScreenUpdating = True
End Sub
NB! begge makroer skal være i
samme modul.
- Tilbage til makroer -
- Tilbage til Excel -
|