Registriert seit: 31.05.2017
Version(en): 2015
Hallo zusammen,
ich würde gerne bei unterschiedlichen Kombinationen von Eingabefeldern verschiedene Zeilen ausblenden. Hierfür brauche ich mehrere If-Makros, die einzeln auch funktionieren, jedoch darf ich diese ja nicht gleich benennen, sodass ich alles unter einem Namen verbinden muss. Nun habe ich folgendes:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$K$19" Or Target.Address = "$K$30" Then _
Rows("42:87").Hidden = Range("K19").Value = "nein" And Range("K30").Value = "nein"
End If
If Target.Address = "$K$19" Or Target.Address = "$K$30" Or Target.Address = "$K$35" Or Target.Address = "$K$49" Or Target.Address = "$K$57" Then _
Rows("61:87").Hidden = Range("K19").Value = "nein" And Range("K30").Value = "nein" And Range("K35").Value = "unkritisch" And Range("K349").Value = "ja" And Range("K57").Value = "nein"
End If
End Sub
Nun kommt jedoch der Fehler "End IF ohne IF-Block". Kann mir jemand weiterhelfen?
VG, Susi
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
Hallo Susi,
in den beiden IF's sprichst Du die gleichen Zellen an.
Im ersten IF If Target.Address = "$K$19" Or Target.Address = "$K$30" Then _ ...
Im zweiten IF If Target.Address = "$K$19" Or Target.Address = "$K$30" ...
Meiner bescheidenen Meinung nach kann das so nicht funktionieren und Excel ist da ja wohl
der gleichen Meinung, weil es nicht erkennen kann, welches der IF's denn nun gelten soll.
Ich würde Select Case einsetzen.
Registriert seit: 11.04.2014
Version(en): Office 2007
Auch Hallo,
da du durch das Zeilenfortsetzungszeichen ( _) eine einzeilige If-Konstruktion hast, kannst Du auf das End If jeweils verzichten.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
Hallo Stefan,
hmmm, ... was ich natürlich wieder mal vornehm überlesen habe :22:
Registriert seit: 31.05.2017
Version(en): 2015
Hallo ihr beiden,
Danke für die Tipps. Ich habe selbst ein paar Fehler gefunden. Meine Idee ist es, dass durch verschiedenen Antwortkombinationen immer unterschiedliche Zeilen ausgeblendet werden. Dabei spreche ich die gleichen Zellen an ja, aber mit einer unterschiedlichen Antwort. Ist das also nicht möglich?
Wie müsste ich denn mit SELECT CASE vorgehen??
Wenn ich es wie folgt eingebe, reagiert das VBA nur bei der unteren Kombination, die obere mit zweimal nein wird dabei übergangen....
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$K$19" Or Target.Address = "$K$30" Then
Rows("42:87").Hidden = Range("K19").Value = "nein" And Range("K30").Value = "nein"
End If
If Target.Address = "$K$19" Or Target.Address = "$K$30" Or Target.Address = "$K$35" Or Target.Address = "$K$49" Or Target.Address = "$K$57" Then
Rows("61:87").Hidden = Range("K19").Value = "ja" And Range("K30").Value = "nein" And Range("K35").Value = "unkritisch" And Range("K49").Value = "ja" And Range("K57").Value = "nein"
End If
End Sub
Danke!
Viele Grüße,Susi
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
nimm einfach die beiden Ranges und die Taget.Address in die Überwachung und schaue, was da drin ist
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.04.2014
Version(en): 2021
18.02.2018, 15:17
(Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2018, 11:45 von Glausius.)
allo,
und das sollte logisch nicht funktionieren?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$K$19" Or Target.Address = "$K$30" Then
Rows("42:87").Hidden
Range("K19").Value = "nein"
Range("K30").Value = "nein"
ElseIf Target.Address = "$K$19" Or Target.Address = "$K$30" Or Target.Address = "$K$35" Or Target.Address = "$K$49" Or Target.Address = "$K$57" Then
Rows("61:87").Hidden
Range("K19").Value = "ja"
Range("K30").Value = "nein"
Range("K35").Value = "unkritisch"
Range("K49").Value = "ja"
Range("K57").Value = "nein"
End If
End Sub
Eine sinnvole Struktur sollte der VBA-Code schon haben
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Günter,
ich denke, da werden mehrere Bedingungen abgefragt um auszublenden und keine Werte eingetragen.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Susi,
dieser Vergleich
Code:
Range("K19").Value = "nein" And Range("K30").Value = "nein"
ist nur erfüllt, wenn in K19 und K30 nein steht. Und nur dann werden die Zeilen ausgeblendet.
Gruß Stefan
Win 10 / Office 2016