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

UserForm m. ShowModal=false (v.Heiko)

UserForm m. ShowModal=false (v.Heiko)
20.02.2005 15:06:11
michael
Hallo Heiko oder jeder der mir helfen möchte,
das Macro funktioniert mit ShowModal Eigenschaft des Userforms auf False, wenn der 1.Teil in der Tabelle oder einem Modul steht jedoch muß der 2. Teil (nach weiter) in der UserForm stehen.
Ich bräuchte es aber so, daß der 1. Teil im Modul, dann Userform abfrage, weiter im Modul (ich krieg den 2. Teil nicht so in die UserForm dass er läuft). Jedoch muß die Tabelle während der Userform scrollbar bleiben (wg Kontrolle ob alles i.O. - geht wohl nur wenn ShowModal = false) jedoch gehts anschließend nicht zurück ins Modul.
Ich habe etwas gespielt und rausgefunden:
ShowModal = True: Macro springt zurück ins Modul - Tabelle nicht scrollbar
ShowModal = False: Macro springt nicht zurück ins Modul bzw bleibt im Modul - Tabelle scrollbar
Was mach ich falsch? Ich kapiers leider nicht..

Die Datei https://www.herber.de/bbs/user/18378.xls wurde aus Datenschutzgründen gelöscht


Danke für jede (Nach-)hilfe
Michael
AW: UserForm m. ShowModal=false (v.Heiko)
Heiko
Hallo Michael,
hab dir mal zwei weitere Versionen in die Mappe gepackt.
https://www.herber.de/bbs/user/18394.xls
Wenn irgendwie möglich nutze die Version mit erster und zweiter Teil, die ZweiteMöglichkeit bremst wegen der darin enthaltenden Schleife ziemlich den Rechner aus.
Gruß Heiko
PS: Rückmeldung nicht vergessen !!!
AW: UserForm m. ShowModal=false (v.Heiko)
michael
Hallo Heiko,
vielen Dank für deine Hilfe!! und Respekt! was du da an Macros schreibst...
Public weiter As Boolean
dieses weiter wurde in der 1.Vesion nicht benutzt (zumindest hab ichs nicht gefunden) wurde aber als Variable definiert. Warum musste es definiert werden?
was macht diese Schleife, wie oft wird sie durchlaufen?
Do
DoEvents
Loop Until weiter = True
Ich habs mit F8 (inEinzelschritten) versucht nachzuvollziehen, jedoch kommt der Ablauf nicht aus der Loop heraus.
Liegt die Aufwändigkeit nur am ShowModal=false ?
Soweit ich es feststellen konnte müssen Teil 1 und 2 in 2 verschiedenen Bereichen stehen (egal ob 2 Module, 1 Modul u. 1 UserForm) da sonst Teil 1 und 2 hintereinander weg abgearbeitet werden (die Antwort der UserForm oder die gesamte UserForm wird ignoriert). Warum passiert das?
In der zweiten Version hast du diese Trennung wohl über die Loop erreicht? Du schreibst sie bremst den Rechner aus - ich vermute die Loop wird solange durchlaufen bis ich einen Button der UserForm drücke - hat dann Funktion einer Pause fürs MAcro? - und deshalb das Ausbremsen des Rechners.
Kann man nicht anders eine Trennung zw. Teil 1 und teil 2 erreichen und beide in einem Modul lassen?
Warum geht kein If weiter = True Then?
oder ein GoTo eine Sprungmarke zw. Userform und Teil2
Danke und Gruß
Michael
Anzeige
AW: UserForm m. ShowModal=false (v.Heiko)
Heiko
Hallo Michael,
Public weiter As Boolean. Warum musste es definiert werden?
Weil man als anständiger Programmierer sowieso immer alle Variablen vorher definiert, und zweitens weil diese Variable in verschiedenen Modulen genutzt werden soll und darum als PUBLIC definiert sein muss.
was macht diese Schleife, wie oft wird sie durchlaufen?
Do
DoEvents
Loop Until weiter = True
Sie wird solange durchlaufen bis weiter = True ist, also der Button im Userform gedrückt wurde mit dem weiter auf True gesetzt wird. Wird das Userform über Abbrechen oder das x oben rechts geschlossen, wird die Schleife ebenfalls unterbrochen.
Zu DoEvents schau bitte in der VBA Hilfe nach, ohne hast du aber eine Endlosschleife.
Warum geht kein If weiter = True Then?
oder ein GoTo eine Sprungmarke zw. Userform und Teil2
If weiter = True ist eine einmalige Abfrage, entweder ist weiter = true dann macht es damit weiter oder aber weiter ist gleich False dann mach es nach der If Anweisung weiter.
Goto Marken sind nur innerhalb eines Subs oder Function erlaubt, damit kann man nicht in ein anderes Sub springen, außerdem sollten Goto Anweisungen (außer für Fehlerroutinen) vermieden werden.
Zu ShowModal schau auch mal in der VBA Hilfe nach.
Gruß Heiko

Anzeige
AW: UserForm m. ShowModal=false (v.Heiko)
michael
Hallo Heiko,
danke für deine Antwort.
Zu ShowModal schau auch mal in der VBA Hilfe nach... Leider gibt es dieses Stichwort nicht in meiner Excel/MS VB Hilfe. Könntest du mir vielleicht die Antwort deiner VBA Hilfe beifügen?
Mir ist noch nicht klar warum sich die UserForm so unterschiedlich bei True zu False verhält. Vielleicht eröffnet sich mir die Antwort aus der Hilfe.
Danke Michael
AW: UserForm m. ShowModal=false (v.Heiko)
Heiko
Hallo Michael, hier der Auszug aus der VBA Hilfe.
ShowModal-Eigenschaft

Legt fest, ob ein UserForm gebunden oder ungebunden angezeigt wird. Diese Eigenschaft ist zur Laufzeit schreibgeschützt.
Bemerkungen
Die Einstellungen für die ShowModal-Eigenschaft sind:
Einstellung Beschreibung
True (Voreinstellung) Das UserForm ist gebunden.
False Das UserForm ist ungebunden.
Bemerkungen
Wenn ein UserForm gebunden ist, sollte der Benutzer Informationen liefern oder das UserForm schließen, bevor irgendein Teil der Anwendung verwendet wird. Es wird kein nachfolgender Code ausgeführt, bis das UserForm verborgen oder entladen ist. Obwohl andere Formulare in der Anwendung deaktiviert werden, wenn ein UserForm angezeigt wird, geschieht dies nicht bei anderen Anwendungen.
Wenn das UserForm ungebunden ist, kann der Benutzer andere Formulare oder Fenster anzeigen, ohne das UserForm zu schließen.
Ungebundene Formulare werden nicht in der Taskleiste angezeigt und befinden sich nicht in der Aktivierreihenfolge des Fensters.
Anmerkung Wenn Sie versuchen, ein UserForm mit einer ShowModal-Eigenschaft in Microsoft Office 97 zu öffnen, erhalten Sie einen Laufzeitfehler, da Office 97 nur gebundene UserForms anzeigt. Office 97 ignoriert die ShowModal-Eigenschaft und zeigt das UserForm gebunden an.
Gruß Heiko
PS: Läuft dein Makro denn nun so wie du möchtest ?!
Anzeige
AW: UserForm m. ShowModal=false (v.Heiko)
michael
Hallo Heiko,
danke für die Antwort-komisch warum steht in meiner Hilfe nichts?
An meinem Macro bin ich noch am basteln.... Muss mich wohl für die 2. Mglk. entscheiden (Loop) da ansonsten all meine im Teil 1 definierten Variablen im Teil 2 unbekannt sind. :-(
Danke Michael
P.S. Mir ist noch immer nicht klar warum sich die UserForm so unterschiedlich bei True zu False verhält - aber ich glaube ich werds halt so akzeptieren müssen
AW: UserForm m. ShowModal=false (v.Heiko)
Heiko
Hallo Michael,
das mit den Variablen stimmt nicht ganz, wenn du die Variablen oben im Modul, vor dem ersten Sub als
Public intZaehler as Interger
Public strDateiname as String
.
.
.
definierst dann sind diese Variablen in ALLEN Subs und Modulen bekannt.
Gruß Heiko
Anzeige
Public Variable...
michael
Hallo Heiko,
danke für die Antwort.
Gilt das auch für die Werte die im Teil 1 den Variablen zugeordnet wurde?
Danke Michael
AW: Public Variable...
Heiko
Hallo Michael,
ja, gerade das ist ja der Trick mit den Public Variablen. Die Werte bleiben so lange in der Varaibalen erhalten bis die Mappe mit dem Modul geschlossen wird.
Aber Vorsicht, bei nächsten Aufruf deines Makros stehen in den Variabeln noch Werte vom letzten Durchlauf drin. Das kann z.B. bei if Abfragen zum Problem werden.
Keine Angst das ist nicht schlimm, aber man muss dann am Anfang vom Makro dafür Sorgen das die Variablen auf definierte Zustände gesetzt werden. Booelan z.B. auf False .
Gruß Heiko
Anzeige
ginge auch ein Stop?
michael
Hallo Heiko,
sag mal könnte ich nicht auch ein Stop Befehl einbauen und dieses Stop per Abfrage wieder ausschalten?
Lässt sich ein durch Stop angehaltenes Macro nur aus dem VB-Editor heraus per PlayTaste oder F8 fortsetzen? Oder gibt es auch im Excel eine Möglichkeit der Fortsetzung des Macros?
Danke und Gruß
Michael
AW: ginge auch ein Stop?
Heiko
Hallo Michael,
da muss ich leider mit den Schultern zucken. Ich habe noch nie mit dem STOP Befehl gearbeitet und kann dir darum keine Antwort auf die Frage geben.
Gruß Heiko
AW: UserForm m. ShowModal=false (v.Heiko)
michael
Hallo Heiko,
Vielen DAnk für deine ausführliche Hilfe!!!
Michael
PS. Sag mal Heiko S. steht nicht zufällig für Sterner?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige