Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
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

Ungewolltes Worksheet_Activate Ereignis

Ungewolltes Worksheet_Activate Ereignis
03.09.2008 17:35:00
Eddie
Hallo Zusammen,
ich habe leider schon häufiger folgendes Problem gehabt, was ich bisher nur umschifft habe, aber nicht gelößt:
Um ein bestimmtes Worksheet einer Mappe, einzeln auf der Platte abzuspeichern, benutze ich:

Application.EnableEvents = False
ActiveSheet.Copy
pfad = pfad & arbeitsblatt & ".xls"
ActiveWorkbook.Close True, pfad
Application.EnableEvents = True


Soweit, so gut, das Dumme ist nur, in der zu kopierenden Seite, steht ein


Private Sub Worksheet_Activate()


und der läuft Bedingungslos, auf der Kopie an, obwohl


Application.EnableEvents = False


gesetzt ist.
In dem Originaldokument brauche ich den Worksheet_Activate, in der Kopie vergiftet er mir aber das Skript.
Mein erster Lösungsversuch war nun


Private Sub Worksheet_Activate()
If ActiveWorkbook.Name = "Test.xls" Then Test_Prozedur
End Sub


Dieser Versuch scheitert aber kläglich. Aufgrund dessen dass der Workbook Name des neuen Dokuments Book1.xls ist, wird der Aufruf nicht mehr ausgeführt, aber es kommt zum Fehler, da die Prozedur Test_Prozedur im Original auf Modul Ebene steht und somit in der Kopie garnicht vorhanden ist.
Warum Excel überhaupt die Überprüfung macht, wenn die Prozedur gar nicht angesprungen wird, ist mir auch ein ärgerliches Rätsel. Wie ich bei ersten Test meine gesehen zu haben, kommt es hier sogar zum Fehler, wenn man ein on error vorgeschaltet hat.
Gibt es einen Lösungsansatz hierfür?
- Könnte man verhindern, dass der VBCode mitkopiert wird? Kann man den VBCode im Zieldokument ändern? Übersehe ich was?
Gruß Eddie

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ungewolltes Worksheet_Activate Ereignis
03.09.2008 19:22:40
Erich
Hallo Eddie,
da gibt es im Prinzip zwei Möglichkeiten. Welche für dich passt, kann ich nicht sagen:
a)
ActiveSheet.Copy, dann in der neu entstandenen Mappe allen Code löschen
(Code dazu findest du, wenn du hier im Archiv nach alle_Makros_loeschen suchst (mit den Unterstrichen.)
Achtung: Sicherheitseinstellungen müssen evtl. angepasst werden, Virensucher könnten Alarm schlagen.
b)
Mit Workbook.add xlWBATWorksheet eine neue Mappe anlegen,
alle benötigten Inhalte deines Quellblatt dorthin kopieren (Formeln/Werte/Formate/...),
z. B.: altesBlatt.UsedRange.copy neuesBlatt.Cells(1,1)
Hast du Shapes auf dem Blatt (evtl. mit zugehörigem Code)?
Bei a) werden die automatisch mitkopiert, bei b) zunächst nicht.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Ungewolltes Worksheet_Activate Ereignis
03.09.2008 19:54:00
Eddie
Hallo Erich,
Variante a) ist wie beschieben nicht so gut, da ich die Sicherheitseinstellung nicht flächendeckend, dauerhaft gewährleisten kann.
Variante b) könnte das lösen, zumahl ich ein Shape auf der Seite habe, der eigentlich nicht mitkopiert werden soll. Ich werde das testen und berichten.
Gruß Eddie aus Berlin
AW: Ungewolltes Worksheet_Activate Ereignis
03.09.2008 20:20:03
Eddie
Hallo Erich,
altesBlatt.UsedRange.copy neuesBlatt.Cells(1,1) hat einen kleinen Haken, nämlich die Spaltenbreiten usw. werden nicht mit übernommen. Ich bin aber durch Deinen Tipp auf folgendes gekommen

Cells.Select
Selection.Copy
Sheets("test").Select
Cells.Select
ActiveSheet.Paste


Diese Funktion überträgt Spaltenbreiten und Inhalt aber nicht, was ich nicht möchte, nämlich shapes und Makros.
Das dumme ist nur, wie ich das sehe, werde ich nicht um ein Dummy Worksheet drum rum kommen, in das ich das erstmal paste und erst danach, das Blatt in ein neues Workbook kopiere und abspeichere.
Als Speicherformat habe ich mir bereits html in den Kopf gesetzt, weil es einige Vorteile bringt. Nur schade ist, dass man nicht gleich das Worksheet einzeln als html speichern kann, dann könnte ich mir die Klimmzüge sparen
Gruß Eddie

Anzeige
AW: Ungewolltes Worksheet_Activate Ereignis
03.09.2008 22:16:12
Eddie
Meine letzte Nachricht war nicht korrekt. Einige Elemente wie Textboxen werden nicht übertragen, andere Shapes allerdings doch. Das übertragen der Shapes, führt bei der angestrebten Lösung, der Speicherung als Html zu Problemen. Es wird nämlich bei vorhandensein solcher Shapes automatisch ein Unterverzeichnis angelegt, in dem die Shapes dann als Bild gespeichert werden und zwar jeder einzeln. Ich denke aber, ich kann auf diesen Seiten auch auf Shapes gut verzichten - hatte sie nur übersehen.
Grüße Eddie

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige