Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1704to1708
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

Zeilen ausblenden wenn Bedingung erfüllt ist

Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 12:01:10
Schlandro
Hallo,
ich würde gerne per VBA Zeilen ausblenden wenn in einer bestimmten Zelle (D7) ein bestimmter Wert ausgegeben wird. Heißt wenn beispielsweise XY ausgegeben wird sollen Zeilen 25 bis 30 ausgeblendet werden.
Nun zu meinem Problem, ich habe Schwierigkeiten das "Private Sub" auszuführen um die Zeilen auszublenden. Wie muss ich das ins Makro integrieren? Was fehlt in meinem Code?

Option Explicit
Private Sub Ausblenden(ByVal Target As Range)
If Target.Address = "$D$7" Then
If Target.Value = "XY" Then
Rows("25:30").Hidden = True
Else
Rows("25:30").Hidden = False
End If
ElseIf Target.Address = "$D$7" Then
If Target.Value = "ZX" Then
Rows("25:30").Hidden = True
Rows("17:22").Hidden = True
Else
Rows("25:30").Hidden = False
Rows("17:22").Hidden = False
End If
End With
End Sub
Beste Grüße und vielen Dank für die Hilfe!

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 12:06:56
Torsten
Schreib den Code ins Worksheet_Change Ereignis.
Gruss Torsten
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 12:41:56
Schlandro
Hallo Torsten,
dass habe ich bereits versucht, es funktioniert trotzdem leider nicht. Könnte ich sonst noch was übersehen haben?
Danke!
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 12:49:28
Werner
Hallo,
was bedeutet hier
in einer bestimmten Zelle (D7) ein bestimmter Wert ausgegeben wird
ausgegeben? Ist das Ergebnis in D7 das Ergebnis einer Formelberechnung oder wird der Wert von Hand eingegeben?
Gruß Werner
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 12:53:29
peterk
Hallo
Versuch mal
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$D$7" Then
        If Target.Value = "XY" Then
            Rows("25:30").Hidden = True
        ElseIf Target.Value = "ZX" Then
            Rows("25:30").Hidden = True
            Rows("17:22").Hidden = True
        Else
            Rows("25:30").Hidden = False
            Rows("17:22").Hidden = False
        End If
    End If
End Sub

Anzeige
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 13:29:09
peterk
Hallo
Bitte

Private Sub Worksheet_Change(ByVal Target As Range)
verwenden und nicht "SelectionChange"
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 13:47:34
Schlandro
Hallo,
das Makro lässt sich zwar ausführen, aber es passiert jedoch nichts. Außerdem öffnet sich bei jeder "Sub Ausführung" ein Fenster indem man erneut das Makro auswählen, bearbeiten und ausführen kann.
Hier ist eine Testdatei, bei dem ich das Makro getestet habe.
https://www.herber.de/bbs/user/131179.xlsm
Danke für eure Bemühungen!
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 13:55:39
peterk
Hallo
Ich dachte Du wolltest bei "XY" die Zellen ausblenden, bei Dir steht aber
        If Target.Value = "XY" Then
            Rows("25:30").Hidden = False
            
Des weiteren ist die Abfrage Case-Sensitive "xy" ist nicht "XY"
Ansonsten funktioniert es bei mir.
Anzeige
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 14:02:26
Werner
Hallo,
so:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case UCase(Range("D7").Value)
Case "XY"
Rows("25:30").Hidden = True
Rows("17:22").Hidden = False
Case "ZX"
Rows("25:30").Hidden = True
Rows("17:22").Hidden = True
Case Else
Rows("25:30").Hidden = False
Rows("17:22").Hidden = False
End Select
End Sub
Gruß Werner
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 14:45:57
Schlandro
Hallo Werner,
dein Code funktioniert wunderbar, allerdings funktioniert er nicht bei Kleinschreibug oder mit Zahlen. Also beispielsweise wenn Xy oder xy in der Zelle eingegeben werden. Was muss ich dahingehend noch verändern?
Vielen Dank!
Anzeige
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 15:04:57
peterk
Hallo
Beziehst Du Dich auf meine Code oder den von Werner (Werner hat bereist ein "UCASE" eingefügt und somit wäre Groß/Kleinschreibung kein Problem). In meinen Code müsstes Du folgendes machen
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$7" Then
        If UCase(Target.Value) = "XY" Then
            Rows("25:30").Hidden = True

        ElseIf UCase(Target.Value) = "ZXY" Then
            Rows("25:30").Hidden = True
            Rows("17:22").Hidden = True
        Else
            Rows("25:30").Hidden = False
            Rows("17:22").Hidden = False
        End If
    End If
End Sub

Anzeige
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 15:10:22
Werner
Hallo,
wie kommst du denn bitte zu der Aussage, dass der Code nicht mit kleinschreibung funktionieren würde. Bei meinem Code ist es völlig egal ob klein oder groß oder teilweise klein und teilweise groß geschrieben wird.
Und was das Ganze jetzt mit Zahlen zu tun haben soll erschließt sich mir jetzt leider überhaupt nicht.
Gruß Werner
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 15:55:14
Schlandro
Hallo,
ich habe mich auf Werners Code bezogen aber bei der anderen Code-Version habe ich genau das gleiche Phänomen. Wenn ich im Code und in der Tabelle XY durch beispielsweise Xy 23 ersetze funktioniert es nicht, bei XY oder XX jedoch schon. Ich kann auch nicht nachvollziehen woran das Liegen soll.
Anzeige
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
31.07.2019 17:22:26
Werner
Hallo,
was erwartest du denn, wenn du plötzlich die Vorgaben änderst.
Anfangs war die Rede davon, dass XY bzw. ZX in die Zelle eingetragen wird. Jetzt ist es plötzlich XY ? oder ZX ?
Oder meinst du bei einer Prüfung per Formel würdest du da bei XY = XY 123 als Ergebnis ein Wahr bekommen?
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Left(UCase(Range("D7").Value), 2)
Case "XY"
Rows("25:30").Hidden = True
Rows("17:22").Hidden = False
Case "ZX"
Rows("25:30").Hidden = True
Rows("17:22").Hidden = True
Case Else
Rows("25:30").Hidden = False
Rows("17:22").Hidden = False
End Select
End Sub
Vielleicht solltest du dir den Code etwas genauer anschauen und zumindest versuchen ihn zu verstehen. So kompliziert ist der jetzt wirklich nicht.
Gruß Werner
Anzeige
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
01.08.2019 08:19:06
Schlandro
Hallo,
eigentlich sollte es doch geanuso funktionieren, wenn ich den Code entsprechend anpasse:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Left(UCase(Range("D7").Value), 2)
Case "Xxxxx 100"
Rows("25:30").Hidden = True
Rows("17:22").Hidden = False
Case "Zx5"
Rows("25:30").Hidden = True
Rows("17:22").Hidden = True
Case Else
Rows("25:30").Hidden = False
Rows("17:22").Hidden = False
End Select
End Sub
Dann Sollte entsprechend für Xxxxx 100 in zelle D7 die Zeilen ausgeblendet werden, ebenso für Zx5. Aber genau das funktioniert nicht. Oder übersehe ich da etwas völlig offentsichliches?
Danke für eure Hilfe!
Anzeige
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
01.08.2019 08:56:16
hary
Moin
Kann auch nix passieren.
Mit
Select Case Left(UCase(Range("D7").Value), 2)

nimmst du fuer die Cases die beiden linken Zeichen und als Grossbuchstaben
Also pruefst du auf XX oder XY
Damit treten die Faelle "Xxxxx 100" und "Zx5" nie ein.
solte so im Code stehen: Case "XX" oder Case "ZX"
gruss hary
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
01.08.2019 09:40:26
Schlandro
Hallo,
Mein Code funktioniert soweit, allerdings nur mit Grossschreibung. Gibt es auch eine Möglichkeit, dass Kleinschreibung berücksichtigt wird? Sodass auch für beispielsweise "Zxxxxx Yxxx" die Zeilen ausgeblendet werden.
If Target.Address = "$D$7" Then
If UCase(Target.Value) = "Zxxxxx Yxxx" Then
Rows("33:39").Hidden = True
Else
Rows("33:39").Hidden = False
End If
End If
Danke an alle!
Anzeige
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
01.08.2019 09:54:56
hary
Moin
Dann ohne UCase
If Target.Address = "$D$7" Then
If Target.Value = "Zxxxxx Yxxx" Then
Rows("33:39").Hidden = True
Else
Rows("33:39").Hidden = False
End If
End If

oder einfacher
If Target.Address = "$D$7" Then
Rows("33:39").Hidden = Target.Value = "Zxxxxx Yxxx"
End If

gruss hary
AW: Zeilen ausblenden wenn Bedingung erfüllt ist
01.08.2019 10:45:22
Schlandro
Hallo,
Danke Harry, das funktioniert soweit. Gibt es auch die Möglichkeit, dass für weitere Fälle anzuwenden?
heißt in der Zelle D7 können verschiedene Werte ausgegeben werden, so wie hier im Beispiel. Jedoch funktioniert, dass nur teilweise. Geht dass überhaupt so simpel oder brauch ich da einen komplett anderen Code?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$7" Then
Rows("33:39").Hidden = Target.Value = "Xx/Yx"
End If
If Target.Address = "$D$7" Then
Rows("24:39").Hidden = Target.Value = "Yx"
End If
If Target.Address = "$D$7" Then
Rows("16:31").Hidden = Target.Value = "Yxx"
End If
If Target.Address = "$D$7" Then
Rows("24:31").Hidden = Target.Value = "Yxx/Yx"
End If
If Target.Address = "$D$7" Then
Rows("16:24").Hidden = Target.Value = "Xyy"
Rows("31:39").Hidden = Target.Value = "Xyy"
End If
End Sub

Anzeige

398 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige