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

Eine wahrscheinlich sehr knifflige Sache.

Eine wahrscheinlich sehr knifflige Sache.
18.01.2005 03:19:46
Hermann
Hallo, liebe Excel / VBA Profis.
Ich habe hier eine Sache für echte Könner (Auf alle Fälle einen besseren als mich!). Und ich sage jetzt schon `Tschuldigung für die Masse an Text.
Aber leider ist es nicht in drei Sätzen zu erklären.
Also...
Die Datei Aufruf.xls wird geöffnet mittels Desktop-Icon. Wichtige Info hierbei: Diese Datei ist eigentlich eine PERSONL.XLS gewesen, welche ich umgestrickt habe. Ist sie gestartet, öffnet sie automatisch die Datei Berechnung.xls (Hierfür sind Makro`s in "Diese Arbeitsmappe", in einem normalen Modul und in einem Klassenmodul verantwortlich). Aus der Datei Berechnung.xls wird mittels einer Schaltfläche ganz am Anfang (und nur ganz am Anfang; danach ist die Schaltfläche nicht mehr vorhanden!) die Datei Tafel.xls gestartet. Desweiteren habe ich auf globaler Excel-Ebene ein benutzerdefiniertes Symbol in einer der Symbolleisten kreiert, welches mit einem Makro aus der Datei Berechnung.xls hinterlegt ist.
Bis hierher funktioniert alles wunderbar.
Jetzt mein Wunschpunkt Eins:
Dieses oben genannte Symbol soll ausschließlich nur dann in den Symbolleisten zu sehen sein, wenn die Datei Berechnung.xls geöffnet ist. Darüber hinaus auch nur in dem Fenster, in dem die Datei Berechnung.xls aktiv, also zu sehen ist. Nirgendwo sonst. Nur in diesem Fenster. Wird nach der Datei Berechnung.xls noch eine weitere Datei geöffnet (z.B. die Tafel.xls) oder wird eine neue Mappe aufgemacht (Mappe1, Mappe2, ...), soll das Symbol dort nicht zu sehen sein. Ebenfalls nicht, wenn Excel ganz normal, also ohne die Datei Berechnung.xls geöffnet wird.
Wunschpunkt Zwei:
Dieses Symbol, sprich das Makro dahinter hat eine ganz bestimmte Aufgabe. Diese ist folgende:
Aufruf, Berechnung und Tafel.xls sind sauber und fehlerfrei gestartet. Unter "Fenster" sind die Berechnung und die Tafel.xls zu sehen. Die Aufruf nicht, da sie ja eigentlich eine PERSONL.XLS ohne eigene Tabellen war. Jetzt wird mit Berechnung und Tafel.xls gearbeitet. Es wird auch zwischendurch immer mal wieder gespeichert. Und jetzt passiert ein Crash. Excel schmiert ab.
Kann ja passieren. So. Mit der Aufruf.xls kann nun wieder neu aufgemacht werden. Allerdings wird jetzt nur noch die Berechnung.xls geöffnet, weil ja die erwähnte Schaltfläche vom Anfang nicht mehr da ist, mit deren Hilfe die Tafel.xls geöffnet wird. Diese wird nun eben mittels dem Symbol in der Symbolleiste wiederhergestellt. Jetzt sind beide Dateien wieder "anwesend". Aber nun soll dieses bewußte Symbol bzw. das dahinter liegende Makro nicht mehr aktiv sein. Zumindest nicht für diese aktuelle Excel Sitzung. Bliebe das Makro nämlich noch aktiv und irgendwer klickt nochmal auf`s Symbol, würde es Probleme geben. Nach dem nächsten Crash oder wenn Excel ganz normal beendet wurde und die Dateien erneut gestartet werden, soll das Makro natürlich wieder funktionieren.
OK... Soweit, so gut.
Ich hoffe, ich habe alles so genau wie möglich beschrieben und irgendeiner von euch Profis kann das alles nachvollziehen, verstehen und mir eventuell helfen. Ich weiß selbst ein bißchen was über Excel & VBA.
Aber das übersteigt dann doch meine Fähigkeiten. Wobei ich noch nicht mal weiß, ob das alles überhaupt machbar ist.
Vielleicht ja einer von euch?
Falls ja, so bitte ich, das mir mitgeteilt wird, wo und an welche Stelle genau ich eventuellen Quellcode zu plazieren habe. Also, in "Diese Arbeitsmappe", normales Modul oder Klassenmodul.
Das wäre echt super.
Wenn überhaupt jemand auf diesen Alptraum reagiert, fände ich das schon echt bemerkenswert!
Ich danke, wer auch immer sich an diese Sache wagt, schon jetzt herzlichst.
Schöne Grüße
Hermann

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eine wahrscheinlich sehr knifflige Sache.
18.01.2005 07:49:51
Matthias
Hallo Hermann,
1. nutze doch die Ereignisse Workbook_Activate() und Workbook_Deactivate, um deinen Symbolleisten-Button mit .Visible sichtbar und unsichtbar zu machen.
2. du kannst doch in dem Makro, das durch den Button gestrtet wird, zu Beginn prüfen, ob bestimmte Kriterien erfüllt sind, die das Ausführen des Codes verhindern sollen.
3. steige mal auf eib anderes Betriebsdsystem um, wenn du so viele Abstürze hat...
GrußMatthias
Matthias G. & Noch was dazu
18.01.2005 11:56:38
Hermann
Hallo,
klingt schon mal gut. Aber wie? Wie ich schon schrieb, verlassen mich diesbezüglich meine
VBA Kenntnisse. Wie ich diesen Code schreiben müßte, weiß ich leider nicht. Hab ich noch nie gemacht.
Und das mit den Abstürzen war eigentlich mehr theoretisch gedacht. Soviele gibt es nicht. Eigentlich gar keine. Ich wollte die ganze Sache nur an einem Grund für meine beiden Wünsche aufhängen. Es ist eher so, das mit diesen Dateien Leute arbeiten, die nicht sehr viel oder überhaupt keine Ahnung von Excel im speziellen oder PC`s im Allgemeinen haben.
Und da muß man dann eben alle Eventualitäten abfangen. Eben auch, das mal einer dieses bewußte Symbol zweimal anklickt. Nur mal so. Mal sehen, was passiert. Du verstehst?
Ach ja, noch etwas fällt mir gerade ein. Die Dateien sind von Anfang an unter Verschluß.
Will heißen, der Blatt- sowie der Arbeitsmappenschutz ist bei allen Dateien die Ganze Zeit über aktiv.
Das habe ich in meinem ersten Beitrag vergessen zu erwähnen.
Danke für Deine Antwort.
Ich hoffe, es kommen noch mehr.
:)
Gruß
Hermann
Anzeige
AW: Matthias G. & Noch was dazu
18.01.2005 12:29:13
Matthias
Hallo Hermann,
aber wenn du hier keinen Code postest, kann ich dir nicht weiterhelfen.
Gruß Matthias
AW: Matthias G. & Noch was dazu
18.01.2005 12:42:39
Hermann
Hallo Matthias,
schon klar. Nur leider habe ich eben keinen Code diese Sache betreffend. Weil ich eben nicht weiß, wie ich überhaupt anfangen sollte. Was ich habe, ist der Code aus der Aufruf.xls.
Den kann ich Dir hier übermitteln. Allerdings funktioniert da alles wunderbar.
Diese Arbeitsmappe:

Private Sub Workbook_Open()
Set AppObject.ap = Application
End Sub

Modul1:
Public AppObject As New clsevents
Klassenmodul:
Public WithEvents ap As Application

Private Sub ap_WorkbookOpen(ByVal Wb As Workbook)
Application.ScreenUpdating = False
Workbooks.Open FileName:="D:\Eigene Dateien\Berechnung.xls", Password:="?"
If Workbooks("Berechnung.xls").Worksheets("Anfang").Activate Then
ActiveWorkbook.Unprotect Password:="?"
ActiveWorkbook.Protect Password:="?", Structure:=True, Windows:=True
Else
End If
Application.ScreenUpdating = True
ThisWorkbook.Close
End Sub

Nicht wundern; Das mit dem Blatt- und Arbeitsmappenschutz ist so gewollt. Hat seinen guten Grund!
Gruß
Hermann
Anzeige
AW: Eine wahrscheinlich sehr knifflige Sache.
18.01.2005 15:59:08
Hermann
Hallo,
wahrscheinlich mache ich mich jetzt mächtig unbeliebt. Aber könnte sich nicht vielleicht doch einer mal mein Problem näher betrachten und mir vielleicht helfen?
Wäre wirklich sehr nett.
Ich habe zwar angegeben, daß ich VBA gut beherrsche. Dies bezieht sich aber mehr auf die ganz allgemeinen Funktionen und Befehle. Spezifische und tiefergehende Strukturen sind nicht so mein Ding.
Auch der von mir angeführte Code eine oder zwei Nachrichten weiter oben ist nicht von mir, sondern hier aus dem Forum. Den habe ich in der Recherche gefunden.
Leider stand dort zu meinem aktuellen Thema nichts (oder ich habe nichts dazu gefunden).
Ebenso hat die Suche im WWW nichts ergeben.
Nochmals ein liebes Bitte in dieser Sache.
Ihr habt bestimmt weitaus mehr Ahnung von der Sache als ich.
Gruß
Hermann
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige