Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
596to600
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
596to600
596to600
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sheets sortieren - nur eingeblendete

Sheets sortieren - nur eingeblendete
17.04.2005 08:48:18
Erich M.
Hallo EXCEL-Freunde,
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

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheets sortieren - nur eingeblendete
17.04.2005 09:04:19
geri
Hallo Erich
das 3te habe ich getestet es funktioniert doch einwandfrei, füge CODE
in ein Modul ein.
gruss geri
AW: Sheets sortieren - nur eingeblendete
17.04.2005 09:12:24
Erich M.
Hallo geri,
ich erhalte folgende Fehlermeldung:
Laufzeitfehler 1004
Die Move-Methode des Worksheet-Objektes konnte nicht ausgeführt werden.
markiert wird:
Worksheets(intIndex2).Move Before:=Sheets(intIndex1)
Noch eine Idee?
Besten Dank!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
Anzeige
AW: Sheets sortieren - nur eingeblendete
17.04.2005 09:09:27
Xelleron (Dennis)
Hallo Erich,
würde es so machen:

Sub Arbeitsblättersortieren()
Dim iMax As Integer
Dim Ibl As Integer
Dimibl2 As Integer
Application.ScreenUpdating = False
iMax = ActiveWorkbook.Worksheets.Count
For Ibl = 1 To iMax
For ibl2 = Ibl To iMax
If UCase(Worksheets(ibl2).Name) _
<UCase(Worksheets(Ibl).Name) Then
Worksheets(ibl2).Move before:=Worksheets(Ibl)
End If
Next ibl2
Next IBl
Application.ScreenUpdating = True
End Sub

Gruß Dennis
AW: Sheets sortieren - nur eingeblendete
17.04.2005 09:14:46
Erich M.
Hallo Dennis,
seleb Fehlermeldung wie vorhin; markiert wird:
Worksheets(ibl2).Move before:=Worksheets(Ibl)
Besten Dank nochmal!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
Anzeige
AW: Sheets sortieren - nur eingeblendete
17.04.2005 09:20:46
Nepumuk
Hallo Erich,
heb mal den Mappenschutz auf.
Gruß
Nepumuk
AW: Sheets sortieren - nur eingeblendete
17.04.2005 09:40:56
Erich M.
Hallo Nepumuk,
habe keinen Schutz; siehe auch Beispielmappe von Dennis, ebenfalls ohne Schutz.
Besten Dank nochmal!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
AW: Sheets sortieren - nur eingeblendete
17.04.2005 10:06:31
Nepumuk
Hallo Erich,
dann so:


Sub Arbeitsblättersortieren()
    Dim iMax As Integer
    Dim Ibl As Integer
    Dim ibl2 As Integer
    Application.ScreenUpdating = False
    iMax = ActiveWorkbook.Worksheets.Count
    For Ibl = 1 To iMax
        For ibl2 = Ibl To iMax
            If Worksheets(ibl2).Visible = xlSheetVisible And _
                Worksheets(Ibl).Visible = xlSheetVisible Then
                If UCase(Worksheets(ibl2).Name) _
                    < UCase(Worksheets(Ibl).Name) Then
                    Worksheets(ibl2).Move before:=Worksheets(Ibl)
                End If
            End If
        Next ibl2
    Next Ibl
    Application.ScreenUpdating = True
End Sub


Gruß
Nepumuk
Anzeige
AW: Sheets sortieren - nur eingeblendete
17.04.2005 14:59:05
FP
Hallo Nepumuk,
probier mal das mit 200 bunt durcheinandergewürfelten Blättern :-)
Option Explicit
Public Appl As Application
Public

Sub SortTabs()
Dim wb      As Workbook
Dim ws      As Worksheet
Dim wsn     As Worksheet
Dim intA    As Integer, i As Integer
Set Appl = Application
SetApplModeOnOff False
Set wb = ActiveWorkbook
intA = wb.Sheets.Count
Set wsn = wb.Sheets.Add(After:=wb.Sheets(intA))
With wsn
For Each ws In wb.Sheets
If ws.Visible = xlSheetVisible Then
i = i + 1
.Cells(i, 1) = ws.Name
End If
Next
.Columns(1).Sort .Cells(1)
For i = 1 To .Cells(65536, 1).End(xlUp).Row
Sheets(.Cells(i, 1).Value).Move After:=Worksheets(intA + 1)
Next
.Delete
End With
SetApplModeOnOff
End Sub


Sub SetApplModeOnOff(Optional blnOn = True)
With Appl
.DisplayAlerts = blnOn
.EnableEvents = blnOn
.ScreenUpdating = blnOn
.Interactive = blnOn
.EnableCancelKey = blnOn
If blnOn Then
.Calculation = xlCalculationAutomatic
Else
.Calculation = xlCalculationManual
End If
End With
End Sub

Servus aus dem Salzkammergut
Franz
Anzeige
AW: Sheets sortieren - nur eingeblendete
17.04.2005 15:30:36
Nepumuk
Hi Franz,
okokokok ich habs mit 20 Tabellen getestet. Da hätte das aus- und einschalten und ..... länger gedauert als das sortieren.
Aber, mein liebes Fränzchen, kannst du mir die Verwendung einer öffentlichen Objektvariablen, welche dann nur ein einziges mal angesprochen wird, und dort ohne weiteres durch die Anweisung "With Application" ersetzt werden könnte, plausibel machen?
Sonntägliche Grüße
Nepumuk
AW: Sheets sortieren - nur eingeblendete
17.04.2005 17:07:04
FP
Hallo Nepumuk,
Für dieses Beispiel ist das vielleicht übertrieben, aber diese öffentliche Variable kann man ja in größeren Projekten auch öfter brauchen, oder etwa nicht?
Ausserdem wollte ich Dich nur fragen, was Du von meinem Code hältst.
Was mich speziell interessieren würde: gibt es eine Methode, ein Array sortieren zu lassen? Sort funktioniert ja leider nur mit Range, daher die "Krücke" eines Hilfsblattes, das hinzugefügt und wieder gelöscht werden muss, was mich eher stört...
Schönen Sonntag noch und
Servus aus dem Salzkammergut
Franz
Anzeige
AW: Sheets sortieren - nur eingeblendete
17.04.2005 17:48:12
Nepumuk
Hi Franz,
eine Objektvariable lege ich an, wenn mein Objekt irgendwie so aussieht:
Workbooks("Mappe1").Worksheets("Tabelle2").Range("A1:B22")
weil das ein bisschen unhandlich ist. Aber Application?
Zum sortieren, guckst du mal hier z.B.:
https://www.herber.de/forum/messages/599921.html
Die Listbox ist, weil einspaltig, ein eindimensionales Array. Die Sortierroutine nennt sich Quicksort und ist bis ~ 20.000 Datensätzen ziemlich schnell. Wenn es mehr Daten sind, würde die Methode mit der Tabelle sicher besser abschneiden.
Gruß
Nepumuk
Anzeige
AW: Sheets sortieren - nur eingeblendete
17.04.2005 09:21:53
Xelleron (Dennis)
Hallo Erich,
habe jetzt mal Bsp-Datei hochgeladen! Auf Blatt 2 habe ich nen Button mit dem Code hinterlegt, funzt wunderbar
https://www.herber.de/bbs/user/21256.xls
Gruß Dennis
AW: Sheets sortieren - nur eingeblendete
17.04.2005 09:39:59
Erich M.
Hallo Dennis,
wenn Du eine Tabelle mit xlveryHidden ausblendest, hast Du das gleiche Problem.
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
AW: Sheets sortieren - nur eingeblendete
17.04.2005 10:02:51
andre
Hallo Erich,
ergänze die Bedingung um
And Worksheets(ibl2).Visible <> xlVeryHidden
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige