Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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
Inhaltsverzeichnis

Folgezeilen einblenden

Folgezeilen einblenden
Thomas
Hallo,
hoffe sehr, mir kann jemand helfen.
Ich möchte in einer Tabelle eine Spalte nach einem teilstring durchsuchen.
Danach möchte ich zunaechst nur die Zeilen sehen, in denen dieser Teilstring gefunden wurde. Die restlichen Zeilen sollen nicht gelöscht, sondern nur ausgeblendet werden. So wie bei Autofilter, den ich ja bis hierher auch problemlos benutzen könnte.
Als nächstes möchte ich mir aber einen Butten einrichten, der mir auf Knopfdruck jeweils x Folgezeilen von den gefilterten Zeilen wieder eiblendet. Beispielsweise 5 Folgezeilen. Allerdings können die gefundenen Zeilen ja auch nur einen Abstand von weniger als 5 zeilen haben, dann will ich natuerlich nur die Zellen bis zur naechsten Zeile mit dem gefunden String einblenden.
Also als Beispiel, es wurden beim Filtern die Zeilen 5, 17, 30 und 33 gefunden
dann möchte die Zeilen 6-10, 18-22, 30-32 (da gehen ja keine 5 Folgezeilen) und 34-38 eingeblendet haben.
Waere wirklich toll, wenn mir da jemand helfen koennte.
Danke
Gruss thomas

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Folgezeilen einblenden
25.06.2010 15:41:59
fcs
Hallo Thomas,
hier würdest du geschickter Weise mit der Gliederung/Gruppierung von Zeilen arbeiten.
Dann erscheinen links am Tabellenrand entsprechende Symbole zum Ein-/Ausblenden der Zeilen.
Gruß
Franz
Beispiel-Makro:
Sub GruppiereTeilstring()
Dim Zeile As Long, wks As Worksheet, Zeile1 As Long, Zeile2 As Long, Spalte As Long
Dim sSpalte As String, sSuchString As String
Const ZeileStart As Long = 2 'Startzeile für Stringsuche
Spalte = 1 'zu durchsuchende Spalte 1 = A
Zeile1 = ZeileStart
Set wks = ActiveSheet
With wks
sSpalte = Mid(wks.Cells(1, Spalte).Address, 2, InStr(2, wks.Cells(1, Spalte).Address, "$") - _
2)
sSuchString = InputBox(Prompt:="Bitte Suchstring für Spalte " & sSpalte _
& vbNewLine & vbNewLine & """Abrechen"" blendet alle Zeilen ein!", _
Title:="Zeilen nach Suchstring gruppieren")
If sSuchString  "" Then
.Cells.EntireRow.ClearOutline
For Zeile = ZeileStart To .Cells(.Rows.Count, Spalte).End(xlUp).Row
If InStr(1, .Cells(Zeile, Spalte).Text, sSuchString) > 0 Then
If Zeile2 > 0 And Zeile1 > 0 Then
.Range(.Rows(Zeile1), .Rows(Zeile2)).OutlineLevel = 2
End If
Zeile1 = Zeile + 1
Zeile2 = 0
Else
Zeile2 = Zeile
End If
Next
If Zeile2 > 0 And Zeile1 > 0 Then
.Range(.Rows(Zeile1), .Rows(Zeile2)).OutlineLevel = 2
End If
.Outline.SummaryRow = xlSummaryAbove
.Outline.ShowLevels Rowlevels:=1
ActiveWindow.DisplayOutline = True
Else
'alles einblenden ohne Gliederung
.Cells.EntireRow.ClearOutline
End If
End With
End Sub

Anzeige
AW: Folgezeilen einblenden
25.06.2010 17:12:57
Thomas
Hallo Franz,
vielen Dank fuer das Makro, kann ich leider erst am WE testen.
Ich berichte dann, wie ich zurechtgekommen bin.
Besten Dank nochmals.
Thomas
AW: Folgezeilen einblenden
28.06.2010 11:34:37
Thomas
Hallo Franz,
das Makro funktioniert super, besten dank nochmal.
Das einzige was ich jetzt noch suchen wuerde, waere eine Möglichkeit, wenn ich auf das +Zeichen am linken Seitenrand drücke bei grossen Zeilenabständen nicht die komplette Reihe bis zur naechsten Zeile mit dem Suchstring einblenden zu lassen, sondern eben zum Beispiel nur 5 Folgezeilen, nicht mehr.
Vielleicht hast Du da ja auch noch so eine Klasseidee.
Nochmals vielen Dank
Thomas
Anzeige
AW: Folgezeilen einblenden
28.06.2010 14:19:06
fcs
Hallo Thomas,
die + und - Schaltflächen kann man nicht mit zusätzlicher Funktionalität versehen.
Das nachfolgende Makro zeigt nach Doppelklick in die Zellen in Spalte A neben dem +/- Button max. 5 Folgezeilen an.
Das Makro muss du im VBA-Editor unter dem entsprechenden Tabellenblatt einfügen.
Gruß
Franz
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Zeile1 As Long, Zeile2 As Long
If Target.Column = 1 Then
'Zeigt Detaildaten (max. 5 Zeilen) an bei Doppelklick von Zellen der Hauptebene in Spalte A
Cancel = True
If Target.EntireRow.OutlineLevel = 1 Then
If Me.Rows(Target.Row + 1).OutlineLevel = 2 Then
Zeile1 = Target.Row + 1
Zeile2 = Zeile1
Do Until Me.Rows(Zeile2).OutlineLevel = 1
Zeile2 = Zeile2 + 1
Loop
Zeile2 = Zeile2 - 1
Target.EntireRow.ShowDetail = True
If Zeile2 - Zeile1 > 4 Then
Me.Range(Me.Rows(Zeile1 + 5), Me.Rows(Zeile2)).Hidden = True
End If
End If
End If
End If
End Sub

Anzeige
AW: Folgezeilen einblenden
29.06.2010 09:01:10
Thomas
Hallo Franz,
funktioniert perfekt. Besten Dank für die grossartige Hilfe.
Viele Grüsse
Ralf

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige