Sheets sortieren - nur eingeblendete
17.04.2005 08:48:18
Erich M.
ich möchte Tabellenblätter sortieren - allerdings nur die eingeblendeten. Aus
den Foren habe ich nachstehende Codes die cih nicht anpassen kann:
Option Explicit
'http://www.herber.de/forum/archiv/48to52/t48769.htm
Sub SortWorksheets()
Dim Cnt%, n%, m%
Dim WS As Worksheet
Set WS = ActiveSheet
''''''''##### nur eingeblendete Sheets?
Cnt = ActiveWorkbook.Worksheets.Count
For m = 1 To Cnt
For n = m To Cnt
If UCase(Worksheets(n).Name) < UCase(Worksheets(m).Name) Then ' ignoriert Groß- /Kleinbuchstaben
' If Worksheets(N).Name < Worksheets(M).Name Then
Worksheets(n).Move Before:=Worksheets(m)
End If
Next n
Next m
End Sub
'http://www.herber.de/forum/archiv/248to252/t251650.htm
Sub SheetsSortieren()
Dim Mldg As Byte
Mldg = MsgBox("sortiert die Sheets in diesem Workbook alphabetisch. Weiter?", vbInformation + vbOKCancel, "")
If Mldg = vbCancel Then Exit Sub
''''#### nur eingeblendete Sheets?
'If Sheets.Visible = True Then
AnzahlRegister = Sheets.Count '= Sheets.Visible = True
'End If
For i = 1 To AnzahlRegister - 1
x = i
For Zähler = i + 1 To AnzahlRegister
If UCase$(Sheets(Zähler).Name) < UCase$(Sheets(x).Name) Then
x = Zähler
End If
Next Zähler
If x > i Then Sheets(x).Move Sheets(i)
Next i
End Sub
Public Sub sortieren_Tabellen()
'http://www.excel-center.de/foren/read.php?2,651,652#msg-652
'von Nepumuk
Dim intIndex1 As Integer, intIndex2 As Integer
Application.ScreenUpdating = False
''''#### nur eingeblendete Sheets?
For intIndex1 = 1 To Worksheets.Count - 1
For intIndex2 = intIndex1 + 1 To Worksheets.Count
If LCase$(Worksheets(intIndex2).Name) < LCase$(Worksheets(intIndex1).Name) Then Worksheets(intIndex2).Move Before:=Sheets(intIndex1)
Next
Next
Application.ScreenUpdating = True
End Sub
Code eingefügt mit: Excel Code Jeanie
Ein geänderter Code reicht.
Besten Dank für eine Hilfe!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
Anzeige