Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)

Forumthread: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)

Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 14:51:12
Thorsten
Hallo zusammen,
habe folgendes Problem:

Durch ein Makro will ich verschiedene Zeilen ein einem anderen Worksheet ein- bzw. ausblenden je nachdem ob „Deutschland“ oder „England“ in der Zelle A16 gewähtl wird.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a16")) Is Nothing Then Exist Sub
If Range("a16").Value = "Deutschland" Then
Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = True
ElseIf Range("a16").Value = "England" Then
Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = False
End If
End Sub

Das klappt auch.

Jetzt will ich aber noch eine weiter Option einbauen, dass je nachdem welcher Wert in der Zelle C9 angegeben ist (1 oder 2), dass dann noch andere Zeilen ein- bzw. ausgeblendet werden.

Der Code für diese Auswahl wäre:

If Range("C9").Value = 1 Then
Worksheets(“Ergebnis").Rows("30:40").EntireRow.Hidden = True
ElseIf Range("C9").Value = 2 Then
Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = False

Ich habe somit 2 verschiedene Zellen (A16 und C9), welche geändert werden können und dementsprechend müssten sich dann die entsprechenden Zellen ein- bzw. ausblenden.

Wie baue ich dass in die obige „Private Sub“ ein, so dass auch nur dann die Änderungen ausgeführt werden, wenn entweder A16 oder C9 geändert werden ?

Vielen Dank im voraus
Thorsten
Anzeige

28
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 14:59:53
Onur
Then Exist Sub

ist schon mal falsch:
Then Exit Sub
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:29:44
GerdL
Hallo Thorsten,

probier mal.

Private Sub Worksheet_Change(ByVal Target As Range)



If Target.Address = "$A$16" Then

If Target.Value = "Deutschland" Then
Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = True
ElseIf Target.Value = "England" Then
Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = False
End If

ElseIf Target.Address = "$C$9" Then
If Target.Value = 1 Then
Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = True
ElseIf Target.Value = 2 Then
Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = False
End If
End If


End Sub

Gruß Gerd
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:41:52
Thorsten
Vielen Dank Gerd.
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:34:31
Beverly
Hi Thorsten,

vielleicht so (ungetestet):

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells(1).Address(0, 0) = "A16" Then
If Target.Cells(1).Value = "Deutschland" Then
Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = True
ElseIf Target.Cells(1).Value = "England" Then
Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = False
End If
If Range("C9") = 1 Then
Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = True
ElseIf Range("C9") = 2 Then
Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = False
End If
ElseIf Target.Cells(1).Address(0, 0) = "C9" Then
If Target.Cells(1).Value = 1 Then
Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = True
ElseIf Target.Cells(1).Value = 2 Then
Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = False
End If
If Range("A16").Value = "Deutschland" Then
Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = True
ElseIf Range("A16").Value = "England" Then
Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = False
End If
End If
End Sub


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 17:44:39
Daniel
HI

noch ne Variante:

Private Sub Worksheet_Change(ByVal Target As Range)

with Worksheets("Ausgabe")
If Not Intersect(Target, Range("a16,C9")) Is Nothing Then
Select Case Range("A16").Value
Case "Deutschland": .Rows("209:235").EntireRow.Hidden = True
Case "England": .Rows("209:235").EntireRow.Hidden = False
Case Else
End Select
Select CAse Range("C9").Value
Case 1: .Rows("30:40").EntireRow.Hidden = True
Case 2: .Rows("30:40").EntireRow.Hidden = False
Case Else
End Selec
end if
End With
End sub


Gruß Daniel
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
01.06.2024 10:32:21
GerdL
Moin Thomas,

die Frage wäre noch, ob nur die einzelne Aus-/Einblendung erfolgen soll
oder beide Aus-/Einblendungen.

Private Sub Worksheet_Change(ByVal Target As Range)


If Not Intersect(Target, Range("A16", "C9")) Is Nothing Then
Select Case Range("A16").Value
Case "Deutschland": Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = True
Case "England": Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = False
Case Else
End Select
Select Case Range("C9").Value
Case 1: Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = True
Case 2: Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = False
Case Else
End Select
End If

End Sub


Gruß Gerd
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
01.06.2024 11:02:15
Thorsten
Vielen Dank Gerd

Also (mal sehen ob ich Dich richtig verstanden habe) sowohl bei A16 als auch bei C9 (sind beides Dropdown Menüs) soll "entschieden" werden ob die entsprechenden Zeilen (von A16 oder C9) entweder aus- bzw. eingeblendet werden sollen.

Es gibt somit 2 Ein- und/oder Ausblendungen.

Ist es das, was Du fragst ?
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
01.06.2024 11:12:30
Thorsten
hallo Gerd,
muss mich kurz korrigieren.

beim 1. Select (A16) ist es ein Dropdown Menü
beim 2. Select (C9) ist es eine "wenn" - Funktion
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
01.06.2024 12:54:11
daniel
Naja, dann kann die Überwachung von C9 nicht funktionieren.
Das Change-Event löst nur aus, wenn du einen festen Zellwert änderst, oder wenn du die Formel änderst. Es löst nicht aus, wenn eine Formel neu berechnet wird und ein anderes Ergebnis zeigt, bzw die neu berechneten Zellen sind nicht der Inhalt von Target.

Du müsstest dann hier das Calculate-Event verwenden, das löst bei einer Neuberechnung der Formeln aus, wobei du nicht feststellen kannst,welche Zellen das sind und ob es eine Änderung gab.

Oder du musst im Change-Event nicht auf Änderung der Zelle C9 prüfen, sondern auf eine Änderung in den Zellen, die die Formel in C9 verwendet und die feste Werte sind.

Gruß Daniel
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
01.06.2024 16:00:17
Thorsten
Hallo Daniel,
Danke für die Info.
Wie wäre denn dann die Formel bei dem gegebenen Beispiel ?

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A16", "C9")) Is Nothing Then
Select Case Range("A16").Value
Case "Deutschland": Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = True
Case "England": Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = False
Case Else
End Select
Select Case Range("C9").Value
Case 1: Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = True
Case 2: Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = False
Case Else
End Select
End If

End Sub


Vielen Dank im voraus
Thorsten
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
01.06.2024 16:39:49
Oppawinni
Ich hab mir den Thread jetzt auch mal angetan und es ist wieder einmal so,
dass das Thema wahrscheinlich schon längst erledigt wäre, hätte man die notwendige Info.
Da muss einem eigentlich die Lust vergehen....

Trotzdem vielleicht dazu doch etwas:
If Not Intersect(Target, Range("A16", "C9")) Is Nothing Then
Wenn hier nur zwei Zellen auf Änderung geprüft werden sollen, dann ist diese Abfrage nicht ok.
da ginge z.B. vielleicht
If Not Intersect(Target, Range("A16,C9")) Is Nothing Then
alternativ evtl. Union(Range(),Range(),Range())

Da aber C9 offenbar ohnehin eine berechnete Zelle ist und somit den Change Event nicht auslöst,
wäre es vermutlich sinnvoll, diejenigen Eingabezellen im Worksheet_Change zu überwachen, die die Formel in C9 beeinflussen.
Dann macht es vielleicht Sinn zu prüfen inwieweit der Wert von C9 eine Aktion erfordert.
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
01.06.2024 16:48:16
daniel
Wenn du endlich mal ne Beispieldatei hochladen würdest, könnte man mal schauen, warum es nicht funktioniert unddafür auch einen passendem Code schreiben.

Probier mal

If Not Intersect(Target, Union(Range("A16"), Range("C9").Precedents)) Is Nothing Then




Gruß Daniel

PS: eine Bitte,wenn du Code aus deiner Datei kopierst und eins Forum einstellst, formatieren ihn bitte als Code, er ist dann leichter lesbar.

Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
02.06.2024 17:31:38
Thorsten
Danke Daniel,
mit dem "UNION" Befehl hat es geklappt.
Danke
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
01.06.2024 08:58:36
Thorsten
Hallo Daniel,
funktioniert leider nur der 1. Teil ( Select Case Range("A16").Value )

Da fehlt dann wohl irgendwie noch ein Übergang :-).

Danke.
Thorsten
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
01.06.2024 11:07:53
daniel
Lade mal bitte deine Datei hoch.
Dann kann ich mir das anschauen.

Gruß Daniel
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:43:06
Thorsten
Das sieht ein bisschen komplexer aus, als die anderen Lösungsvorschläge.

Ich guck mir das trotzdem mal an und würde mich wieder melden, wenn was nicht klappt.

vielen Dank Beverly / Karin
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:18:54
Thorsten
ok. Schreibfehler.

bleibt aber meine Frage / Problem unbeantwortet.
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:21:49
Onur
Dazu kommen wir noch - ruhig Brauner ! :)
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:28:56
Onur
Es sollte mit diesem Code funktionieren:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Target.Address > "$A$16" Or Target.Address > "$C$9" Or Target.Count > 1 Then Exit Sub
If Range("a16").Value = "Deutschland" Then
Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = True
ElseIf Range("a16").Value = "England" Then
Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = False
End If
If Range("C9").Value = 1 Then
Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = True
ElseIf Range("C9").Value = 2 Then
Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = False
End If
End Sub

Wenn nur "Deutschland" oder "England" bzw 1 oder 2 vorkommen können, wäre der Code viel kürzer.
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:34:00
Onur
DAS wäre der ganze Code, wenn nur "Deutschland" oder "England" bzw 1 oder 2 vorkommen könnten:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Target.Address > "$A$16" Or Target.Address > "$C$9" Or Target.Count > 1 Then Exit Sub
Worksheets("Ausgabe").Rows("209:235").EntireRow.Hidden = Range("a16").Value = "Deutschland"
Worksheets("Ergebnis").Rows("30:40").EntireRow.Hidden = Range("C9").Value = 1
End Sub

Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:40:55
Thorsten
Vielen Dank, Onur

Was bewirkt denn das "Or Target.Count > 1" ?
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:45:50
Onur
Du kannst ja mehrere Zellen auf einmal ändern (z.B. wenn du mehrere Zellen gleichzeitig einfügst), das würde den Code stören bzw zu falschen Ergebnissen, wenn nicht gar zu Fehlern, führen.
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:46:55
Thorsten
ok. verstanden.
Vergiss meine andere Nachricht :-)

Danke.
Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:38:40
Onur
Sorry:
DAS ist richtig:
If NOT(Target.Address > "$A$16" Or Target.Address > "$C$9" Or Target.Count > 1) Then Exit Sub
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:43:44
Onur
Peinlich, peinlich:
DAS ist korrekt (zweiter Versuch):
If  (Target.Address > "$A$16" And Target.Address> "$C$9") or Target.Count = 1 Then Exit Sub


Anzeige
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:46:11
Thorsten
super. Danke.
aber nochmal zurück auf "Target Count > 1".
Was soll das bewirken / ausführen ?
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:47:15
Onur
Target enthält ALLE veränderten Zellen.
AW: Zellen ein- bzw. ausblenden (2 Zellen zum auswählen)
31.05.2024 15:47:31
Thorsten
ist beantwortet
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige