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

Ein Startbildschirm und seine Tücken...

Ein Startbildschirm und seine Tücken...
03.07.2005 18:03:02
Chris
Hallo Leute...
Da mein Projekt inzwischen ziemlich umfangreich ist und immer größer wird, hab ich
mir einen "Startbildschirm" gebastelt, damit die Startzeit überbrückt wird.
Dazu habe ich mir ein TabellenBlatt in "Start" umbenannt, alle Formatierungen und
Hilsobjekte entfernt und in die Mitte ein .jpg gelegt. Damit der Trick nicht auffällt,
wird dieses Start-Blatt vollständig ausgeblendet und nur zum Programmstart kurz
aktiviert. Das geschieht mit folgendem Code:

Private Sub Workbook_Open()
Worksheets("Start").Visible = True
Application.Goto Worksheets("Start").Range("I22")
Sheets("Start").Shapes("Startbildschirm").Visible = True
Application.ScreenUpdating = True
If Application.Wait(Now + TimeValue("0:00:5")) Then
Worksheets("Start").Visible = xlVeryHidden
End If
End Sub

Das läuft eigentlich gut, aber...
und jetzt das Problem:
1. Wenn man die Arbeitsmappe schließt, dann kommt IMMER der Speichern-Hinweis, auch
wenn man nur kurz was nachschauen will und garnix geändert hat.
2. Geschlossen wird die Arbeitsmappe immer von Arbeitsblatt2 aus, da ja "Start"
vollständig ausgeblendet wurde. Wenn ich jetzt neu öffe, dann kommt erst Blatt2, bleibt
ewig stehn, und dann erst wird zu "Start" gewechselt.
Wie bekomme ich den Speicher-Hinweis weg, bzw. kann ich den bearbeiten?
Was muß ich ändern, damit beim Öffnen sofort "Start" angezeigt wird, auch
wenn die Arbeitsmappe von einem anderen Blatt aus gespeichert wurde?
...sonnige Grüße aus`m Garten
Chris

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ein Startbildschirm und seine Tücken...
03.07.2005 18:10:12
Nepumuk
Hallo Chris,
zwischen End If und End Sub deines Makros: ThisWorkbook.Saved = True
Gruß
Nepumuk
AW: Ein Startbildschirm und seine Tücken...
03.07.2005 18:12:11
Matthias
Hallo Chris,
Am Ende des Codes ein

ThisWorkbook.Saved = True

einfügen.
Aber warum nimmst du kein (nichtmodales) Userform?
Wenn sicher keine Fehler auftreten, kannst du in der Zeit auch noch Excel ausblenden mit
Application.Visible = False
(dann wieder auf True setzen)
Zu der Frage mit dem Blatt beim Öffnen anzeigen, guch mal 2 Threads weiter unten (Heinz H)
Gruß Matthias
AW: Ein Startbildschirm und seine Tücken...
03.07.2005 18:32:17
Chris
Hallo Matthias.
Erstmal Danke für den schnellen Tip, das hilft schonmal ein bisschen.
Die Idee mit dem UserForm würd ich gerne aufgreifen.
Hab mir schon gedacht das es zu meiner Lösung ne Alternative gibt.
Erklärst Du mir kurz das "(nichtmodal)", oder hast Du nen Ansatz für mich,
dann würd ich das gern ausprobieren.
Chris
Anzeige
AW: Ein Startbildschirm und seine Tücken...
03.07.2005 18:41:50
Matthias
Hallo Chris,
baue ein Userform und setze dessen Eigenschaft "ShowModal" auf "False".
Teste den Unterschied mit diesem Code:

UserForm1.Show
MsgBox "ok"

Wenn das UF nichtmodal ist, wird der anschließende Code sofort ausgeführt. Du kannst also das UF anzeigen, deine Startberechnungen durchführen und das UF dann wieder mit

Unload Userform1

schließen. Dann hast du auch keine Zeitverschwendung durch Application.Wait(), es sei denn, dein Startcode ist so schnell fertig, dass man die UF gar nicht genießen kann ;-)
Gruß Matthias
Anzeige
AW: Ein Startbildschirm und seine Tücken...
03.07.2005 19:26:21
Chris
Wirklich gar keine schlechte Idee.
Da aber die Verzögerung am Anfang nicht so sehr von Berechnungen, sondern vom einlesen
der vielen Daten und UserForms beeinflußt wird, hab ich wenig Einfluß darauf...
Ich müßte also ein solches nichtmodales UserForm bauen, 5Sek. laufen lassen und in der
Zwischenzeit Excel unsichtbar machen. Das ist wahrscheinlich die beste Lösung.
Das mit dem Ausblenden aller Blätter nach dem Start hab ich probiert, das führt aber zum
selben Ergebniss. Erst wird das zuletzt gespeicherte Blatt kurz gezeigt, dann erst kommt
mein Start-Sheet. Das is wohl nicht anders machbar.
Ich bau jetzt mal so ein UserForm und schreib dann nochmal obs brauchbar ist. ;o)
...solong
Chris
Anzeige
AW: Ein Startbildschirm und seine Tücken...
03.07.2005 20:01:20
Matthias
Hallo Chris,
du kannst auch eine kleine Excel-Arbeitsmappe erstellen, die folgendes macht:
- Excel unsichtbar machen
- Userform anzeigen
- Hauptmappe öffnen
- sich selbst wieder schließen
Du brauchst dazu diesen Code:
ins Modul DieseArbeitsmappe
Private Sub Workbook_Open()
UserForm1.Show
End Sub

ins Modul der Userform1:
Private Sub UserForm_Activate()
DoEvents 'Userform komplett aufbauen lassen
Application.Visible = False
On Error GoTo fehler
Workbooks.Open "D:\xl\prog.xls"
fehler:
If err.Number > 0 Then
MsgBox err.Description, vbCritical, "Fehler Nr." & err.Number
err.Clear
End If
Application.Visible = True
ThisWorkbook.Close SaveChanges:=False
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'verhindert das Schließen übers Schließkreuz:
If CloseMode = 0 Then Cancel = True
End Sub

(Die Userform muss nicht einmal Showmodal auf False stehen haben, da der Code innerhalb des Activate()-Ereignisses ausgeführt wird.
Viel Erfolg,
Matthias
Anzeige
AW: Ein Startbildschirm und seine Tücken...
03.07.2005 20:03:31
Chris
Hallo Matthias
Also... Das sieht auf jeden Fall wesentlich besser aus und braucht viel weniger Aufwand.
Danke für den coolen Tip. ;o)
Ich hab jetzt ein nichtmodales (wieder was gelernt ;o) ) UserForm und starte es mit
diesem Code:

Private Sub Workbook_Open()
Application.Visible = False
Start.Show
If Application.Wait(Now + TimeValue("0:00:5")) Then
Application.Visible = True
Unload Start
End If
ThisWorkbook.Saved = True
End Sub

ABER: Wieder wird beim Start zuerst Blatt2 angezeigt, und erst dann das komplette Fenster
unsichtbar gemacht und mein UserForm gestartet.
Kann man das denn wirklich nicht umgehen?
Chris
Anzeige
siehe oben - o.T.
03.07.2005 20:07:11
Matthias
:-)
AW: siehe oben - o.T.
03.07.2005 20:29:30
Chris
Hahaaa... Na das sind Ideen. :o)
Auf diese Art und Weise kann ich als Admin die Datei auch ohne Start-Modul ausführen.
...und alle Anwender bekommen einen schönen Startbildschirm. :o) Prima.
Nur:
Dann müßte der Pfad für das eigentliche Workbook so aussehen, das einfach im gleichen Ordner
gesucht wird. Unabhängig von der Laufwerksangabe.
(Ich verpacke das Projekt für jeden Anwender mittels Zup4 in eine .exe die dann alles an die richtige Stelle installiert.)
Nur die Laufwerksangabe macht der Anwender. Ordner werden dann automatisch angelegt.
Kann man die Pfadangebe so ändern wie bei html? Also: ..\..\Projekt.xls
Chris
Anzeige
AW: Startbildschirm
03.07.2005 20:33:51
Matthias
Hallo Chris,
das geht so:
Workbooks.Open ThisWorkbook.Path & "\Hauptmappe.xls"

Gruß Matthias
AW: Startbildschirm
03.07.2005 20:43:21
Chris
Trauuumhaft... ;o)
Also hier werden sie wirklich bestens geholfen.
Ich probier das sofort zusammenzubasteln und meld mich dann nochmal.
Diese Lösung ist um einiges besser als ich mir das selbst vorgestellt hab.
Wenns jetzt noch ordentlich läuft, sollte man Dir einen virtuellen Orden verleihen. :o)
...bis später
Chris
AW: Startbildschirm
03.07.2005 21:45:20
Chris
Bin noch am basteln. Das is gar nicht so einfach umzusetzen.
Zwischenfrage: Gibts ein Not-Stop für die Start.xls?
Wenn ich die zum ersten mal gestartet hab, komm ich niewieder ran um sie zu verändern.
Chris
Anzeige
AW: Startbildschirm
03.07.2005 21:48:28
Matthias
Hallo Chris,
setze die Makrosicherheit auf "mittel" und klicke auf deaktivieren bei der Abrage beim Öffnen, wenn du die Mappe bearbeiten willst.
Gruß Matthias
AW: Startbildschirm
03.07.2005 21:59:36
Chris
Sorry... aber das wirft noch eine Frage auf.
Kann man die Einstellungen für die Makrosicherheit per Code ausführen?
Denn sonst würde bei neuen Anwendern beim ersten Start nicht viel passieren...
...oder das falsche.
Chris
AW: Startbildschirm
03.07.2005 22:13:27
Matthias
Hallo Chris,
nun ja, das ist ein grundsätzliches Problem in Excel...
Du könntest deiner Start.xls ein (und am besten nur ein) Tabellenblatt verpassen, in dem in etwa steht:
"Wenn sie diese Zeilen länger lesen können, müssen sie die Makrosicherheit auf mittel stellen und beim Start dieser Datei aktivieren... bla bla... Bitte Mappe schließen und neu starten!"
Dann alles schützen (Blatt, Mappe, VB-Projekt) und speichern.
Wenn nun die Makros deaktiviert sind, kann der Anwender wenigstens den Hinweis lesen.
Sozusagen ein Startbildschrim, wie du ihn anfangs wolltest, für die Startdatei... aber eben nur (länger) zu sehen, wenn die Makros nicht aktiv sind.
Gruß Matthias
Anzeige
AW: Startbildschirm
03.07.2005 23:19:36
Chris
So. Fast fertig. :o)
Das is nicht schlecht. Wirklich Klasse. Nur noch eine Kleinigkeit, dann kann ich eine Zusammenfassung schreiben...
Kann ich die Start.xls irgendwie automatisch im Hintergrund oder minimiert starten lassen?
Denn wieder wird beim Start erst ein leeres Excel-Fenster angezeigt, und erst dann startet
das UserForm und Excel wird unsichtbar.
Chris
AW: Startbildschirm
04.07.2005 05:35:28
Matthias
Hi Chris,
da sind nun denke ich die Grenzen von Excel erreicht.
Ich selbst habe (bei einem Dienstplanprogramm) mit VB (ohne A!) eine kleine EXE-Datei erzeugt (Nepumuk war mein Helfer im Forum), die dasselbe macht wie die Start.xls. Hier kommt dann das Excel-Fenster erst, wenn die Projektmappe fertig geladen ist.
Nebenbei kann man darin auch gut das Passwort zum Öffnen verstecken.
Also, falls du Visual Basic hast:

Private Sub Form_Load()
Me.Show
DoEvents
On Error GoTo ERRHANDLER
Set xlApp = CreateObject("Excel.Application")
If Err.Number > 0 Then
MsgBox "Microsoft(R) Excel ist nicht installiert.", vbCritical, "fehlende Software"
GoTo ENDE
End If
xlApp.Visible = False
xlApp.Workbooks.Open FileName:=App.Path & "\Projekt.xls", Password:="123"
If Err.Number > 0 Then
MsgBox "Die Datei konnte nicht geöffnet werden!", vbCritical, "unerwarteter Fehler"
End If
ENDE:
Set xlApp = Nothing
End
ERRHANDLER:
MsgBox "Fehler " & Err.Number & vbLf & Err.Description, vbCritical, "unerwarteter Fehler"
Set xlApp = Nothing
End
End Sub

Gruß Matthias
Anzeige
AW: Startbildschirm
04.07.2005 10:53:25
Chris
Guten Morgen Matthias.
Sowas hab ich mir schon gedacht. Auch die Makrosicherheit von außen beeinflußen macht wenig
Sinn, wie mir heute auffällt. Dann hätten die das auch weglassen können. ;o)
Naja. Soweit sogut. Deine Idee hab ich umgesetzt, mein Startbildschirm läuft.
Doch nun ergibt sich ein etwas seltsamer Fehler:
Im ersten Tabellenblatt meiner Hauptmappe hab ich aus CommandButtons und Userforms mit Listboxen kleine Drop-Down-Menüs nachgebaut. Bei Klick auf den Button öffnet sich ein kleines
UserForm mit einer Listbox und ohne Titielleiste direkt unterhalb des Buttons.
Starte ich meine Hauptmappe direkt, ohne Start.xls, läuft alles problemlos.
Starte ich erst die Start.xls, dann bekomme ich nach Click auf einen der Drop-Down-Buttons
folgende Fehlermeldeung:
"Laufzeitfehler '429'
Objektherstellung durch AktivX-Komponente nicht möglich."
Der Clou: Nicht debuggen, sondern Fehlermeldung abbrechen, zweiter Versuch, plötzlich gehts.
ALso kann doch im Code kein Fehler sein, oder?
Chris
AW: Startbildschirm
05.07.2005 11:27:53
Matthias
Hallo Chris,
was passiert, wenn du die Zeile
Application.Visible = False

weglässt?
Gruß Matthias
AW: Ein Startbildschirm und seine Tücken...
03.07.2005 19:39:43
ransi
hallo chris
warum blendest du dein blatt start nicht im workbook_beforeclose ein?
dann ist sie beim öffnen schon da.
ransi
AW: Ein Startbildschirm und seine Tücken...
03.07.2005 20:48:37
Chris
Hi ransi.
Das hab ich probiert. Dadurch ergeben sich aber auch ein paar Probleme.
Denn: Die wird dann beim sichtbarmachen kurz eingeblendet.
Das ist selbst über die Displayaktualisierung nicht zu verhindern.
Ergo: Man sieht den Startbildschirm, obwohl man doch beenden möchte. (?)
Die Idee von Matrthias mit dem Workbook als Start-Schild ist schon ne herrliche Lösung.
Trotzdem Danke für Deine Antwort...
Chris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige