Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1064to1068
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

Workbook activate nach schliessung einer Datei

Workbook activate nach schliessung einer Datei
09.04.2009 09:14:28
Roland
Hallo VBA Profis
Folgende Ausgangslage:
Mit Workbook Activate blende ich die Menüleisten von Excel aus und stelle meine eigene zur verfügung.
Mit Workbook Deactivate mache ich das umgekehrte.
Die Datei ARBEITSDATEI wird beim Speichern über den Speicherbutton meiner Menüleiste in einen bestimten Ordner unter dem Namen, den der User vorher in einer Zelle ausgefüllt hat gespeichert. (Also einfach speichern unter automatisch mit vorgegebenen Parametern).
Anschliessend öffne ich die ARBEITSDATEI wieder, damit der User einen neuen Fall bearbeiten kann. Des weiteren schliesse ich alle Dateien ausser der ARBEITSDATEI. Das funktioniert alles soweit.
Nun zu meinem Problem:
Nach dem automatischen öffnen der ARBEITSDATEI wird meine Menüleiste angezeigt( nehme ich an, kann ich ja nicht kontrolliern, da nicht der ganze Code im Haltemodus ausgeführt werden kann) . Da ich aber alle Dateien ausser der ARBEITSDATEI schliesse wird durch das schliessen meine Menüleiste ausgeblendet und die Excel-Menüleisten eingeblendet, obwohl die ARBEITSDATEI eigentlich aktiv ist. Nun kann der User nicht mehr arbeiten, da ihm die Menüleiste fehlt.
Hat jemand eine Idee, wie dieses Problem zu lösen ist?
Besten Dank für eure Hilfe.
Gruss Roland

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbook activate nach schliessung einer Datei
09.04.2009 10:27:31
Oberschlumpf
Hi Roland
Kannst du nicht am Ende deines Startcodes mit

If meineMenüleiste.Visible = False Then meineMenüleiste.Visible = True


Deine Menüleiste wieder einblenden?
Wenn meine Idee nicht hilft, dann zeig bitte ne Bsp-Datei mit Daten und dem VBA-Code, damit wir auch verfolgen können, was wann wie wo mit bzw durch deinen Code passiert.
Ciao
Thorsten

