29. März 2024, 15:29
VB-fun.de - Beitragsübersicht zum VB-/VBA-Forum-Archiv 0405
  E03: Excel- Tabellenblätter nach Namen sortieren
 Von Koppinka
 eMail
 Am 04. Februar 2008 um 16:16:01
 Frage Hallo an die Experten,

habe nun eine ganze Weile in der Excel- VBA- Hilfe und hier im Forenarchiv verbracht, bin aber nirgends auf eine Lösung gestoßen, die mir weiter hilft wie folgt:

Habe ein Workbook mit etlichen Tabellen- und Diagrammblättern, die ich per Code anzahlmäßig erweitern kann, auch die neuen Blätter jeweils ans Ende oder vor ein bestimmtes Blatt stellen geht.
Was ich gern möchte ist per Buttonklick die Tabellenblätter (samt Inhalt) nach ihren Blattnamen sortieren (aufsteigend nach Alphabet bzw. Ziffernfolgen)

Beispielname: VC1464_12_25_WE_RMS [nm]

Welche Möglichkeiten hätte ich da?

Wenn ich schon mal hier bin:
Ich habe bei einem Spinbutton einen "Schönheitsfehler" in der sonst funktionierenden Ausführung:
- Der Spinbutton zählt nach Indexnummern auf- und abwärt, überspringt nach Vorgabe verschiedene Werte und fängt am Ende wieder oben oder rückwärts am Anfang wieder unten an
- Der "Schönheitsfehler" liegt darin, dass ich beim Wiedereinstieg von oben oder unten den ersten Wert sofort, den zweiten Wert aber erst nach dem 2. Klick sehe.

Folgende Codes:
Im Formular:
Private Sub SpinButton4_Enter()
Dim Programm As Workbook
Set Programm = ThisWorkbook
With Programm.Worksheets("Hilfsgrößen")
SpinButton4.Value = .Range("L14")
End With
End Sub

Private Sub SpinButton4_SpinDown()
Modul05.SpinButton4_1
Modul05.Überspringen_1
Modul05.SpinButton4_2_1
Modul05.SpinButton4_3
End Sub

Private Sub SpinButton4_SpinUp()
Modul05.SpinButton4_1
Modul05.Überspringen_2
Modul05.SpinButton4_2_2
Modul05.SpinButton4_3
End Sub
Im Modul05
Option Explicit
Dim Programm As Workbook
Dim iSpA As Integer

Sub SpinButton4_1()

Set Programm = ThisWorkbook

Auswertung_WLI.SpinButton4.Min = 11
Auswertung_WLI.SpinButton4.Max = 35

With Programm.Worksheets("Hilfsgrößen")

.Range("L14") = Auswertung_WLI.SpinButton4.Value
'Modul05.Überspringen
End With
Set Programm = Nothing
End Sub

Sub SpinButton4_2_2()

Set Programm = ThisWorkbook

With Programm.Worksheets("Hilfsgrößen")

If .Range("L14") < 35 Then
Auswertung_WLI.SpinButton4.Value = .Range("L14")
Else
.Range("L14") = 11
Auswertung_WLI.SpinButton4.Value = .Range("L14")
Modul05.Überspringen_2
End If

End With
Set Programm = Nothing
End Sub

Sub SpinButton4_2_1()

Set Programm = ThisWorkbook

With Programm.Worksheets("Hilfsgrößen")

If .Range("L14") > 11 Then
Auswertung_WLI.SpinButton4.Value = .Range("L14")
Else
.Range("L14") = 35
Auswertung_WLI.SpinButton4.Value = .Range("L14")
Modul05.Überspringen_1
End If

End With
Set Programm = Nothing
End Sub

Sub SpinButton4_3()

Set Programm = ThisWorkbook

iSpA = Programm.Worksheets("Hilfsgrößen").Range("L14")

With Programm.Worksheets("Hilfsgrößen")

.Range("K40") = .Cells(iSpA, 11)

If .Cells(iSpA, 11) = " " Then
Auswertung_WLI.TextBox98 = " "
Else
Auswertung_WLI.TextBox98 = .Range("K40")
End If

Auswertung_WLI.TextBox98 = .Range("K40")

End With
Set Programm = Nothing
End Sub
Sub Überspringen_2()

Set Programm = ThisWorkbook

iSpA = Programm.Worksheets("Hilfsgrößen").Range("L14")

With Programm.Worksheets("Hilfsgrößen")

For iSpA = iSpA To 35

If .Cells(iSpA, 10) = "grün" Then
.Range("K40") = .Cells(iSpA, 11)

GoTo weiter

Else
.Range("L14") = iSpA + 1
End If

Next iSpA
End With
weiter:

End Sub

Sub Überspringen_1()

Set Programm = ThisWorkbook

iSpA = Programm.Worksheets("Hilfsgrößen").Range("L14")

With Programm.Worksheets("Hilfsgrößen")

For iSpA = iSpA To 11 Step -1

If .Cells(iSpA, 10) = "grün" Then
.Range("K40") = .Cells(iSpA, 11)

GoTo weiter

Else
.Range("L14") = iSpA - 1
End If

Next iSpA
End With
weiter:

End Sub
Kann wahrscheinlich nur eine Kleinigkeit sein.

Danke im Voraus.

Koppinka
[ VB-/VBA-Forum | Archiv 0405 | Archiv-Übersicht ]
 Antworten
E03: Excel- Tabellenblätter nach Namen sortieren - Koppinka 04. Februar 2008 um 16:16:01
zu Frage 1 - Nepumuk 04. Februar 2008 um 18:00:05
Re: zu Frage 1 - Koppinka 05. Februar 2008 um 09:40:25

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB-/VBA-Forum | DirectX | DirectX-Forum | VB.Net | VB.Net-Forum | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum