Sub Analyse()
Dim a As Integer
Dim Inta1, Inta2, Inte1, Inte2 As Integer
Dim j1, j2, j3, j4 As Integer
Dim b As Integer
Dim c, i As Integer
With Worksheets("Hauptseite")
j1 = .Range("C17").Value
j2 = .Range("C19").Value
j3 = .Range("e17").Value
j4 = .Range("e10").Value
Inta1 = .Range("g17").Value
Inta2 = .Range("g19").Value
Inte1 = .Range("i17").Value
Inte2 = .Range("i19").Value
End With
With Worksheets("Z-Score")
For a = 25 To 28
If .Cells(a, 1) = "" Or .Cells(a, 1) = 0 Then
.Rows(a).RowHeight = 0
Else:
.Rows(a).RowHeight = 12.75
End If
Next a
.Columns("B:X").ColumnWidth = 0
If Inta1 0 And Inte1 0 Then
Range(Columns((Inta1 - 1983)), Columns((Inta1 - 1983) + (Inte1 - Inta1))).ColumnWidth = _
10.71
End If
If Inta2 0 And Inte2 0 Then
Range(Columns((Inta2 - 1983)), Columns((Inta2 - 1983) + (Inte2 - Inta2))).ColumnWidth = _
10.71
End If
If j1 0 Then
.Columns(j1 - 1983).ColumnWidth = 10.71
End If
If j2 0 Then
.Columns(j2 - 1983).ColumnWidth = 10.71
End If
If j3 0 Then
.Columns(j3 - 1983).ColumnWidth = 10.71
End If
If j4 0 Then
.Columns(j4 - 1983).ColumnWidth = 10.71
End If
End With
With Worksheets("Bilanzrating")
For c = 8 To 11
If .Cells(c, 1) = "" Or .Cells(c, 1) = 0 Then
For i = 1 To 8
.Rows((8 * i) + (c - 8)).RowHeight = 0
Next i
Else:
For i = 1 To 8
.Rows((8 * i) + (c - 8)).RowHeight = 12.75
Next i
End If
Next c
.Columns("B:X").ColumnWidth = 0
If Inta1 0 And Inte1 0 Then
Range(Columns((2009 - Inta1)), Columns((2009 - Inta1) - (Inte1 - Inta1))).ColumnWidth = _
10.71
End If
If Inta2 0 And Inte2 0 Then
Range(Columns((2009 - Inta2)), Columns((2009 - Inta2) - (Inte2 - Inta2))).ColumnWidth = _
10.71
End If
If j1 0 Then
.Columns(2009 - j1).ColumnWidth = 10.71
End If
If j2 0 Then
.Columns(2009 - j2).ColumnWidth = 10.71
End If
If j3 0 Then
.Columns(2009 - j3).ColumnWidth = 10.71
End If
If j4 0 Then
.Columns(2009 - j4).ColumnWidth = 10.71
End If
End With
With Worksheets("Stammdaten")
For b = 3 To 6
If .Cells(4, b) = "" Or .Cells(4, b) = 0 Then
.Columns(b).EntireColumn.Hidden = True
Else:
.Columns(b).EntireColumn.Hidden = False
End If
Next b
End With
With Worksheets("Bilanzrating")
For c = 8 To 11
If .Cells(c, 1) = "" Or .Cells(c, 1) = 0 Then
For i = 1 To 8
.Rows((8 * i) + (c - 8)).RowHeight = 0
Next i
Else:
For i = 1 To 8
.Rows((8 * i) + (c - 8)).RowHeight = 12.75
Next i
End If
Next c
End With
End Sub
Es geht, wie man sieht, ja eigentlich nur um Reihen- und Spaltenbreiten. Wenn ich das Makro in Einzelschritten druchlaufe, läuft es ohne Probleme und alle Spalten haben am Ende ihre richtige Breite.
Wenn ich nun aber den Code per Button starte sind fast alle Spalten wieder auf Breite Null. Wenn ich den Code insgesamt im Editor starte, macht er es manchmal ganz, und manchmal dann wieder gar nicht.
Kommt mir so vor, als wenn mich das Makro ärgern will. Hat jemand schon mal so eine Situation gehabt?
Gruß
Gordon