Combobox_Change wird von selber ausgelöst
#1
Hallo Zusammen habe,

in verschiedenen Sheets Comboboxen, deren Change etwas auslösen sollen. Das funktioniert.

Jedoch werden diese ChangeEvents ausgelöst obwohl ich nichts an den Comboboxen ändere. Wenn ich eine Zelle in dem Tabellenblatt ändere wird ComboboxChange ausgelöst, mit doppelter Blattschutzfehlermeldung (obwohl Blattschutz deaktiviert).

Oft springt Excel dann in ein anderes Sheet und führt das Makro dann sogar in dem Sheet aus, welches gar nichts damit zu tun hat.

Gibt es da bereits bekannte Fälle oder typische Fehler?
Top
#2
Hallo,

(03.06.2020, 14:12)stchwint schrieb: Gibt es da bereits bekannte Fälle oder typische Fehler?

ja, Deine zugehörigen Ereignismakros in den Modulen der Blätter!

Gruß Uwe
Top
#3
Ich kann leider keine Beispieldatei senden.

Innerhalb mehrerer gleicher Tabellenblätter wird dann über Combobox_Change auf normale Subs in einem anderen Modul verwiesen.

Sollte ich diese Codes auch innerhalb von Combobox_Change haben, damit es nicht zur verwechselung der Tabellenblätter kommt?
Folgende fehler treten auf wenn das Event falsch ausgeführt wird.

-Ich habe nichts an der combobox geändert
- Es wird falsch ausgelöst nählmich wenn ich eine zelle ändere
- Es wird in ein anderes Tabellenblatt gewechselt und der Code wird dann ausgeführt
- Wenn das Event fälschlicherweise ausgeführt wird, nimmt sich die Combobox einen Wert raus der nirgends ausgewählt wurde.


Das ist der Code einer Combobox die in mehreren Tabellenblätter vorkommt, demnach sollte der dann auch nur für das jeweilige Tabellenblätt ausgelöst werden:

Code:
Private Sub ComboBox8_Change()


Call Jahre_variablen_definieren


If Me.ComboBox8.Value = "Gesamt" Then


Call Zeilen_ausblenden_Stationsblatt_Gesamt

End If

If Me.ComboBox8.Value = "Alle" Then

           

Call Zeilen_ausblenden_Stationsblatt_Alle

End If

If Me.ComboBox8.Value = Jahr1 Then

Call Zeilen_ausblenden_Stationsblatt_Jahr1

End If

If Me.ComboBox8.Value = Jahr2 Then

Call Zeilen_ausblenden_Stationsblatt_Jahr2

End If
If Me.ComboBox8.Value = Jahr3 Then

Call Zeilen_ausblenden_Stationsblatt_Jahr3

End If
If Me.ComboBox8.Value = Jahr4 Then

Call Zeilen_ausblenden_Stationsblatt_Jahr4

End If
If Me.ComboBox8.Value = Jahr5 Then

Call Zeilen_ausblenden_Stationsblatt_Jahr5

End If
'Combobox_Werte_richtigstellen

End Sub
Zugehörige Codes:
Code:
Sub Zeilen_ausblenden_Stationsblatt_Alle()

Dim W As String
Dim p_Worksheets_ws As Worksheet
With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
     W = ActiveSheet.Name
    Call Jahre_variablen_definieren
    ' For Each p_WorkSheet_ws In Worksheets
   
   
       ' If p_WorkSheet_ws.Cells(1, 1).Value = "Stationsblatt" Then
       '  p_WorkSheet_ws.Activate
       
       

   
   
                 If Frz_Jahre = 1 Then
    ActiveSheet.Range(Cells(21, 1), Cells(28, 1)).EntireRow.Hidden = False
    

       ActiveSheet.Range(Cells(29, 1), Cells(43, 1)).EntireRow.Hidden = True
    
   
    End If
   
             If Frz_Jahre = 2 Then
    ActiveSheet.Range(Cells(21, 1), Cells(32, 1)).EntireRow.Hidden = False
    
 
       ActiveSheet.Range(Cells(33, 1), Cells(43, 1)).EntireRow.Hidden = True
    
 
    End If
   
   
         If Frz_Jahre = 3 Then
    ActiveSheet.Range(Cells(21, 1), Cells(36, 1)).EntireRow.Hidden = False
    
 
      ActiveSheet.Range(Cells(37, 1), Cells(43, 1)).EntireRow.Hidden = True
    
    End If
   
     If Frz_Jahre = 4 Then
    ActiveSheet.Range(Cells(21, 1), Cells(40, 1)).EntireRow.Hidden = False
    
  
    ActiveSheet.Range(Cells(41, 1), Cells(43, 1)).EntireRow.Hidden = True
    
  
    End If
   
    If Frz_Jahre = 5 Then
    ActiveSheet.Range(Cells(21, 1), Cells(43, 1)).EntireRow.Hidden = False
    
  
    End If
 
  
     'End If
    'Next p_WorkSheet_ws

    'Sheets(W).Select
   .EnableEvents = True
    .Calculation = iCalc
    .ScreenUpdating = True
End With

End Sub
Sub Zeilen_ausblenden_Stationsblatt_Gesamt()

Dim p_Worksheets_ws As Worksheet
Dim W As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
   
    W = ActiveSheet.Name
   

   
     'For Each p_WorkSheet_ws In Worksheets
   
   
        'If p_WorkSheet_ws.Cells(1, 1).Value = "Stationsblatt" Then
       
       
       
       ' p_WorkSheet_ws.Activate

   
  
   
   ActiveSheet.Range(Cells(21, 1), Cells(24, 1)).EntireRow.Hidden = False
    

   ActiveSheet.Range(Cells(25, 1), Cells(43, 1)).EntireRow.Hidden = True
    
 
    
  

    ' End If
    'Next p_WorkSheet_ws
    'Sheets(W).Select
   .EnableEvents = True
    .Calculation = iCalc
    .ScreenUpdating = True
End With




End Sub

Sub Zeilen_ausblenden_Stationsblatt_Jahr1()


Dim p_Worksheets_ws As Worksheet
Dim W As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
   
    W = ActiveSheet.Name
   

   
    ' For Each p_WorkSheet_ws In Worksheets
   
   
      '  If p_WorkSheet_ws.Cells(1, 1).Value = "Stationsblatt" Then
       
       
       
       ' p_WorkSheet_ws.Activate


   
   ActiveSheet.Range(Cells(21, 1), Cells(24, 1)).EntireRow.Hidden = True
    

   ActiveSheet.Range(Cells(25, 1), Cells(28, 1)).EntireRow.Hidden = False
    
 
   
        ActiveSheet.Range(Cells(29, 1), Cells(43, 1)).EntireRow.Hidden = True
    
  

    ' End If
    'Next p_WorkSheet_ws
    'Sheets(W).Select
   .EnableEvents = True
    .Calculation = iCalc
    .ScreenUpdating = True
End With





End Sub

Das ist ein Event das immer nur in einem festdefinierten Tabellenblatt ausgelöst wird, jedoch auch willkürlich in andere Tabellenblätter ausgelöst wird
Code:
Private Sub ComboBox3_Change()
Call Jahre_variablen_definieren
If Me.ComboBox3.Value = "Alle" Then
Call Zeilen_einblenden_Alle
End If

If Me.ComboBox3.Value = "Gesamt" Then
Call Zeilen_einblenden_Gesamt
End If

If Me.ComboBox3.Value = Jahr1 Then
Call Zeilen_einblenden_Jahr1
End If

If Me.ComboBox3.Value = Jahr2 Then
Call Zeilen_einblenden_Jahr2
End If

If Me.ComboBox3.Value = Jahr3 Then
Call Zeilen_einblenden_Jahr3
End If

If Me.ComboBox3.Value = Jahr4 Then
Call Zeilen_einblenden_Jahr4
End If

If Me.ComboBox3.Value = Jahr5 Then
Call Zeilen_einblenden_Jahr5
End If
Call Rows_Hallo_ausblenden
End Sub
zugehörige Codes:

Code:
Sub Zeilen_einblenden_Alle()



Dim i As Integer
Dim letztezeile As Integer
Dim Jahr1s As String
Dim Jahr2s As String
Dim Jahr3s As String
Dim Jahr4s As String
Dim Jahr5s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
  Call AlleAusgeblendetenZeilenAnzeigen