AW: Workbook activate nach schliessung einer Datei
09.04.2009 14:27:48
Roland
Hallo Thorsten
Deine Idee mit Visible = True funktioniert insofern nicht, dass wohl die Menüleiste eingeblendet wird, aber durch das Schliessen der Stammdatei, auf dem das Makro läuft (ist immer die letzte Aktion) die Menüleiste wieder ausgeblendet wird.
Ich habe die Funktion, die das Problem verursacht in einer abgespeckten Version auf den Server gestellt.
https://www.herber.de/bbs/user/61112.xls
Anleitung: Die Datei unter C:\temp speichern, öffnen und auf der Tabelle2 im Gelben Feld A1 einen String eingeben und auf speichern Drücken.
Ich hoffe mit diesem Beispiel mein Problem anschaulicher machen zu können.
Besten Dank für die Hilfe.
Gruss
Roland
Anzeige
AW: Workbook activate nach schliessung einer Datei
09.04.2009 14:53:20
Oberschlumpf
Hi Roland
Kann dir leider nicht folgen.
Du schreibst
...aber durch das Schliessen der Stammdatei...
Aber ich denke, deine Stammdatei ist auch deine Arbeitsdatei. Oder nicht?
Wenn nein, dann lass doch das Makro in der Arbeitsdatei laufen.
Denn du hast schon recht.
Wenn die Datei mit dem Makro geschlossen wird, kann auch die - in dem zuvor geschlossenem Makro - erstellte Menüleiste nicht mehr angezeigt werden.
Will sagen...
Die Datei mit dem Makro zur Anzeige des eigenen Menüs muss so lange geöffnet bleiben, bis das Menü nicht mehr benötigt wird.
Lösen lässt sich dein Prob vielleicht auch durch Verwendung eines AddIns, welches im Hintergrund so lange läuft, bis Menü nicht mehr benötigt wird - aber ich "weiß" nur theoretisch, dass das mit AddInn vielleicht möglich ist. Eine Lösung hab ich leider nicht.
Ciao
Thorsten
Anzeige
Keine Sonderzeichen in mehreren Textboxen
09.04.2009 15:25:58
Roland
Hallo Thorsten
Ich habe noch etwas versessen. Da die Datei durch das hochladen umbenannt worden ist, muss sie beim speichern in C:\Temp in MenuTest.xls umbenannt werden.
Ich probiere mal ein Beispiel zu machen wie ich das meine.
1. Ich öffne die Datei MenueTest
2. Ich gebe in A1 der Tabelle 2 die Nummer 123456 ein.
3. Ich Drücke den Speicherbutton meiner Menüleiste
4. Die Datei wurde jetzt gespeichert unter C:\Temp\123456.xls
5. Die Datei MenueTest.xls wird geöffnet und durch Workbook activate wird die Menüleiste von MenueTest.xls eingeblendet
6. Alle Dateien ausser MenueTest.xls werden geschlossen
7. Da jetzt auch die Datei 123456.xls geschlossen wird, in der das Makro am laufen ist, wird durch Workbook deactivate die eigene Menüleiste ausgeblendet
8. Nun ist nur noch die Datei MenueTest offen aber es fehlt die eigene Menüleiste, da ich nach dem automatischen Workbook deactivate der Datei 123456.xls keine Möglichkeit gefunden habe der Datei MenueTest entweder Workbook open oder Workbook activate zu übergeben.
NB: Mache ich in der gleichen Excel Application eine leere Mappe auf und wechsle anschliessend wieder zu der Datei MenueTest funktioniert alles wieder richtig. Nur kann ich das nicht vom User verlangen.
Ich hoffe etwas Klarheit geschaffen zu haben.
Hat irgend jemand eine Idee?
Besten Dank
Gruss Roland
Anzeige
Workbook activate nach schliessung einer Datei
09.04.2009 15:28:28
Roland
Sorry, falscher Titel in der vorherigen Nachricht!
AW: Workbook activate nach schliessung einer Datei
14.04.2009 08:02:34
Roland
Hallo Leute
ist meine Frage nicht klar formuliert, meine Beispiel-Datei nicht korrekt, oder gibt es hier tatsächlich keine Lösung?
Auch ein komplett anderer Lösungsansatz ist mir recht. Ich möcht einfach per Knopfdruck die geöffnete Datei unter dem eingegebenen Namen Speichern und anschliessen die Vorlage wider öffnen.
Bin um jede Antwort froh.
Gruss Roland
AW: Workbook activate nach schliessung einer Datei
14.04.2009 18:05:20
Dirk
Hallo Roland,
das Problem liegt bei der Ausfuehrung der Macros, wenn Du alle Tabellen ausser MenueTest schliesst.
Fuer die For Next Schleife in mdl_Steuerung folgende Aenderung einbringen und alles laeuft einwandfrei.
'Alle Exceldateien ausser MenueTest schliessen und speichern
On Error Resume Next
Application.EnableEvents = False
For Each dateien In Workbooks()
If dateien.Name strProgrammName Then
dateien.Close False
End If
Next
Application.EnableEvents = True
Application.EnableEvents=False laesst ein schliessen der Tabellen zu, ohne das die darin enthaltenen Macros ausgefuehrt werden.
Lass' bitte von Dir hoeren, ob ok.
Gruss
Dirk aus Dubai
Anzeige
AW: Workbook activate nach schliessung einer Datei
14.04.2009 19:32:18
Roland
Hallo Dirk
herzlichen Dank für Deine Antwort.
Ich habe die Korrekturen gemäss Deinem Vorschlag gemacht und das Problem mit der Menüleiste ist gelöst.
Nun ist aber ein Folgeproblem aufgetreten. Nach dem schliessen der Datei MenueTest.xls werden die Excel-Menüleisten nicht mehr eingeblendet. Das heisst wenn ich nach dem Schliessen der MenueTest.xls eine neue Mappe öffne, ist nur meine eigene Menüleiste vorhanden. Wenn ich einen Button betätige, will Excel auf die zuletzt gespeicherte Datei zugreiffen, was in einem Fehler "Index ausserhalb des Bereichs" endet, da natürlich in der leeren Mappe kein Menüblatt vorhanden ist.
Ich habe versucht mit Workbook_BeforeClose den Befehl zum einblenden der Excel-Menüleisten mit zu geben, gleich wie bei Workbook_Deactivate. Bringt leider nur den gewünschten Erfolg, wenn ich die Datei öffne und ohne automatische Speicherung wieder schliesse. Nach dem automatischen speichern funktioniert diese Anwendung irgendwie nicht.
Hast Du auch zu diesem Problem noch ein Lösung?
Besten Dank
Gruss Roland
Anzeige
AW: Workbook activate nach schliessung einer Datei
15.04.2009 13:56:08
Dirk
Hallo Roland,
ich habe mal etwas 'rumprobiert und die Datei angepasst.
Beim Schliessen wird jetzt ordnungsgemaess deine Menueleiste geschlossen und alle anderen Menueleisten eingeblendet.
Ein Problem besteht aber noch, wenn man die MenueTest.xls nochmal in der laufenden Excel-Anwendung oeffnet. Dann werden die Macros autoopen etc. nicht ausgefuehrt. Damit stehen dann die Menueleisten da wie bisher und Deine Menueleiste wird nicht eingeblendet. Warum das so ist kann ich noch nicht sagen.
Ich lasse die Frage mal offen.
Gruss
Dirk aus Dubai
https://www.herber.de/bbs/user/61210.xls
Anzeige
AW: Workbook activate nach schliessung einer Datei
15.04.2009 15:05:02
Dirk
Hallo nochmal,
hab' mich da noch an was erinnert: wenn enableevents auf False steht, wenn die Mappe geschlossen wird, dann wird beim erneuten oeffnen kein Macro ausgefuehrt.
Also: Application.enableevent = True vor dem Schliessen des Workbooks einfuegen.
Das Beenden-MAcro sieht dann so aus:

Sub beenden()
Call DieseArbeitsmappe.Workbook_Deactivate
Application.EnableEvents = True
ActiveWorkbook.Close savechanges:=False
End Sub


Damit sollten alle Probleme beseitigt sein.
Bitte lass' von Dir hoeren, ob ok.
Gruss
Dirk aus Dubai

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige