Supportnet / Forum / Tabellenkalkulation
Ausstieg Makro + allgem. Makro-Frage
Frage
Guten Morgen!
Im www habe ich einen Teil des nachstehenden Makros gefunden.
Sub Makro4()
Application.ScreenUpdating = False
Dim sPrinter As String
Dim Dialog
sPrinter = Application.ActivePrinter
Dialog = Application.Dialogs(xlDialogPrinterSetup).Show
If Dialog = vbCancel Then GoTo Ende
ActiveSheet.PrintPreview
Application.ActivePrinter = sPrinter
Application.ScreenUpdating = True
Exit Sub
Ende:
Msgbox "Makro-Lauf abgebrochen", 16, "Hinweis:"
End Sub
Wie muss ich das Makro abändern, damit bei "Abbrechen" zu "Ende" gesprungen wird?
[u]allgem. Makro-Frage:[/u]
Im Forum habe ich erfahren, dass ein Makro auch andere Makros mit call aufrufen kann. Leider funktioniert dies nicht bei mir.
Beispiel:
Sub alle()
call Kopfzeile
End Sub
Fehlermeldung:
Fehler beim Kopilieren:
Variable oder Prozedur anstelle eines Moduls erwartet.
Was habe ich falsch gemacht?
Wenn ich den Markonamen von Kopfzeile auf z. B. Makro3 umbennen und Makro3 aufrufe, funktioniert alles.
Thanx
Tom
Antwort 1 von coros
Hallo Tom,
nachfolgend das geänderte Makro, dass bei Betätigen der Abbrechen-Taste das Makro beenden sollte. Es wurde lediglich um die Auswertung
ergänzt, da der Dialog die Eigenschaft "False" annimmt, wenn man auf die Schaltfläche drückt.
Zu dem 2. Problem, Du hast nicht zufällig als Modulnamen und als Makronamen den Namen "Kopfzeile" benutzt? Das darf nämlich nicht sein. Der Modulname muss anders lauten als der Makroname. Aufgerufen werden darf dann auch nur der Makroname, nicht aber der Modulname.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
nachfolgend das geänderte Makro, dass bei Betätigen der Abbrechen-Taste das Makro beenden sollte. Es wurde lediglich um die Auswertung
Or Dialog = False
ergänzt, da der Dialog die Eigenschaft "False" annimmt, wenn man auf die Schaltfläche drückt.
Option Explicit
Sub Makro4()
Application.ScreenUpdating = False
Dim sPrinter As String
Dim Dialog
sPrinter = Application.ActivePrinter
Dialog = Application.Dialogs(xlDialogPrinterSetup).Show
If Dialog = vbCancel Or Dialog = False Then GoTo Ende
ActiveSheet.PrintPreview
Application.ActivePrinter = sPrinter
Application.ScreenUpdating = True
Exit Sub
Ende:
MsgBox "Makro-Lauf abgebrochen", 16, "Hinweis:"
End Sub
Zu dem 2. Problem, Du hast nicht zufällig als Modulnamen und als Makronamen den Namen "Kopfzeile" benutzt? Das darf nämlich nicht sein. Der Modulname muss anders lauten als der Makroname. Aufgerufen werden darf dann auch nur der Makroname, nicht aber der Modulname.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Tomschi
Hallo Oliver!
Vielen, vielen Dank für Deine Unterstützung!
Problem 1 = gelöst
Problem 2 --> in der Tat war ein Modulame mit dem Makronamen ident.
Thanx
Tom
Vielen, vielen Dank für Deine Unterstützung!
Problem 1 = gelöst
Problem 2 --> in der Tat war ein Modulame mit dem Makronamen ident.
Thanx
Tom