Registriert seit: 30.08.2019
Version(en): 2016
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?
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
Registriert seit: 30.08.2019
Version(en): 2016
04.06.2020, 11:59
(Dieser Beitrag wurde zuletzt bearbeitet: 04.06.2020, 14:52 von Kuwer.)
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
Registriert seit: 11.04.2014
Version(en): 2021
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!
Gruß Günter aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
04.06.2020, 14:54
(Dieser Beitrag wurde zuletzt bearbeitet: 04.06.2020, 14:54 von Kuwer.)
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:2 Nutzer sagen Danke an Kuwer für diesen Beitrag 28
• maninweb, stchwint
Registriert seit: 30.08.2019
Version(en): 2016
Hallo Glausius,
du meinst ich soll aus den 4 Codezeilen eine machen?
Registriert seit: 30.08.2019
Version(en): 2016
Danke Kuwer.
Bei mir wird auch immer ein Fehler mit der Hidden.Range.Eigenschaft angezeigt.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• stchwint
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
06.06.2020, 07:10
(Dieser Beitrag wurde zuletzt bearbeitet: 06.06.2020, 07:10 von RPP63.)
Moin! Zitat:geht übrigens auch kürzer Stimmt! Rows(i).Hidden = Truereicht 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:2 Nutzer sagen Danke an RPP63 für diesen Beitrag 28
• schauan, stchwint
Registriert seit: 30.08.2019
Version(en): 2016
(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
|