Absturz, bei Makroausführung, daß andere Makros



Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Absturz, bei Makroausführung, daß andere Makros
von: zusammenfaßt -- Michael Kl.
Geschrieben am: 12.07.2002 - 12:26:49

Hallo zusammen.
Ich habe drei Makros. Das eine blendet Zellen ein, das andere aus. Dies geschieht durch Formatierung der Zellfarbe und der Rahmenformatierung.
Ein drittes Makro soll nun zuerst die Zellen einblenden, dann einen Bereich drucken, und die Zellen anschließend wieder ausblenden.
Bei der Ausführung des dritten Makros stürzt Excel immer ab.
Wenn ich per Hand seperat erst das erste Makro (einblenden) ausführe, dann auf ein Bereich-Drucken-Makro klicke und anschließen wieder manuell auf Ausblenden gehe, klappt es.
Gibt es vielleicht einen Befehl, der es Excel ermöglicht, sich während der Ausführung meines zusammenfassenden Makros (Einblenden, Drucken, Ausblenden) Zeit zu lassen, damit Excel nicht abstürzt?
Vielen Dank schon mal, MfG, Michael.

nach oben   nach unten

Re: Absturz, bei Makroausführung, daß andere Makros
von: Hans W. Herber
Geschrieben am: 12.07.2002 - 13:47:00

Hallo,

versuche es mal, indem Du vor und nach der kritischen Stelle folgenden Code setzt:
Application.Wait Now + Timeserial(0,0,3)

hans

nach oben   nach unten

Re: Absturz, bei Makroausführung, daß andere Makros
von: Otto Ecker
Geschrieben am: 12.07.2002 - 13:47:18

Hallo Michael,

ohne Code läßt sich hier nur schwer was raten. Poste ihn mal. Hast Du deinen kompletten Code schon mal im Einzelschritt durchlaufen lassen ? Makros werden nacheinander abgearbeitet. Wenn die Reihenfolge (einblenden.....) eingehalten wird dürfte eigentlich nichts passieren.

Gruß Otto


nach oben   nach unten

Wartebefehl ändert nichts; hier der Code
von: Michael Kl.
Geschrieben am: 12.07.2002 - 15:40:11

Hallo ihr beiden.
Der Hinweis von Hans bringt leider nichts. Das Dokument wird zwar gedruckt, aber während des Ausblendens der Zellen stürzt Excel weiter ab.
Hier der Quelltext zum Verständnis:

Das zusammenfassende Makro:
Sub Makro1()
'
' Makro1 Makro
' Makro am 12.07.02 von Michael aufgezeichnet
'

'
Application.Run "'TT-TurnierMichael.xls'!Vergleich_einblenden"
Application.Wait Now + TimeSerial(0, 0, 3)
Application.Run "'TT-TurnierMichael.xls'!spielplan_drucken"
Application.Wait Now + TimeSerial(0, 0, 3)
Application.Run "'TT-TurnierMichael.xls'!Vergleich_ausblenden"
End Sub


Sub Vergleich_einblenden()
'
' Vergleich_einblenden Makro
' Makro am 19.06.02 von Michael aufgezeichnet
'

'
ActiveSheet.Unprotect ""
Range("Y3:AE3").Select
Selection.EntireColumn.Hidden = False
Range("A3").Select
Range("H14:X24").Select
Selection.Font.ColorIndex = 0
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Range("H14:X14").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Range("H14:J24,K14:M24,N14:P24,Q14:S24,T14:X24").Select
Range("T14").Activate
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Range("T14:X24").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
ActiveWindow.SmallScroll Down:=-15
Range("A3").Select
ActiveSheet.Protect ""
End Sub

Sub Spielplan_Drucken()
'
' Spielplan_Drucken Makro
' Makro am 19.06.02 von Michael aufgezeichnet
'

' ActiveWindow.SmallScroll Down:=9
Range("A14:X24").Select
Selection.PrintOut Copies:=1, Collate:=True
ActiveWindow.SmallScroll Down:=-12
Range("A3").Select
End Sub

Sub Vergleich_ausblenden()
'
' Vergleich_ausblenden Makro
' Makro am 19.06.02 von Michael aufgezeichnet
'

'
ActiveSheet.Unprotect ""
ActiveWindow.ScrollColumn = 5
Range("Z3:AD3").Select
Selection.EntireColumn.Hidden = True
ActiveWindow.ScrollColumn = 1
Range("A3").Select
ActiveWindow.SmallScroll Down:=9
Range("H14:X24").Select
With Selection.Font
.Name = "Arial"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 2
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
ActiveWindow.SmallScroll Down:=-12
Range("A3").Select
ActiveSheet.Protect ""
End Sub

nach oben   nach unten

Re: Wartebefehl ändert nichts; hier der Code
von: Otto Ecker
Geschrieben am: 12.07.2002 - 16:01:13

Hallo,

ich habe mal deinen Code importiert. Aber außer daß jede Menge Papier gedruckt wird passiert bei Excel nichts.

Ich habe allerdings nicht dateiübergreifend die Makros gestartet.

Gruß Otto


nach oben   nach unten

Komisch
von: Michael Kl.
Geschrieben am: 13.07.2002 - 10:32:10

Bei mir wird nur eine einzige Seite wie gewünscht gedruckt.
Naja, dann wede ich das ganze wohl manuell ablaufen müssen.
Vielleicht liegt es am Arbeitsspeicher.
Danke trotzdem, Micha.

nach oben   nach unten

Was bedeutet die folgende Fehlermeldung?
von: Michael Kl.
Geschrieben am: 13.07.2002 - 10:44:29

Hallo zusammen.
Geschildertes Problem löst bei mir folgende Fehlermeldung aus nach der man das Programm nur noh beenden kann. Was kann diese wol bedeuten?

EXCEL verursachte einen Fehler durch eine ungültige Seite
in Modul MSO97.DLL bei 017f:306c3840.
Register:
EAX=00000001 CS=017f EIP=306c3840 EFLGS=00010206
EBX=0000d8e4 SS=0187 ESP=0062bed8 EBP=01607278
ECX=000022d7 DS=0187 ESI=0160c000 FS=50cf
EDX=0000d8e4 ES=0187 EDI=01ab4d94 GS=0000
Bytes bei CS:EIP:
f3 a5 53 8b ca 83 e1 03 f3 a4 55 e8 1b fc ff ff
Stapelwerte:
01601d44 01607258 0062bf70 fffffffb 00000000 30733d7b 01601d44 303b6cba 01601d44 01ab000c 0000d934 00001020 30150658 01601d44 00001b1c 00001b26

nach oben   nach unten

Re: Was bedeutet die folgende Fehlermeldung?
von: Hans W. Herber
Geschrieben am: 13.07.2002 - 10:53:50

Hallo Michael,

für jeden, der sich mit dem Problem befassen soll, besteht die Schwierigkeit, dass er sich durch einen Code durchabeiten muß, der mit unnötigen Select- und Activate- und Scroll-Befehlen gespickt ist, irgendwann schwindelt ihm dann. Excel geht es vermutlich genauso ;-)

Wirf mal den ganzen Mist raus, den Du nicht benötigst und gehe dann im Einzelschritt vor. Mit dieser Vorgehensweise kannst Du die kritische Stelle feststellen. Excel-Abstürze während VBA-Programmabläufen passieren in aller Regel dann, wenn sich Befehle widersprechen, in ihrer Gesamtheit nicht logisch sind.

hans


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Absturz, bei Makroausführung, daß andere Makros"