Workbook Freigabe verhindert Ausführen von VB

Hallo zusammen,

in meiner Excel Anwendung stehen hinter allen Tabellenblätter kleine VB Programme und zusätzlich gibt es ein Modul in der eine Function (einfache If Abfragen) steht, auf die ich in bestimmten Zellen zugreife.

Wenn ich die Anwendung nun freigebe und anschliessend wieder öffne dauert es „ewig“ bis sich die Anwendung öffent…ausserdem funktionieren bestimmte Funktionen wie Worksheet_Open nicht mehr!

Lösche ich die Function im Modul öffnet sich die Anwendung sofort…alle VB Programme werden ausgeführt.

Kann mir jemand weiterhelfen?

Vielen Grüsse
Johanna

Hallo, Johanna!

in meiner Excel Anwendung stehen hinter allen Tabellenblätter
kleine VB Programme und zusätzlich gibt es ein Modul in der
eine Function (einfache If Abfragen) steht, auf die ich in
bestimmten Zellen zugreife.

Wenn ich die Anwendung nun freigebe und anschliessend wieder
öffne dauert es „ewig“ bis sich die Anwendung
öffent…ausserdem funktionieren bestimmte Funktionen wie
Worksheet_Open nicht mehr!

Lösche ich die Function im Modul öffnet sich die Anwendung
sofort…alle VB Programme werden ausgeführt.
Kann mir jemand weiterhelfen?

Das ist dann doch ein wenig dubios. Was genau macht denn die Funktion? Kannst Du die mal posten? Mit so wenigen Infos werden wir Dir nur schwer weiterhelfen können.

Gruß, Manfred

Hallo Manfred,

ich habs nochmal mit einem ganze einfachen Beispiel getestet und da funktionierts auch nicht:

In Modul1 steht:

Function test_funktion(dat1, dat2)
If (dat1 = dat2) Then
test_funktion = „test“
End If
End Function

In ca. 2000 Zellen in der Excel Anwendung wird die Methode aufgerufen
=WENN(ISTFEHLER(test_funktion($A7;$C7));"";(test_funktion($A7;$C7)))

In DieseArbeitsmappe steht:

Private Sub Workbook_Open()
Worksheets(1).Range(„J1“) = „Test“
End Sub

Wenn ich die Anwendung nun freigebe über „Extras - Arbeitsmappe freigeben“ , dann dauerts es lange bis sich die Anwendung öffnet und der Code von Workbook_Open() wird nicht ausgeführt.

Wenn ich die Arbeitsmappe hingegen wieder freigebe funktioniert alles ohne Probleme!

Ich verstehts nicht mehr…
Klingt echt mehr als dubios…:wink:

Danke und viele Grüsse
Johanna

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo, Johanna!

ich habs nochmal mit einem ganze einfachen Beispiel getestet
und da funktionierts auch nicht: […]
In ca. 2000 Zellen in der Excel Anwendung wird die Methode
aufgerufen
=WENN(ISTFEHLER(test_funktion($A7;$C7));"";(test_funktion($A7;$C7)))

Gut, das dauert bei mir auch, bis das berechnet ist…

Wenn ich die Anwendung nun freigebe über „Extras -
Arbeitsmappe freigeben“ , dann dauerts es lange bis sich die
Anwendung öffnet und der Code von Workbook_Open() wird nicht
ausgeführt.
Wenn ich die Arbeitsmappe hingegen wieder freigebe
funktioniert alles ohne Probleme!

Ähem: Wo wäre der Unterschied? :wink:
Also, wenn ich die Datei freigebe, ändert das nix. Das Ding läuft durch. Auch das Workbook_Open wird ausgeführt (natürlich nur, wenn ich die Datei auch wirklich neu öffne).

Ich verstehts nicht mehr…
Klingt echt mehr als dubios…:wink:

Ich auch nicht. Zur Not schick mal Deine Dateien vorbei…

Gruß, Manfred

Hi Manfred,
danke für deine schnelle Antwort,
bei mir schreibt er das Wort „Test“ nur, wenn die Datei nicht freigegeben ist ;-( obwohl ich die Datei wirklich neu öffne!

Kann ich dir die Datei mal schicken? Auf deine persönliche Email Adresse?
Vielleicht habe ich hier irgendeine Voreinstellung in Excel…aber das kanns ja eigentlich auch nicht sein…

Viele Grüsse
Johanna

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi, Johanna!

Da kriegste ja echt die Krise mit Deinem Teil:wink:

Also, ich habe mal ein wenig rumexperimentiert: In der Tat, das Phänomen kann ich nachvollziehen. Wenn ich die Arbeitsmappe freigebe, kommt allerdings auch so eine komische Meldung „Die Arbeitsmappe enthält VBA-Makros. Visual Basic Module können im Freigabemodus nicht bearbeitet werden.“ Nun gut, klingt ja nicht spannend. Und hat eigentlich auch nichts mit dem Thema zu tun. Vielleicht. Vielleicht auch doch.

Wie auch immer: Wenn ich die freigegebene Datei öffne, werden (im Gegensatz zur nicht freigegebenen Datei) beim Öffnen die Arbeitsmappenereignisse nicht durchlaufen (kein Open, kein Activate). Warum? Weiß der Himmel oder Bill G. aus Redmond!

Als Abhilfe: Schreibe eine Prozedur Auto_Open in einem Modul: Das macht das gleiche und wird ausgeführt, auch wenn die Datei freigegeben ist. Ein Activate wird übrigens anschließend dann doch ausgeführt. Aber eben nicht wie sonst auch schon beim Öffnen (nach dem Open-Ereignis).

Nebenbei: Datei geht auch noch via Mail an Dich raus… Das hier nur an alle, die mal am gleichen Phänomen verzweifeln.

Gruß, Manfred

Wie auch immer: Wenn ich die freigegebene Datei öffne, werden
(im Gegensatz zur nicht freigegebenen Datei) beim Öffnen die
Arbeitsmappenereignisse nicht durchlaufen (kein Open, kein
Activate). Warum? Weiß der Himmel oder Bill G. aus Redmond!

Als Abhilfe: Schreibe eine Prozedur Auto_Open in einem Modul:
Das macht das gleiche und wird ausgeführt, auch wenn die Datei
freigegeben ist. Ein Activate wird übrigens anschließend dann
doch ausgeführt. Aber eben nicht wie sonst auch schon beim
Öffnen (nach dem Open-Ereignis).

Hallo Manfred,
vielleicht erhellen die beiden ersten Links zu MS-KB etwas die Angelegenheit, naja, bei mir erhellt sich da recht wenig :smile:)

http://www.google.de/search?hl=de&q=Visual+Basic+Mod…

Gruß
Reinhard