VBA - Zeilen ausblenden wenn Ergebnis wahr
#1
Hallo zusammen,

bräuchte mal wieder eure Hilfe was das Thema VBA angeht.

Ich habe eine Arbeitsmappe mit mehreren Tabellenblättern. In den ersten 8 Blättern sind Tabellen (habe mal hierzu eine kleine Musterdatei erstellt), die alle nicht ganz identisch (Anzahl Spalten variieren z.T.) aufgebaut sind. 
Im ersten Tabellenblatt ist unten eine weitere kleine Tabelle, in welcher die Summen der Blätter 2, 3, usw. verknüpft ist. Der Zeilenbereich kann sich im nachhinein - durch ergänzen neuer Stationen - ändern. 


Ich wollte nun die Zeilen ausblenden, welche in der Summenspalte eine "0" stehen haben. Die Summenzeile soll in allerdings jedem Tabellenblatt, wenn auch in jeder Spalte eine 0 steht, trotzdem stehen bleiben. Darum entschied ich mich für eine WENN-Formel … Wenn 0 dann "WAHR sonst leer. Und habe die Zeilen "WAHR" mit einem Auto-Filter ausgeblendet und anschließend auch die Zeile ausgeblendet in welcher der Auto-Filter war. Hat auch super funktioniert. Jetzt also nachdem ich nun die Zahlen für das 2. Quartal eingeben wollte, ging das leider nicht so einfach. Die Zeile in der der Auto-Filter war, konnte ich nicht mehr einfach über die rechte Maustaste, Zeile einblenden, einblenden. Ich musste erst den Auto-Filter löschen und dann konnte ich die (Hilfs-)Zeile wieder einblenden. Dieses Procedere möchte ich natürlich nicht jedes Mal für alle Blätter und insgesamt 3 verschiedene Mappen ausführen.

Nach langer Suche in Foren, habe ich auch ein Makro gefunden. 


In dieser Tabelle sollen alle Zeilen ausgeblendet werden, in denen sich Zellen befinden, die eine Null enthalten. Verwenden Sie das folgende Makro:

Sub BestimmteZeilenAusblenden()
Dim Zelle As Range
For Each Zelle In ActiveSheet.UsedRange
If Zelle.Value = 0 And Rows(Zelle.Row).Hidden = False _
    Then Rows(Zelle.Row).Hidden = True
Next Zelle
End Sub


Ich habe die 0 durch "WAHR" ersetzt. Aber ich vermute, das Problem in diesem Makro ist, das die 0 eine Zelleingabe ist und das "WAHR" wird durch eine Formel berechnet wird, oder?

Was muss ich ändern, wenn die Zeilen, die WAHR enthalten ausgeblendet werden sollen und das Makro nicht nur für das aktive Tabellenblatt sondern für die ganze Mappe durchgeführt werden soll?

Vielen Dank schon mal im Voraus  :43:


Angehängte Dateien
.xlsx   Test Makro Zeile ausblenden.xlsx (Größe: 25,46 KB / Downloads: 5)
Antworten Top
#2
Hallo,

ungetestet, aber VBA versteht nur englisch! Ersetze die 0 bzw. Dein "Wahr" einmal durch True und dann um das Ganze eine Schleife über alle Tabellenblätter.
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
[-] Folgende(r) 1 Nutzer sagt Danke an Glausius für diesen Beitrag:
  • fee_81
Antworten Top
#3
Hallo,

anbei ein Beispiel, welches sich auf die Summenspalte der aktiven Tabelle bezieht und Zeilen mit 0 ausblendet.


Code:
Sub BestimmteZeilenAusblenden2()
  
  Dim Zelle As Range
  
  For Each Zelle In ActiveSheet.Range("N2:N26")
    
    Zelle.EntireRow.Hidden = Zelle.Value < 1
    
  Next
  
End Sub


Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
[-] Folgende(r) 1 Nutzer sagt Danke an maninweb für diesen Beitrag:
  • fee_81
Antworten Top
#4
Vielen Dank für Eure Antworten ?

Wenn ich die 0 in ein „TRUE“ ändern soll, müsste ich dann auch die WENN Formel entsprechend ändern? Und wie erstelle ich eine Schleife?
Sorry, bin ein absoluter Beginner was VBA angeht ?

Oder in dem Makro, welches Du geschrieben hattest... Da die Summenspalte nicht immer in Spalte N steht, hätte ich gerne das Suchfeld nicht eingegrenzt. Auch die Summenzeile trotz der Null hätte ich gerne angezeigt.
Antworten Top
#5
Hallöchen,

dass Du den Eintrag mit einer Formel erzeugst, ist nicht von Belang. Relevant ist jedoch, was Du da erzeugst. Hier mal zur Verdeutlichung der kleine Unterschied Smile

Arbeitsblatt mit dem Namen 'Tabelle1'
AB
1WAHR
2WAHR

ZelleFormel
A1=WENN(B1="";WAHR;FALSCH)
A2=WENN(B1="";"WAHR";"FALSCH")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg

Wenn Du die Zellinhalte mit einem Makro abgreifst, bekommst Du da unterschiedliche Reaktionen. Hier mal eine Abfrage der Inhalte:

Code:
Sub test()
MsgBox Cells(1, 1).Value & " Text: " & WorksheetFunction.IsText(Cells(1, 1).Value) & vbLf & _
       Cells(2, 1).Value & " Text: " & WorksheetFunction.IsText(Cells(2, 1).Value)
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • fee_81
Antworten Top
#6
Super, vielen Dank  :17:

Habe nun meine WENN-Formel entsprechend geändert (in WAHR als Text) und habe das o.g. Makro angepasst. Jetzt funktioniert es  :05:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste