Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
848to852
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
848to852
848to852
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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
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
Anzeige
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
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige