Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makrokollision

Forumthread: Makrokollision

Makrokollision
22.02.2007 11:20:00
Kurt
Hallo Forumsteilnehmende!
Ich habe einige Tabellenblätter mit einem Markro versehen, dass bei Aktivierung des Tabellenblattes aktiv wird, versehen. Ich nutze diese Methode um Kopf- und Fusszeilen je nach gewählter Ausgabesprache anzupassen. Die Werte der Kopf- und Fusszeilen hole ich aus einer Tabelle namens "Ligua" (=Sprache).
Das Makro hierzu sieht wie folgt aus:

Private Sub Worksheet_Activate()
'Formattiert Kopf- und Fusszeilen
KopfzeileRechts = Sheets("Start").Range("F20")
FusszeileLinks = Sheets("Lingua").Range("A67")
With ActiveSheet.PageSetup
.RightHeader = "&""Frutiger 45 Light,Bold""&11" & KopfzeileRechts
.LeftFooter = FusszeileLinks
End With
End Sub

Das funktioniert so weit gut. Nun habe ich aber noch ein weiteres Makro, welches Daten importiert neu bündelt und einige Daten hin und her kopiert. Auch das funktioniert einwandfrei. Sobald aber beide Makros aufeinander treffen, erhalte ich einen Fehler.

Sheets("Planung Kapazität").Select
Range("B8").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select

Ich vermute, dass das reguläre Makro (Datenaufbereitung) schneller unterwegs ist, als das Makro, das die Kopf- und Fusszeile aktualisiert. Das Zieltabellenblatt ist also noch nicht bereit, die Selection PasteSpezial-Anweisung zu empfangen.
Hat jemand eine Idee, wie ich das Problem einfach lösen kann, ohne dass ich die Kopf- und Fusszeilenanpassung im Makro "Datenaufbereitung" integrieren muss? Die Worksheet Activate Methode möchte ich grundsätzlich beibehalten!
Danke im Voraus!
Gruss
Kurt
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makrokollision
22.02.2007 11:56:17
EtoPHG
Hallo Kurt,

Vermutung...Makro (Datenaufbereitung) schneller unterwegs...

Auch im Zeitalter von Dual- und Multi-Super-Dupper-Core CPU's 99,9% des Codes und 100% VBA wird immer noch sequentiell in einem Thread abgewickelt. Da läuft gar nix parallel!
Was bitte ist denn der Effekt der sog. Kollision, bzw.wie lautet die Fehlermeldung?
Gruss Hansueli
Anzeige
AW: Makrokollision
22.02.2007 12:02:00
Kurt
Hallo Hansueli
Es erscheint ein Laufzeitfehler '1004' mit der Begründung:
Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden.
Wie gesagt, wenn ich die Code Zeilen auf dem Tabellenblatt lösche, funktioniert das Makro.
Bei Tabellenblättern, die vom "Datenaufbereitungsmakro" nicht direkt angesteuert wird, habe ich ebenfalls das Activate-Makro geschrieben; dort funktioniert alles!
Gruss
Kurt
Anzeige
AW: Makrokollision
22.02.2007 12:05:00
EtoPHG
Hallo Kurt,
Versuch's mal mit einem solchermassen abgeänderten Code:

Application.EnableEvents = False
Sheets("Planung Kapazität").Select
Range("B8").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select
Application.EnableEvents = True

Gruss Hansueli
Anzeige
AW: Makrokollision
22.02.2007 12:10:48
Kurt
Hallo Hansueli
Super, das hat geklappt. Aber wenn ich Deinen Vorschlag richtig verstanden habe, übersteuere ich damit jegliche Fehlerausgabe, oder?
Dabei ist mir etwas mulmig im Bauch, denn wieso läuft das Makro auch nicht ohne solch einer rigorosen Massnahme?
Kurt
AW: Makrokollision
22.02.2007 12:13:00
EtoPHG
Hallo Kurt,
Nein das hat überhaupt nix mit der Fehlerausgabe zu tun.
Was der Code macht, ist Dein Worksheet_Activate Makro wird nicht ausgelöst, während des Einfügens...
Gruss Hansueli
Anzeige
AW: Makrokollision
22.02.2007 12:14:47
Kurt
Hansueli
Vielen Dank. Schon wieder was dazugelernt!
Gruss Kurt
AW: Makrokollision
22.02.2007 12:13:18
Kurt
Hallo Hansueli
Super, das hat geklappt. Aber wenn ich Deinen Vorschlag richtig verstanden habe, übersteuere ich damit jegliche Fehlerausgabe, oder?
Dabei ist mir etwas mulmig im Bauch, denn wieso läuft das Makro auch nicht ohne solch einer rigorosen Massnahme?
Kurt
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige