Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1084to1088
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

Makro veräppelt mich! ;-)

Makro veräppelt mich! ;-)
Gordon
Ich habe folgenden Code:

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

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro veräppelt mich! ;-)
29.06.2009 10:27:56
Hajo_Zi
Hallo Gordon,
bei einigen Range und Columns fehlt der Punkt, das ist mir so auf die schnelle aufgefallen.

AW: Makro veräppelt mich! ;-)
29.06.2009 10:38:15
Gordon
Das hatte ich auch schon gedacht,...aber daran lag es leider nicht! :-(
AW: Makro veräppelt mich! ;-)
29.06.2009 10:46:44
Hajo_Zi
Hallo Gordon,
ich habe jetzt mal ausnahmsweise die Datei nachgebaut (ein Nachbau sieht meist anders aus als das Original). Und das Makro macht was, ob es das korrekte ist kann ich nicht einschätzen.
Gruß Hajo
AW: Makro veräppelt mich! ;-)
29.06.2009 10:52:06
Gordon
So,
hab mal meine Datei hochgeladen:
https://www.herber.de/bbs/user/62815.zip
Zum Code an sich:
Ich habe vom Jahr 1985 bis 2007 eine Spalte angelegt. Und zwar auf den Blättern Z-Score und Bilanzrating. Jetzt sollen immer die Spalten sichbar gemacht werden, die auf dem Blatt "Hauptseite" eingetragen sind. Dort sind einzelne Jahre angegeben, aber auch Intervalle.
Vielleicht siehst du ja meinen Fehler...ist betsimmt etwas total doofes. Danke dir für deine Mühe!
Gruß
Gordon
Anzeige
AW: Makro veräppelt mich! ;-)
29.06.2009 11:01:13
Gordon
Ok,
eines ist mir nun doch aufgefallen. Der Button ist auf dem Blatt "Haupseite". Wenn ich ihn nun ausführe, sollen ja die Spalten in den Blättern "Z-Score" und "Bilanzrating" sich verändern.
Aber komischerweise verändern sich die Spalten auf der Hauptseite. Da muss irgendwo der Fehler liegen...
AW: Makro veräppelt mich! ;-)
29.06.2009 11:05:08
Rudi
Hallo,
wie Hajo schon schrieb: fehlende Punkte.
Gruß
Rudi
AW: Makro veräppelt mich! ;-)
29.06.2009 11:10:00
Gordon
Wenn ich die Punkte weg nehme, bekomme ich einen Fehlermeldung:

Laufzeitfehler '1004':
Anwendungs- oder objektorientierter Fehler


Der Debugger zeigt dann auch genau die Zeile an, wo ich dann die Punkte gesetzt habe.

Anzeige
AW: Makro veräppelt mich! ;-)
29.06.2009 11:08:52
Hajo_Zi
Hallo Gordon,
es wird was gemacht. Ich habe mein angepastes Makro benutzt.

Option Explicit
Sub AnalyseKopie()
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
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
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
End Sub


ob es das korrekt ist. Keine Ahnung, dazu jhast Du nichts geschrieben.
Ich habe nur die Punlkte ergänzt, Leerzeilen gelöscht und zusammengefast.
Gruß Hajo

Anzeige
AW: Makro veräppelt mich! ;-)
29.06.2009 11:16:12
Gordon
Super,
das hat nun auch bei mir geklappt....besten Dank!
Hats dir ein Bier verdient! ;-)
Gruß
Gordon
AW: Makro veräppelt mich! ;-)
29.06.2009 11:23:18
Hajo_Zi
Hallo Gordon,
und es war das was ich schon im ersten Beitrag geschrieben habe die fehlenden Punkte.
Gruß Hajo
AW: Makro veräppelt mich! ;-)
29.06.2009 11:24:59
Gordon
Glaub ich dir...aber wenn ich Punkte benutzte, kam eine Fehlermeldung!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige