Discussion:
Tabellenblätter gruppieren ???
(zu alt für eine Antwort)
Jimmy
2004-02-22 18:57:58 UTC
Permalink
Hi,

ist es möglich in Excel (oder mit Hilfe von VBA) Tabellenblätter zu
gruppieren oder sie in einem eigenen Menupunkt einzelnd darzustellen oder
auch auszuwählen, alphabetisch zu gruppieren etc.

Ich habe einige Excel-Arbeitsmappen, in denen sehr viele einzelne
Tabellenblätter enthalten sind. Es ist ziemlich unübersichtlich und kostet
auch Zeit ständig mit den Pfeilen hin- und her zu navigieren.

Für jeden Tipp dankbar.
Gruß
Jimmy
Herbert Taferner
2004-02-22 20:35:08 UTC
Permalink
Hallo Jimmy,

' Blätter alphabetisch sortieren
'--------------------------------
Sub Sortierung_Blaetter()
Dim i As Integer
Dim j As Integer
For i = 1 To Sheets.Count
For j = 1 To Sheets.Count - 1
If UCase$(Sheets(j).Name) > _
UCase$(Sheets(j + 1).Name) Then
Sheets(j).Move after:=Sheets(j + 1)
End If
Next j
Next i
End Sub
'--------------------------------


Gruppierung von Tabellen
Array von 0 - Ende
oder mit
Option Base 1
zählen mit 1 statt 0 beginnen
'--------------------------------
Sub Gruppe_Sht()

Dim A As Variant
Dim B As Variant
Dim F As Variant

A = Array("Tabelle1", "Tabelle2", "Tabelle3")
B = Array("Tabelle4", "Tabelle5", "Tabelle6")

F = A(2) ' für Tabelle3

End Sub

mfg Herbert
Jimmy
2004-02-22 21:03:31 UTC
Permalink
Danke dir Herbert.
Noch ein Nachtrag zu der Sache mit den Zellen, die eingefärbt werden sollen,
falls sie Formeln oder Bezuege enthalten:

Was muss ich am Code ändern, damit nur der Bereich abgearbeitet wird, den
ich vorher manuell mit der Maus markiert habe ?

"For each c in a.cells.select" funktioniert genauso wenig wie "for each c in
a.range.select".
Wie muss man so etwas formulieren ?

Gruß
Jimmy
Post by Herbert Taferner
Hallo Jimmy,
' Blätter alphabetisch sortieren
'--------------------------------
Sub Sortierung_Blaetter()
Dim i As Integer
Dim j As Integer
For i = 1 To Sheets.Count
For j = 1 To Sheets.Count - 1
If UCase$(Sheets(j).Name) > _
UCase$(Sheets(j + 1).Name) Then
Sheets(j).Move after:=Sheets(j + 1)
End If
Next j
Next i
End Sub
'--------------------------------
Gruppierung von Tabellen
Array von 0 - Ende
oder mit
Option Base 1
zählen mit 1 statt 0 beginnen
'--------------------------------
Sub Gruppe_Sht()
Dim A As Variant
Dim B As Variant
Dim F As Variant
A = Array("Tabelle1", "Tabelle2", "Tabelle3")
B = Array("Tabelle4", "Tabelle5", "Tabelle6")
F = A(2) ' für Tabelle3
End Sub
mfg Herbert
Herbert Taferner
2004-02-22 21:41:29 UTC
Permalink
Hallo Jimmy,
Post by Jimmy
Was muss ich am Code ändern, damit nur der Bereich abgearbeitet wird, den
ich vorher manuell mit der Maus markiert habe ?
'---------------------------------------
Sub Bezug_färben_Bereich()
Dim Bereich As Range
With ActiveSheet
For Each c In Selection
With c
If Left(.Formula, 1) = "=" Or _
InStr(.Formula, "[") > 1 Then
.Interior.ColorIndex = 3
End If
End With
Next c
End With
End Sub
'---------------------------------------

mfg Herbert
Herbert Taferner
2004-02-22 21:49:05 UTC
Permalink
Hallo Jimmy,

bevor ich dich noch verwirre,
die Zeile mit

Dim Bereich As Range

kannst du löschen die ist beim
kopieren reingerutscht

'---------------------------------------
Sub Bezug_färben_Bereich()

With ActiveSheet
For Each c In Selection
With c
If Left(.Formula, 1) = "=" Or _
InStr(.Formula, "[") > 1 Then
.Interior.ColorIndex = 3
End If
End With
Next c
End With
End Sub
'---------------------------------------

mfg Herbert
Jimmy
2004-02-22 21:59:34 UTC
Permalink
Hi Herbert,

macht nichts, ich habe es auch so verstanden. LOL

Noch ein Nachtrag zum Gruppieren der Tabellenblaetter:

"Sub Gruppe_Sht()

Dim A As Variant
Dim B As Variant
Dim F As Variant

A = Array("Tabelle1", "Tabelle2", "Tabelle3")
B = Array("Tabelle4", "Tabelle5", "Tabelle6")

F = A(2) ' für Tabelle3

End Sub
"

Bei diesem Code tut sich bei mir gar nichts.

Ich wollte das eigentlich so haben, dass ich anstelle der einzelnen Namen
der Blätter Gruppen habe, die man eventuell aufklappen kann um zu sehen,
welche Blaetter enthalten sind.
GibtŽs dafür etwas in VBA ?

Gruß
Jimmy
Post by Herbert Taferner
Hallo Jimmy,
bevor ich dich noch verwirre,
die Zeile mit
Dim Bereich As Range
kannst du löschen die ist beim
kopieren reingerutscht
'---------------------------------------
Sub Bezug_färben_Bereich()
With ActiveSheet
For Each c In Selection
With c
If Left(.Formula, 1) = "=" Or _
InStr(.Formula, "[") > 1 Then
.Interior.ColorIndex = 3
End If
End With
Next c
End With
End Sub
'---------------------------------------
mfg Herbert
Herbert Taferner
2004-02-22 22:36:05 UTC
Permalink
Hallo Jimmy,
Post by Jimmy
"Sub Gruppe_Sht()
Dim A As Variant
Dim B As Variant
Dim F As Variant
A = Array("Tabelle1", "Tabelle2", "Tabelle3")
B = Array("Tabelle4", "Tabelle5", "Tabelle6")
F = A(2) ' für Tabelle3
End Sub
Bei diesem Code tut sich bei mir gar nichts.
das glaube ich dir sofort, das ist ja nur ein Beispiel
wie man diverse Tabellen in ein Array zusammenfassen
kann und dann die in einem Array befindlichen
gemeinsam anspricht
Post by Jimmy
Ich wollte das eigentlich so haben, dass ich anstelle der einzelnen Namen
der Blätter Gruppen habe, die man eventuell aufklappen kann um zu sehen,
welche Blaetter enthalten sind.
GibtŽs dafür etwas in VBA ?
das kann ich so pauschal nicht sagen,
den Fall hatte ich noch nicht
das mir die Tabellen zu viel wurden

aber vielleicht wenn du die Frage in einem neuen Thread stellst
dann antwortet dir einer der Spezialisten

mfg Herbert
Thomas Ramel
2004-02-23 06:20:18 UTC
Permalink
Grüezi Jimmy
Post by Jimmy
ist es möglich in Excel (oder mit Hilfe von VBA) Tabellenblätter zu
gruppieren oder sie in einem eigenen Menupunkt einzelnd darzustellen oder
auch auszuwählen, alphabetisch zu gruppieren etc.
Ich habe einige Excel-Arbeitsmappen, in denen sehr viele einzelne
Tabellenblätter enthalten sind. Es ist ziemlich unübersichtlich und kostet
auch Zeit ständig mit den Pfeilen hin- und her zu navigieren.
Hmmmm, Du könntest die Tabellenblätter allenfalls in eigene Mappen
auslagern und diese dann bei Bedarf öffen.

Eventuell hilft dir auch ein Rechtsklichk auf die Pfeile unten links,
gleich neben den Tabellenblattreitern, weiter?

Allenfalls könntest Du die relevanten Tabellenblätter von Hand gruppieren
und in die gewüschte Reihenfolge bringen und dann über Menü Ansicht -->
Benutzerdefinierte Ansicht eigene Ansichten erzeugen und bei Bedarf anspringen.
--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

[Win 2000Pro SP-4 / xl2000 SP-3]
Loading...