Call Jahre_variablen_definieren
Jahr1s = Jahr1
Jahr2s = Jahr2
Jahr3s = Jahr3
Jahr4s = Jahr4
Jahr5s = Jahr5

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letzteZeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
    For i = 24 To letztezeile
   
  If Frz_Jahre = 1 Then

        If Cells(i, 1) = "Leer" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = "Gesamt" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = Jahr1s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        Else
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
      End If
    End If
   
      If Frz_Jahre = 2 Then

        If Cells(i, 1) = "Leer" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = "Gesamt" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = Jahr1s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
          ElseIf Cells(i, 1) = Jahr2s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        Else
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
      End If
    End If
   
          If Frz_Jahre = 3 Then

        If Cells(i, 1) = "Leer" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = "Gesamt" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = Jahr1s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
          ElseIf Cells(i, 1) = Jahr2s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = Jahr3s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        Else
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
      End If
    End If
   
        If Frz_Jahre = 4 Then

        If Cells(i, 1) = "Leer" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = "Gesamt" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = Jahr1s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
          ElseIf Cells(i, 1) = Jahr2s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
              ElseIf Cells(i, 1) = Jahr3s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
            ElseIf Cells(i, 1) = Jahr4s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        Else
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
      End If
    End If
   
          If Frz_Jahre = 5 Then

        If Cells(i, 1) = "Leer" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = "Gesamt" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = Jahr1s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
          ElseIf Cells(i, 1) = Jahr2s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
              ElseIf Cells(i, 1) = Jahr3s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
            ElseIf Cells(i, 1) = Jahr4s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
          ElseIf Cells(i, 1) = Jahr5s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        Else
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
      End If
    End If
   
 

   
    Next i
   
    End With
    Call Blattschutz_ein
  .EnableEvents = True
    '.Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub
Sub Zeilen_einblenden_Gesamt()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr1s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
  'Call AlleAusgeblendetenZeilenAnzeigen
Call Jahre_variablen_definieren
Jahr1s = Jahr1
Call Blattschutz_aus
With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letzteZeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
    For i = 24 To letztezeile
   
   
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> "Gesamt" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
          End If
       
   
 

   
    Next i
   
    End With
    Call Blattschutz_ein
  .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub

Sub Zeilen_einblenden_Jahr1()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr1s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
  Call AlleAusgeblendetenZeilenAnzeigen
Call Jahre_variablen_definieren
Jahr1s = Jahr1

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letzteZeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
    For i = 24 To letztezeile
   
   
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> Jahr1s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
          End If
       
   
 

   
    Next i
   
    End With
    Call Blattschutz_ein
  .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub

Sub Zeilen_einblenden_Jahr2()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr2s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
      Call AlleAusgeblendetenZeilenAnzeigen
Call Jahre_variablen_definieren
Jahr2s = Jahr2

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letzteZeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
    For i = 24 To letztezeile
   
 
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> Jahr2s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
          End If
       
   
 

   
    Next i
   
    End With
    Call Blattschutz_ein
  .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub

Sub Zeilen_einblenden_Jahr3()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr3s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
  Call AlleAusgeblendetenZeilenAnzeigen
   
Call Jahre_variablen_definieren
Jahr3s = Jahr3

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letztezeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
    For i = 24 To letztezeile
   
 
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> Jahr3s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
          End If
       
   
 

   
    Next i
   
    End With
    Call Blattschutz_ein
  .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub
Sub Zeilen_einblenden_Jahr4()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr4s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
  Call AlleAusgeblendetenZeilenAnzeigen
   
Call Jahre_variablen_definieren
Jahr4s = Jahr4

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letztezeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
    For i = 24 To letztezeile
   
 
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> Jahr4s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
          End If
       
   
 

   
    Next i
   
    End With
    Call Blattschutz_ein
  .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub
Sub Zeilen_einblenden_Jahr5()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr5s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
  Call AlleAusgeblendetenZeilenAnzeigen
   
Call Jahre_variablen_definieren
Jahr5s = Jahr5

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letztezeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
    For i = 24 To letztezeile
   
 
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> Jahr5s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
          End If
       
   
 

   
    Next i
   
    End With
    Call Blattschutz_ein
  .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub

zugehörige Codes sind auch hier alle ähnlich aufgebaut.
Code:
Sub Zeilen_einblenden_Alle()



Dim i As Integer
Dim letztezeile As Integer
Dim Jahr1s As String
Dim Jahr2s As String
Dim Jahr3s As String
Dim Jahr4s As String
Dim Jahr5s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
   Call AlleAusgeblendetenZeilenAnzeigen
Call Jahre_variablen_definieren
Jahr1s = Jahr1
Jahr2s = Jahr2
Jahr3s = Jahr3
Jahr4s = Jahr4
Jahr5s = Jahr5

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letzteZeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
     For i = 24 To letztezeile
   
   If Frz_Jahre = 1 Then

        If Cells(i, 1) = "Leer" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = "Gesamt" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
         ElseIf Cells(i, 1) = Jahr1s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        Else
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
       End If
    End If
   
       If Frz_Jahre = 2 Then

        If Cells(i, 1) = "Leer" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = "Gesamt" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
         ElseIf Cells(i, 1) = Jahr1s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
          ElseIf Cells(i, 1) = Jahr2s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        Else
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
       End If
    End If
   
           If Frz_Jahre = 3 Then

        If Cells(i, 1) = "Leer" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = "Gesamt" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
         ElseIf Cells(i, 1) = Jahr1s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
          ElseIf Cells(i, 1) = Jahr2s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = Jahr3s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        Else
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
       End If
    End If
   
        If Frz_Jahre = 4 Then

        If Cells(i, 1) = "Leer" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = "Gesamt" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
         ElseIf Cells(i, 1) = Jahr1s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
          ElseIf Cells(i, 1) = Jahr2s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
              ElseIf Cells(i, 1) = Jahr3s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
            ElseIf Cells(i, 1) = Jahr4s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        Else
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
       End If
    End If
   
          If Frz_Jahre = 5 Then

        If Cells(i, 1) = "Leer" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 1) = "Gesamt" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
         ElseIf Cells(i, 1) = Jahr1s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
          ElseIf Cells(i, 1) = Jahr2s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
              ElseIf Cells(i, 1) = Jahr3s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
            ElseIf Cells(i, 1) = Jahr4s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
          ElseIf Cells(i, 1) = Jahr5s Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        Else
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
       End If
    End If
    
  

    
    Next i
   
    End With
    Call Blattschutz_ein
   .EnableEvents = True
    '.Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub
Sub Zeilen_einblenden_Gesamt()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr1s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
   'Call AlleAusgeblendetenZeilenAnzeigen
Call Jahre_variablen_definieren
Jahr1s = Jahr1
Call Blattschutz_aus
With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letzteZeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
     For i = 24 To letztezeile
   
   
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> "Gesamt" Then
         Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
           End If
       
    
  

    
    Next i
   
    End With
    Call Blattschutz_ein
   .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub

Sub Zeilen_einblenden_Jahr1()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr1s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
   Call AlleAusgeblendetenZeilenAnzeigen
Call Jahre_variablen_definieren
Jahr1s = Jahr1

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letzteZeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
     For i = 24 To letztezeile
   
   
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> Jahr1s Then
         Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
           End If
       
    
  

    
    Next i
   
    End With
    Call Blattschutz_ein
   .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub

Sub Zeilen_einblenden_Jahr2()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr2s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
       Call AlleAusgeblendetenZeilenAnzeigen
Call Jahre_variablen_definieren
Jahr2s = Jahr2

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letzteZeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
     For i = 24 To letztezeile
   
  
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> Jahr2s Then
         Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
           End If
       
    
  

    
    Next i
   
    End With
    Call Blattschutz_ein
   .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub

Sub Zeilen_einblenden_Jahr3()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr3s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
   Call AlleAusgeblendetenZeilenAnzeigen
   
Call Jahre_variablen_definieren
Jahr3s = Jahr3

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letztezeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
     For i = 24 To letztezeile
   
 
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> Jahr3s Then
         Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
           End If
       
    
  

    
    Next i
   
    End With
    Call Blattschutz_ein
   .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub
Sub Zeilen_einblenden_Jahr4()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr4s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
   Call AlleAusgeblendetenZeilenAnzeigen
   
Call Jahre_variablen_definieren
Jahr4s = Jahr4

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letztezeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
     For i = 24 To letztezeile
   
  
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> Jahr4s Then
         Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
           End If
       
    
  

    
    Next i
   
    End With
    Call Blattschutz_ein
   .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub
Sub Zeilen_einblenden_Jahr5()

Dim i As Integer
Dim letztezeile As Integer
Dim Jahr5s As String


With Application
    iCalc = .Calculation
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    Call Blattschutz_aus
   Call AlleAusgeblendetenZeilenAnzeigen
   
Call Jahre_variablen_definieren
Jahr5s = Jahr5

With Worksheets(kg_TabelleErgebnisName)

    letztezeile = .Cells(Rows.Count, 1).End(xlUp).Row
'MsgBox letztezeile
    Range(Cells(24, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False
     For i = 24 To letztezeile
   
  
        If Cells(i, 1) = "Ergebnis" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = False
        ElseIf Cells(i, 5) = "Muster" Then
        Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
        ElseIf Cells(i, 1) <> Jahr5s Then
         Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True
           End If
       
    
  

    
    Next i
   
    End With
    Call Blattschutz_ein
   .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With


End Sub
Top
#4
Hallo,

du hattest wohl Langeweile, dass du jede Code-Zeile einzeln hier eingefügt hast?
Das wird sich sicherlich niemand näher ansehen!
Lösche das und stelle den Code als einen Komplex zusammenhängend hier ein!
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#5
Hallo Günter,

(04.06.2020, 13:31)Glausius schrieb: Lösche das und stelle den Code als einen Komplex zusammenhängend hier ein!

ich hab es mal gemacht.

Gruß Uwe
[-] Folgende(r) 2 Nutzer sagen Danke an Kuwer für diesen Beitrag:
  • maninweb, stchwint
Top
#6
Hallo Glausius,

du meinst ich soll aus den 4 Codezeilen eine machen?
Top
#7
Danke Kuwer.

Bei mir wird auch immer ein Fehler mit der Hidden.Range.Eigenschaft angezeigt.
Top
#8
Hallöchen,

in welcher Zeile steht denn Hidden.Range und was kommt für ein Fehler?

so was

Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True

geht übrigens auch kürzer

Rows(i).EntireRow.Hidden = True

und bei mehreren Zeilen

Rows("24:" & i).EntireRow.Hidden = True
.      \\\|///      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:
  • stchwint
Top
#9
Moin!

Zitat:geht übrigens auch kürzer

Stimmt! Wink
Rows(i).Hidden = True
reicht völlig, da die Rows-Auflistung gewählt wurde.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 2 Nutzer sagen Danke an RPP63 für diesen Beitrag:
  • schauan, stchwint
Top
#10
(05.06.2020, 17:48)schauan schrieb: Hallöchen,

in welcher Zeile steht denn Hidden.Range und was kommt für ein Fehler?

so was

Range(Cells(i, 1), Cells(i, 1)).EntireRow.Hidden = True

geht übrigens auch kürzer

Rows(i).EntireRow.Hidden = True

und bei mehreren Zeilen

Rows("24:" & i).EntireRow.Hidden = True

Hallo Schauan,

 es kommt entweder die Meldung " Laufzeitfehler 1004, Die Hiddeneigenschaft des Rangeobjekts konnte nicht festgelegt werden" oder die Meldung " Anwendungs- oder objekorientierter Fehler.

Und der wechselt immer in ein anderes Sheet danach das verstehe ich nicht. Manchmal wenn ich den Code dann stoppe geht die Excel einfach aus. Vllt hat die Exceldatei zusätzlich noch einen Bug. Aber das nachbauen der Datei ist sehr aufwändig.

Der Fehler kommt eigentlich überall vor wo EntireRow.Hidden steht.
Der Fehler kommt zum Beispiel in diesem Code in  dieser Zeile vor (habe nur die Zeile eingefügt, der ganze Code ist oben):
Code:
Sub AlleAusgeblendetenZeilenAnzeigen()

Sheets("Ergebnis?bersicht").Range(Cells(20, 1), Cells(letztezeile, 1)).EntireRow.Hidden = False

End Sub
Top


Gehe zu:


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