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

Code zum Ausblenden von Zeilen mit Bedingung

Code zum Ausblenden von Zeilen mit Bedingung
Zeilen
Hallo liebe "Mitstreiter",
ich habe eine Beispiedatei auf den
Server geladen, darinn steht genaueres:
https://www.herber.de/bbs/user/4713.xls
Jetzt schon mal Danke! an alle die sich bemühen!
Gruß - Jens

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Code zum Ausblenden von Zeilen mit Bedingung
Zeilen
Hi Jens,
ob Excel das geeignete Tool dafür ist, kann ich so nicht beantworten.
Das hängt primär noch davon ab, was du mit den Daten (wenn sie denn mal alle eingetragen sind) anfangen willst.
Von der Datenmenge (800 Zeilen + 100 Spalten) macht Excel das gut mit.
Zu deinem Code.
Hier gibt es bestimmt noch bessere Möglichkeiten, als jene, die ich dir jetzt vorschlage, aber dafür brauchst du dann schon etwas mehr VBA-Erfahrung, um das an deine Bedürfnisse anzupassen.
Mein Vorschlag:
Füge eine neue Spalte ein (SpalteA). Diese kannst du anschließend ausblenden, so dass sie das Bild deiner Tabelle nicht beeinträchtigt.
In dieser Spalte schreibst du zu jeder Zeile, zu welcher "Branche" die jeweilige Zeile gehöhrt.
Bsp: "hwk" für "Handwerk", "hnd" für "Handel", etc.
wenn du jetzt alle Zeilen ausblenden willst, die "Handwerk" und "1999" betreffen, dann geht das mit dem folgenden Makro

Sub ZeilenAus_hwk_1999()
Dim LRow As Integer, i As Integer
Dim strBranche as String, strJahr as String
strBranche = "hwk" 'für andere Kriterien brauchst du nur noch hier zu ändern
strJahr = "1999"   'und hier ebenso
Application.ScreenUpdating = False
LRow = Cells(Rows.Count, 3).End(xlUp).Row   '3 ist die erste relevante Zeile
For i = 3 To LRow
If Cells(i, 1) = strBranche And Cells(i, 3) = strJahr Then
Rows(i).Hidden = True
End If
Next i
Application.ScreenUpdating = True
End Sub

wenn du diese Zeilen wieder einblenden willst, dann das gleiche Makro, nur statt:
Rows(i).Hidden = True
jetzt
Rows(i).Hidden = False
wenn du alle Zeilen wieder einblenden willst, dann:

Sub ZeilenEin()
Cells.EntireRow.Hidden = False
End 

Sub
Gruß
Christoph
('ne Rückmeldung wäre nett)

Anzeige
noch ein Hinweis (Korrektur)
Christoph
Der Kommentar:
'3 ist die erste relevante Zeile
ist in die falsche Codezeile gerutscht.
so ist's richtig:
LRow = Cells(Rows.Count, 3).End(xlUp).Row '3 ist die Spalte C
For i = 3 To LRow '3 ist die erste relevante Zeile
If Cells(i, 1) = strBranche And Cells(i, 3) = strJahr Then
....
Gruß
Christoph
AW: noch ein Hinweis (Korrektur)
Jens
Vielen Dank Christoph,
das ist ja schon mal beruhigend zu wissen,dass ich das so machen kann,
damit war die bisherige Arbeit nicht "für die Katz"!
Danke, daß Du den Code geschrieben hast, damit komme ich nur leider nicht zurecht.
Da ich ja ALLE Zeilen mit gleichem Eintrag ("1999")
ausblenden will, und keine weitere Bedingung stelle (wie "Handwerk"),
habe ich mehrfach versucht den Code zurecht zu "schnitzen",
wollte mir aber nicht gelingen! ;-(
Deinen Korrektur-Hinweis verstehe ich leider auch nicht, denn das sieht für mich
genau so aus wie das in der ersten Nachricht!?
Aber vielen Dank, trotzdem! Gruß - Jens
Anzeige
Code zum Ausblenden von Zeile mit Bedingung
Zeile
Hi Jens,
wenn du nur die Zeilen von einem bestimmten Jahr ausblenden willst, dann must du die Anweisung:
If Cells(i, 1) = strBranche And Cells(i, 3) = strJahr Then
Rows(i).Hidden = True
ändern.
Diese bedeutet jetzt:
wenn in Spalte A hwk steht und in Spalte C 1999 steht, dann blende die Zeile aus.
wenn du jetzt nur auf die Jahreszahl filtern willst, dann geht das so: (siehe unten)
Ich bin zunächst davon ausgegangen, dass du mehrere Bedingungen erfüllen willst.
Also auch Kombinationen von Branche und Jahr ausblenden willst.
Wenn das der Fall ist, dann würde ich dir vorschlagen, nicht die Schaltflächen aus der Symbolleiste "Formular" zu verwenden sondern jene aus "Steuerelement-Toolbox"
Hier gibt es auch eine "Umschaltfläche". Wenn du diese drückst, bleibt sie gedrückt und du erkennst, welche Kriterien du grade ein- bzw. ausgeblendet hast. (ich vermute zumindest, dass es diese bei Excl97 auch gibt)
noch was zum Code:
wenn du die Jahreszahlen in Spalte B geschrieben hast, dann musst du die 3 durch eine 2 ersetzten in den Zeilen:
LRow = Cells(Rows.Count, 3).End(xlUp).Row
und
If Cells(i, 3) = strJahr Then
Gruß
Christoph
('ne Rückmeldung wäre nett)

Sub ZeilenAus_1999()
Dim LRow As Integer, i As Integer
Dim strJahr as String
strJahr = "1999"
Application.ScreenUpdating = False
LRow = Cells(Rows.Count, 3).End(xlUp).Row
For i = 3 To LRow
If Cells(i, 3) = strJahr Then
Rows(i).Hidden = True
End If
Next i
Application.ScreenUpdating = True
End Sub

Anzeige
Super! Danke für die ausführliche Hilfe Christoph!
Jens
Habe den Code erfolgreich übernommen.
Klappt prima ;-))
Gruß - Jens
Danke für die Rückmeldung (o.T.)
28.03.2004 14:22:13
Christoph

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige