Herbers Excel-Forum - das Archiv

Zeilen ohne bestimmten Inhalt ausblenden

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Zeilen ohne bestimmten Inhalt ausblenden
von: Manfred Schreistetter

Geschrieben am: 18.12.2006 12:22:59
Hi,
ich habe relativ wenig VBA Kenntnisse, bräuchte aber ein Makro das in einer Exceltabelle (~600 Zeilen)in einer Spalte (Spalte: I) nach einem "x" sucht und alle dazugehörigen Zeilen ausgibt, dh. Alle Zeilen die in dieser Spalte kein "x" haben ausblendet. Die Zeilen von 1-5, und die letzten 20 sollen dabei nicht bearbeitet werden!
Kann mir jemand dabei helfen?
Vielen Dank im voraus,
Manfred Schreistetter
Bild

Betrifft: AW: Zeilen ohne bestimmten Inhalt ausblenden
von: Jürgen

Geschrieben am: 18.12.2006 12:28:41
Hallo Manfred,
kopiere diesen Code in Deine Arbeitsmappe:
Sub Ausblenden()
For i = 6 To ActiveSheet.UsedRange.Rows.Count - 20
If LCase(Cells(i, 9).Value) = "x" Then
Cells(i, 9).EntireRow.Select
Selection.EntireRow.Hidden = True
End If
Next i
End Sub

ollte eigentlich funktionieren.
Gruß
Jürgen
Bild

Betrifft: AW: Zeilen ohne bestimmten Inhalt ausblenden
von: Manfrd Schreistetter

Geschrieben am: 18.12.2006 14:16:00
Hi,
danke erstmal für die schnelle Antwort!
Das Makro funktioniert, aber quasi genau falsch herum: Zeilen die ein "x" enthalten werden ausgeblendet, ich bräuchte aber quasi nur die Zeilen wo in der Spalte das X steht, alle anderen sollen ausgeblendet werden.
Und wie kann ich die dann ausgeblendeten Zeilen per Makro wieder einblenden (Ich drücke auf einen Button, dann wird dieses Makro zum einblenden aktiviert)?
Und als Variante, wie könnte ich die Zeilen in denen ein "x" in der betreffenden Spalte steht in eine weitere Tabelle kopieren?
Fragen über Fragen, hoffentlich kann mir jemand helfen ;)
Viele Grüße
Bild

Betrifft: AW: Zeilen ohne bestimmten Inhalt ausblenden
von: Rudi Maintaire
Geschrieben am: 18.12.2006 14:27:40
Hallo,
Einblenden:
Private Sub CommandButton2_Click()
Rows.Hidden = False
End Sub

Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Bild

Betrifft: AW: Zeilen ohne bestimmten Inhalt ausblenden
von: Rudi Maintaire

Geschrieben am: 18.12.2006 14:18:34
Hallo,
das ist falsch und zu lang.
Falsch, weil er die Zeilen mit dem x sehen und nicht ausblenden will.
Zu lang, weil das reicht:
Sub Ausblenden()
For i = 6 To ActiveSheet.UsedRange.Rows.Count - 20
Rows(i).Hidden = LCase(Cells(i, 9).Value) <> "x"
Next i
End Sub

Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Bild

Betrifft: AW: Zeilen ohne bestimmten Inhalt ausblenden
von: Beate Schmitz

Geschrieben am: 18.12.2006 20:32:15
Hallo,
die UsedRange kann aber (wenn es keine saubere Tabelle ist) tiefer gehen und dann bleiben weniger als 20 oder keine Einträge mehr stehen. Sicherer mit CurrentRegion:
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 6 To ActiveSheet.Range("I6").CurrentRegion.Rows.Count - 16
    '+ die Zeilen oberhalb = 20 bleiben stehen
    Rows(i).Hidden = LCase(Cells(i, 9).Value) <> "x"
Next i
End Sub


Guckst Du: CurrentRegion -Kontrolle über Listen
Gruß,
Beate
Bild

Betrifft: AW: Zeilen ohne bestimmten Inhalt ausblenden
von: Manfred Schreistetter

Geschrieben am: 18.12.2006 21:43:46
Hi,
Also die Lösung von Rudi hat sehr gut funktioniert, danke dafür. Die von Beate leider nicht, der macht da gar nix...
Jetzt hab ich noch eine Verständnisfrage, wenn ich das Makro von Rudi für andere Spalten anwenden will müsste der Quellcode doch wie folgt aussehen (Spaltenname: k):
Sub Ausblenden_I3()
Dim k As Integer
For k = 6 To ActiveSheet.UsedRange.Rows.Count - 20
Rows(k).Hidden = LCase(Cells(k, 9).Value) <> "x"
Next k
End Sub

So dachte ich es mir, änderte das so, aber er macht das gleiche als wenn ich statt k i stehen hätte. Was mache ich falsch?
Viele Grüße, Gute Nacht und Vielen Dank
Manfred
Bild

Betrifft: AW: Zeilen ohne bestimmten Inhalt ausblenden
von: Beate Schmitz

Geschrieben am: 18.12.2006 23:31:27
Hallo Manfred,
verstehe zwar nicht, warum mein Code nicht bei dir läuft, hatte ihn getestet. Hast du den verlinkten Beitrag gelesen, um den Unterschied zwischen UsedRange und CurrentRegion zu verstehen?
Aber bleiben wir bei Rudis Code, da du ja damit zurecht kommst. Spalte K hat die Spaltennummer 11.
Sub Ausblenden_SpalteK()
Dim i As Integer
For i = 6 To ActiveSheet.UsedRange.Rows.Count - 20
Rows(i).Hidden = LCase(Cells(i, 11).Value) <> "x"
Next i
End Sub

Gruß,
Beate
Bild

Betrifft: AW: Zeilen ohne bestimmten Inhalt ausblenden
von: Manfred Schreistetter

Geschrieben am: 19.12.2006 09:19:41
Hi Beate,
ah, ich wußte nicht dass Spalten mit Zahlen angesteuert werden! Danke für den Hinweis!
Viele Grüße
Manfred
Bild

Betrifft: AW: Zeilen ohne bestimmten Inhalt ausblenden
von: Uwe Küstner
Geschrieben am: 19.12.2006 01:46:37
Hallo Jürgen,
was spricht denn dagegen, dafür den Autofilter zu bemühen!?
Gruß Uwe
Bild

Betrifft: AW: Zeilen ohne bestimmten Inhalt ausblenden
von: Manfred Schreistetter
Geschrieben am: 19.12.2006 09:15:34
Hi,
im Prinzip nichts, aber ich wollte es mit VBA hinbekommen, da ich in Zukunft mehr damit machen möchte!
Viele Grüße
Manfred
 Bild
Excel-Beispiele zum Thema "Zeilen ohne bestimmten Inhalt ausblenden"
Zeilenhöhe in cm festlegen Summe gefilterter Zeilen
Zeilenumbruch Leere Zeilen löschen
Spalten/Zeilen aus- und einblenden Zeilenumbruch in Formel erzwingen
Zeilen und Spalten über ein Drehfeld ein- und ausblenden Alle Kopf-/Fußzeilen-Festlegungen löschen
Fußzeilen beim Öffnen eintragen Zellinhalte zeilenweise sortieren