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

3 aufeinander aufbauende Abfragen

3 aufeinander aufbauende Abfragen
01.03.2023 08:44:28
Toni
Hallo zusammen,
ich habe in einem Arbeitsblatt mehrere Abfragen (ja/nein/leer) hintereinander.
3 dieser Fragen bauen aufeinander auf. Gebe ich in Frage 1 "ja" ein, blendet sich Frage 2 ein usw.
Das stellt erstmal kein Problem dar.
Ich möchte aber, den Inhalt der Frage 2 und 3 löschen, wenn Frage 1 mit "nein" oder "" beantwortet wird.
Wenn nur Frage 2 "nein" enthält, dann logischerweise nur Frage 3 leeren.
Anbei mein derzeitiger Code.
Die Löschfunktion habe ich zwar eingeben, führt jedesmal zum Fehler und/oder Absturz.
Ich habe alle im VBA eingebundenen Zellen mit einem neuen Namen versehen (z.B. drop16.2). Das erleichtert so einiges.
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("drop16.2").Value = "ja" Then
Rows("9:14").Hidden = False
Rows("18:19").Hidden = False
 If Range("drop16.3").Value = "ja" Then
 Rows("15:17").Hidden = True
 Rows("20:24").Hidden = False
  If Range("drop16.4").Value = "ja" Then
  Rows("25:27").Hidden = False
  Else
  Rows("25:27").Hidden = True
  End If
  
 ElseIf Range("drop16.3").Value = "nein" Then
 Rows("15:17").Hidden = False
 Rows("20:27").Hidden = True
 'Sheets("16").Range("drop16.4").ClearContents oder 'Sheets("16").Range("drop16.4").Value = ""
 
 ElseIf Range("drop16.3").Value = "" Then
 Rows("15:17").Hidden = True
 Rows("20:27").Hidden = True
 'Sheets("16").Range("drop16.4").ClearContents oder 'Sheets("16").Range("drop16.4").Value = ""
 End If
 
ElseIf Range("drop16.2").Value = "nein" Or Range("drop16.2").Value = "" Then
Rows("9:27").Hidden = True
 'Sheets("16").Range("drop16.3").ClearContents oder 'Sheets("16").Range("drop16.3").Value = ""
End If
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 3 aufeinander aufbauende Abfragen
01.03.2023 09:48:48
UweD
Hallo
durch das löschen wird das change Event sofort erneut ausgelöst und du läufts in eine Schleife.
- Also kurz vorher die Events aus- und danach wider einschalten.
- damit die Events in einem möglichen Fehler auf jeden Fall wieder eingeschaltet werden, noch die Fehlerbehandlung entsprechend mit einbauen.
Versuch es mal so
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fehler
    Const APPNAME = "Worksheet_Change"
    If Range("drop16.2").Value = "ja" Then
        Rows("9:14").Hidden = False
        Rows("18:19").Hidden = False
        
        If Range("drop16.3").Value = "ja" Then
            Rows("15:17").Hidden = True
            Rows("20:24").Hidden = False
            
            If Range("drop16.4").Value = "ja" Then
                Rows("25:27").Hidden = False
            Else
                Rows("25:27").Hidden = True
            End If
          
        ElseIf Range("drop16.3").Value = "nein" Then
            Rows("15:17").Hidden = False
            Rows("20:27").Hidden = True
            Application.EnableEvents = False
            Sheets("16").Range("drop16.4").ClearContents
            Application.EnableEvents = True
         
        ElseIf Range("drop16.3").Value = "" Then
            Rows("15:17").Hidden = True
            Rows("20:27").Hidden = True
            Application.EnableEvents = False
            Sheets("16").Range("drop16.4").ClearContents
            Application.EnableEvents = True
        End If
         
    ElseIf Range("drop16.2").Value = "nein" Or Range("drop16.2").Value = "" Then
        Rows("9:27").Hidden = True
        Application.EnableEvents = False
        Sheets("16").Range("drop16.3").ClearContents
        Application.EnableEvents = True
    End If
    
    '*** Fehlerbehandlung
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number > 0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
        & "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: 3 aufeinander aufbauende Abfragen
01.03.2023 13:56:59
Toni
Hallo UweD,
vielen Dank für deine schnelle Hilfe.
Das klappt super, vielen Dank.
Danke für die Rückmeldung (owT)
01.03.2023 13:58:57
UweD

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige