Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
304to308
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
304to308
304to308
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Gliederung ein- bzw. ausblenden

Gliederung ein- bzw. ausblenden
03.09.2003 16:40:10
Kirsten
Hallo ihr Profis!

Komme mal wieder nicht weiter :-(

Ich habe eine Datei mit div. Tabellen. Ich habe gerade ein Stammdaten-Blatt entworfen. Das ist mit etlichen Hyperlinks (innerhalb der Datei) versehen.

Aber jetzt kommt's:

Ich möchte gerne erreichen, dass bei Eingabe eines Textes z.B. in die Zelle Stammdaten!F24 die bisher ausgeblendeten Zeilen 4:20 in der Tabelle "Transporte" wieder eingeblendet werden.

Habe schon im Archiv gesucht, aber nichts passendes gefunden.

Geht so was überhaupt?

Ciao
Kirsten

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Frage: Wie ausgeblendet?
04.09.2003 08:24:53
Galenzo
Eine kurze Rückfrage:
wie wurden die Zeilen in der "Transporte"-Tabelle ausgeblendet, über eine Gliederun oder einfach über Zeilen ausblenden?
AW: Frage: Wie ausgeblendet?
04.09.2003 09:08:04
Kirsten
Moin, moin!

Sorry, war leider gestern noch ewig in einem Meeting.

Zu deiner Frage: Zur Zeit werden die Zeilen über Gliederungsebenen ausgeblendet. Wäre aber dann auch kein Problem die Zeilen einfach nur "auszublenden".

Gruss
Kirsten
AW: siehe meine Antwort
04.09.2003 09:29:48
Galenzo
Wenn du die Zeilen über Gliederungsebenen ausgeblendet hast, dann paßt die Prozedur schon, die ich dir geschrieben habe
AW: siehe meine Antwort
04.09.2003 09:36:59
Kirsten
Hallo Galenzo,

erst mal lieben Dank für den Code; habe ich gleich ausprobiert und funktioniert auch so weit ganz prima :-)

Leider gibt es da noch ein weiteres Problem.

Habe mal eine Musterdatei zum Server hochgeladen; ist dann einfacher nachzuvollziehen:

Die Datei https://www.herber.de/bbs/user/866.xls wurde aus Datenschutzgründen gelöscht


In der Tabelle Stammdaten habe ich leider nicht nur die Zelle F24, die Zeilen entsprechend ausblenden soll. Es gibt noch weitere 14 Zellen, die den gleichen Effekt auslösen sollen. D.h. sobald Text für einen Auftrag in "Stammdaten" eingegeben wird, sollen die entsprechenden Zeilen in "Transporte" eingeblendet werden.

Muss ich dann nur entsprechend viele Gliederungsebenen einrichten und deinen Code für jede weitere Zelle kopieren und anpassen?

Gruss
Kirsten
Anzeige
AW: einen Bereich prüfen
04.09.2003 10:51:28
Galenzo
Markiere die 14 Zellen und benenne diesen Bereich, z.B. in "meinBereich".
(In der Bearbeitungszeile ganz links reinschreiben, nachdem du markiert hast)
Nun kannst du in der Prozedur abfragen, ob eine Eingabe in diesem Bereich erfolgte.
Dazu änderst du die 2.Zeile in:
If Not Intersect(Target, Range("meinBereich")) Is Nothing Then

