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

Label von einem Frame in anderen verschieben

Label von einem Frame in anderen verschieben
22.06.2019 15:20:58
einem
Hallo Spezialisten,
besteht die Möglichkeit, dass ich das Label "lbl_Zeit" das im Frame "Frm_Jahr" befindet in den Frame "Frm_Übersicht" verschiebe und wieder zurück.
Ich habe in einer UF verschiedene Frame's. Diese werden immer so groß wie die UF selbst. Nun zeigt mir das Label "lbl_Zeit" die aktuelle Uhrzeit an. Wenn ich nun einen anderen Frame öffne sollte das Label in diesem Frame erscheinen. Beim verlassen des Frames soll das Label im neuen Frame erscheinen.
Danke!
Gruß
Ludmila

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

Betreff
Datum
Anwender
Anzeige
AW: Label von einem Frame in anderen verschieben
22.06.2019 15:32:58
einem
Hi
schwierig.
die Frage ist, warum du mehrere Frames verwendest.
Wenns nur dazu dient, dass du in der Userform mehrere Ansicht mit unterschiedlichen Steuerelementen hast, dann könntest du auch so vorgehen:
erstelle eine Multipage mit so vielen Seiten wie du Frames hast.
platziere die Steuerelemente jedes Frames auf eine Multipageseite.
blende die Tab-Leiste der Mulitpage aus. dann kann der Anwender nicht mehr selbstständig umblättern, sondern das geht nur per Code (wie bei deinen Frames)
mache die Multipage etwas kleiner als die Userform und platziere die Steuerelemente, die immer sichtbar sein sollen in der freien Fläche.
oder wenns nur um die Uhrzeit geht: schreibe die Uhrzeit doch in Caption der der Userform.
Gruß Daniel
Anzeige
AW: Label von einem Frame in anderen verschieben
22.06.2019 15:51:59
einem
Hallo Daniel,
Danke für Deine Antwort.
Das mit dem Verkleinern der Frame's oder in eine MultiPage zu packen geht nicht bei mir.
Zum einen habe ich in den verschiedenen je eine Multipage.
Auch habe ich den Style der MultiPage ausgeblendet und eigene CommandButton zum wechseln der Seite.
Ich könnte in jeden Frame ein Label für die Zeit einfügen, jedoch müsste ich diese bei jedem Aufruf des Frame ein und danach wieder ausschalten.
Das ist mir dann doch zu umständlich.
Auch das die Zeit im Caption der Userform anzeigen lasse habe ich versucht, bzw. wird dann das Programm sehr langsam und alle Steuerelemente wie ComboBox nur verzögert, bei MsgBox wird dann kein Text mehr angezeigt.
Derzeit aktive ich mein Label wie folgt:
Private Sub UserForm_Activate()
bol = True
Do Until bol = False
DoEvents
With UF1
.lblStart_Zeit.Caption = sUHRTag & " " & Format(Date, "DD. MMMM YYYY") & vbLf &  _
funcKW(Date) & ". Kalenderwoche" & vbLf & Time
End With
Loop
End Sub
sUhrTag gibt Mo, Di usw an.
Wie könnte ich es anders bewerkstelligen?
Gruß
Ludmila
Anzeige
AW: Label von einem Frame in anderen verschieben
22.06.2019 16:19:51
einem
Hi
naja, stellt sich überhaupt erstmal die Frage, warum man in der Userform eine Information anzeigen muss, die sowieso in den meisten Fällen permanent auf dem Bildschirm sichtbar ist.
alles andere ändert sich ja sowieso nicht und es reicht, wenn man es einmal beim Start der Userform aktiviert.
Generell sollest du dir überlegen, ob du die Uhrzeitaktualisierung wirklich über eine Endlosschleife machen willst, sondern nicht besser über ein Makro, welches du mit Application.Ontime im Sekunden oder ggf auch im Minutentakt aufrufen kannst, so dass das viel weniger Performance benötigt als ein permanenter Update.
wenn du nicht tiefer in deinen Aufbau eingreifen willst, könntest du folgendes tun.
1. erstelle auf jedem Frame ein Label für die Uhrzeit.
2. deklariere eine Userform-weit gültige Objektvariable vom Typ Control, dh im Modul der Userform, oberhalb der Makros:
Option Explicit
Dim lblZeit as Control

3. erstelle für jeden Frame das ENTER-Event und weise dort das label, in welches die Uhrzeit geschrieben werden soll, der Variablen zu:
Private Sub Frame1_Enter()
Set lblZeit = uf1.lblStart_Zeit_Frame1
End Sub
Private Sub Frame2_Enter()
Set lblZeit = uf1.lblStart_Zeit_Frame2
End Sub

4. verwende in deiner Do-Schleife die Objektvariable
 Do Until bol = False
if not lblZeit is nothing then lblZeit.Caption = ....
Loop

Gruß Daniel
Anzeige
AW: Label von einem Frame in anderen verschieben
22.06.2019 16:51:38
einem
Hallo Daniel,
echt super!
Danke!
Gruß
Ludmila

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige