Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
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

UserForm Position speichern und laden

UserForm Position speichern und laden
25.11.2020 19:56:23
VBAmarv
Hallo zusammen,
ich habe mehrere User-Formen, die aufeinander aufbauen.
Wird die eine geöffnet, wird die andere geschlossen. Alle haben die selbe Größe
und verhalten sich auch sonst wie eine typische Anwendung.
nun möchte ich, dass die letzte Position der zuletzt verschobenen / geöffneten UserForm, gespeichert wird und
die sich neu öffnende UserForm ebenfalls an genau der selben Stelle aufgeht.
Mit NUR einer UserForm und folgendem Code kein Problem.
  • SaveSetting("Userform Positioning", ThisWorkbook.FullName & "-" & Me.Name, "Left", Me.Left)

  • - in einem Ereignis, wenn Userform verschoben & oder andere Userform aufgerufen
  • Me.Left = GetSetting("Userform Positioning", ThisWorkbook.FullName & "-" & Me.Name, "Left", 0)

  • - in einem UserForm_Initialize Ereignis
    etc.
    Leider klappt dies nur bei dieser einen.
    Öffne ich UserForm1, verschiebe diese, öffne daraus UserForm2 wird UserForm 2 da angezeigt wo UserForm2 zuletzt lag, nicht der letzte Speicherpunkt von UserForm1.
    Ich benötige einen Code oder Denkhilfe, dass egal welche UserForm zuletzt geöffnet war, die Position eben dieser Letzten, als Referenz für alle Anderen gilt.
    Hab mich schon wahnsinnig gesucht.
    Danke euch vorab.

    4
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: UserForm Position speichern und laden
    25.11.2020 20:03:50
    Nepumuk
    Hallo,
    du darfst den Namen des Userforms nicht mitspeichern.
    Gruß
    Nepumuk
    AW: UserForm Position speichern und laden
    25.11.2020 20:38:39
    VBAmarv
    Ah, stimmt wohl. Vielen Dank.
    Man sieht den Wald vor lauter Bäumen nicht.
    Würde dann der Code ohne ("-" & Me.Name,) oder nur (& Me.Name,) funktionieren?
    Weis nicht, wofür der Bindestrich steht.
    Danke vorab.
    AW: UserForm Position speichern und laden
    25.11.2020 20:53:21
    Nepumuk
    Hallo,
    aus dem Objektkatalog:
    Sub SaveSetting(AppName As String, Section As String, Key As String, Setting As String)
    AppName = Name der Anwendung
    Section = Bereich
    Key = Schlüssel
    Setting = Wert
    Schreiben würde ich so machen:
    SaveSetting("Excel","Userform Positioning", ThisWorkbook.Name, "Left", CStr(Left))
    
    Auslesen dann so:
    Left = CSng(GetSetting("Excel", "Userform Positioning", ThisWorkbook.Name, "Left", "0"))
    
    Die Angabe von Me ist im Klassenmodul des Userforms redundant.
    Gruß
    Nepumuk
    Anzeige
    AW: UserForm Position speichern und laden
    25.11.2020 21:05:00
    Daniel
    Hi
    Arbeite mit einer einzigen Userform und erstellen statt der vielen Userforms eine Multipage mit einer Seite für jede bisherige Userform.
    Statt eine Userform zu schließen und eine andere zu öffen wechselst du lediglich die Seite der Multipage.
    Die Reiter der Multipage kannst du ausblenden, so dass nur über die bisherigen Buttons gewechselt werden kann.
    Weiterer Vorteil:
    Da alles in einer Userform, stehen alle Daten und Eingaben voll zur Verfügung ohne dass Daten übergeben werden müssen.
    Kleiner Nachteil:
    Da du jetzt viele Steuerelemente in einer Userform hast, solle man sich über die Benennung ein paar Gedanken machen, damit man nicht die Übersicht verliert.
    Gruß Daniel
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige