VBA - Feherlhafter Code bei "Zeilen ausblenden"
17.06.2013 11:49:23
Dominic
ich habe ein Formularsteuerlement in Zelle B22, das mit der Zelle B2 verknüpft ist.
In diesem Steuerelement kann ich "Ja oder Nein" auswählen, dass dann in Zelle B2 den Wert 1 für "Nein" und den Wert 2 für Ja übergibt. Das Formularsteuerelement ist natürlich mit dem unten aufgeführten Makro verknüpft.
Dieses Steuerelement soll nur Abfragen ob eine bestimme Ansicht, ein- oder ausgeblendet werden soll.
Bis dato funktionierte es einwandfrei, seitdem ich 30 Zeilen der Tabelle hinzufügen musste und die Formeln eigentlich nur um diesen erweiterten Kreis anpassen muss, funktioniert das Makro nicht mehr korrekt - und ich komme einfach nicht auf den Fehler!
Standardmäßig steht das Element auf "Nein", also in B2 = 1, wenn ich nun "Ja" auswähle, werden die Zeilen 28-2030 korrekt ausgeblendet, und wenn ich dann wieder in diesem Steuerelement auf "Nein" gehe, werden mir diese richtig wieder eingeblendet, aber dafür leider nicht die Zeilen 2031-2245 ausgeblendet.
Dabei steht diese Zeilenausblendung in meiner letzten IF Abfrage meines Codes - oder hab ich hier irgendwas übersehen?
Vielen Dank im Voraus!
Sub ArtikelAnsichtZeilenAusblenden()
Application.ScreenUpdating = False 'Bildschirmaktualisierung ausschalten
Application.Calculation = xlCalculationManual 'Automatische Berechnung ausschalten
If [B2] = 2 And [B1] = 1 Then
Range("28:2030").EntireRow.Hidden = True
Range("2031:2245").EntireRow.Hidden = False
ElseIf [B1] = 1 And [B2] = 1 And [I1] = 2 Then
Range("28:2245").EntireRow.Hidden = True
Range("28:29").EntireRow.Hidden = False
For Ze = 55 To 1189 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 3 And [B2] = 1 Then
For Ze = 55 To 1029 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 4 And [B2] = 1 Then
For Ze = 55 To 1663 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 5 And [B2] = 1 Then
For Ze = 55 To 1999 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 6 And [B2] = 1 Then
For Ze = 55 To 1147 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 7 And [B2] = 1 Then
For Ze = 55 To 1501 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B1] = 1 And [B2] = 1 And [I1] = 1 Then
Range("28:2245").EntireRow.Hidden = True
Range("31:31").EntireRow.Hidden = False
For Ze = 55 To 1189 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 3 And [B2] = 1 Then
For Ze = 55 To 1039 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 4 And [B2] = 1 Then
For Ze = 55 To 1663 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 5 And [B2] = 1 Then
For Ze = 55 To 1999 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 6 And [B2] = 1 Then
For Ze = 55 To 1147 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
ElseIf [B6] = 7 And [B2] = 1 Then
For Ze = 55 To 1501 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
End If
Application.ScreenUpdating = True 'Bildschirmaktualisierung einschalten
End Sub