(Wie du siehst, wird nicht mehr geprüft, ob die Eingabe in F24 erfolgte, sondern in "meinBereich" - und den hast du ja vorher festgelegt.

Ein Nachteil ist, daß sich mit
Sheets("Transporte").Outline.ShowLevels RowLevels:=2
alle Gliederungen öffnen. Wenn du ausschließlich die Gliederung für den eingegebenen Transport öffnen willst, ist eine andere Herangehensweise erforderlich.
Anzeige
AW: einen Bereich prüfen
04.09.2003 10:58:19
Kirsten
Ich befürchte, dass ich die "andere Herangehensweise" meine.

Eigentlich sollte es so funktionieren, dass bei Text in Stammdaten!F24 die Zeilen Transporte!21:258 ausgeblendet werden. Wird zusätzlich in Stammdaten!F28 Text eingeben, sollen die Zeilen Transporte!21:37 und die Zeilen Transporte!55:258 ausgeblendet werden und so weiter.

Ciao
Kirsten
AW: dein (bearbeitetes) Beispiel
04.09.2003 12:00:47
Kirsten
Das ist ja klasse.

Aber ... kann man es auch so einrichten, dass alle Zeilen der Aufträge mit Text eingeblendet werden?

Gruss
Kirsten
Anzeige
AW: dein (nochmal bearbeitetes) Beispiel
04.09.2003 12:29:56
Galenzo

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim c As Range
If Not Intersect(Target, Range("meinBereich")) Is Nothing Then
Sheets("Transporte").Outline.ShowLevels RowLevels:=1
For Each c In Range("meinBereich")
If Not IsEmpty(Cells(c.Row, c.Column).Value) Then
i = ((c.Row / 2) - 11) * 17
Sheets("Transporte").Rows(i).ShowDetail = True
End If
Next
End If
End Sub


Zum Dazulernen: Alle Zellen des Bereiches "meinBereich" werden durchlaufen und wenn dort was drin steht, wird die zugehörige Gliederung in der Tabelle "Transporte" geöffnet.
Anzeige
AW: dein (nochmal bearbeitetes) Beispiel
04.09.2003 13:32:12
Kirsten
Das ist ja mal richtig Klasse :-))))

Herzlichen Dank!

Kannst du mir vielleicht noch erklären, wie ich ggf. die Gliederungsebenenen und die Anzahl der Zeilen für die Gliederung anpassen kann.

Gruss
Kirsten
Übung: Die Gliederungsebenen
04.09.2003 13:54:28
Galenzo
Das Gruppieren von Zeilen oder Spalten:
Markiere die Zeilen, die gegliedert werden sollen.
"Daten/Gruppierung und Gliederung/Gruppierung" gruppiert diese markierten Zeilen,
so daß sie aus-/eingeblendet werden können. Wenn du Zeilen markierst und gruppierst,
die INNERHALB einer solchen (schon erstellten) Gruppierung liegen, wird eine weitere Gliederungsebene angelegt usw.
Somit kannst du deine Daten dann schrittweise immer weiter detailliert ein-/ausblenden.
Die Stufe der Gliederungsebene wird oben links angezeigt (kleine Buttons mit Zahlen).
Klickst du darauf, werden alle Gliederungen dieser Stufe geöffnet/geschlossen.

In deinem Beispiel hast du nur EINE Gliederungsebene, nämlich "1".
Wenn du die Zeile:
Sheets("Transporte").Outline.ShowLevels RowLevels:=1
meinst --> diese Zeile schließt zunächst erstmal alle offenen Gliederungsebenen der Tabelle "Transporte", bevor dann im nächsten Schritt die gewünschten Ebenen wieder eingeblendet werden.

Ich hoffe, ich konnte dir etwas weiterhelfen.
Falls nicht, mache bitte im Forum einen neuen Beitrag - dieser hier steht mittlerweile soweit unten, daß ich da garnicht mehr nachschaue.

mfg - Galenzo
Anzeige
AW: Gliederung ein- bzw. ausblenden
04.09.2003 08:50:16
Galenzo
Schreibe in das Klassenmodul der Tabelle "Stamdaten" diese Prozedur:


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F24")) Is Nothing Then
Sheets("Transporte").Outline.ShowLevels RowLevels:=5
Sheets("Transporte").Activate
End If
End Sub


(Der Parameter "RowLevels" ist die Gliederungsebene bis zu der ein/ausgeblendet wird - das mußt du dann für deinen Fall anpassen)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige