Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1364to1368
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

Name der letzten Userform "ermitteln"

Name der letzten Userform "ermitteln"
09.06.2014 21:06:14
Christian

Hallo Forum,
ich muss mal wieder eure geschätzte Hilfe in Anspruch nehmen.
In meiner Mappe sind ja mehrere UF's. Eine davon dient als "Master UF" und kann aus z.Z. 5 UF's aufgerufen werden.
Mit welchen eleganten Weg ermittelt man den Namen dieser UF?
Bis jetzt habe ich es über eine IF Abfrage der ListBox1 der jeweiligen UF gelöst, die ist in jeder UF da, und da muss auch was ausgewählt sein, um die "Master UF" angezeigt zu bekommen, aber das geht doch bestimmt eleganter?
Hintergrund der ganzen Sache:
Den Namen hätte ich gerne, da in der "Master UF" Berechnungen der ausgewählten Pos. (von Listbox1 der jeweiligen UF) getätigt werden. Beim Schließen der "Master UF" könnte ich dann wiederum einfach sagen, "Master UF" schließen und die uf(x)wieder activieren/updaten.
Bisheriger Weg:

If uf1.ListBox1.ListIndex <> -1 Then typpo = uf1.ListBox1.ListIndex
ElseIf uf2.ListBox1.ListIndex <> -1 Then typpo = uf2.ListBox1.ListIndex ... usw.
Einfacher wäre ja
typpo = letzteUF??.Listbox1.ListIndex
Wie kommt man an den Namen?
Für Anregungen bedanke ich mich im Voraus!
MfG Christian

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Name der letzten Userform "ermitteln"
09.06.2014 22:04:10
Beverly
Hi Christian,
schreibe den Namen des aufrufenden UserForms (im Beispiel UserForm2) in die Tag-Eigenschaft des Master-UserForms, wenn du es aufrufst:
Private Sub CommandButton1_Click()
Me.Hide
frmMaster.Tag = "UserForm2"
frmMaster.Show
End Sub
Und beim Schließen des Master.UserForms kannst du die Tag-Eigenschaft wieder auslesen:
Private Sub CommandButton1_Click()
Me.Hide
UserForms.Add(Me.Tag).Show
End Sub


AW: Name der letzten Userform "ermitteln"
10.06.2014 00:13:12
Christian
Hallo Karin,
Danke für die Antwort!
Leider komme ich damit nicht zurecht :-(
Was bewirkt dei Tag Eigenschaft?
Und wie setze ich das dann mit dem Abruf des ListIndex Wertes der Userform ein?
Nochmal grob die Erklärung:
z.Z. 5 Listboxen, jeweils nur eine geladen.
In der Listbox der geladenen UF eine Listbox, nach Auswahl in dieser Listbox rufe ich die MasterUF auf, und nun würde ich gerne wissen aus welcher UF die MasterUF aufgerufen wurde!
Da definitiv noch mehr LB's dazukommen, möchte ich mir die IF abfragen der jeweiligen LB sparen,
da auch Vergleichrechnungen innerhalb der MasterUF mit Bezug auf die UF getätigt werden.
Nur wie?
Für Anregungen sage ich schon mal Danke!
MfG Christian

Anzeige
UserFormName in Tag-Eigenschaft setzen ...
10.06.2014 07:43:17
Matthias L
Hallo
Eigentlich hat ja Karin schon alles erklärt.
Schau Dir die Tag-Eigenschaft mal in der Hilfe an.
Die Tag-Eigenschaft
Speichert zusätzliche Informationen über ein Objekt.
Ich hab Dir mal ein Bsp erstellt in dem Du das dann evtl. besser verstehst.
https://www.herber.de/bbs/user/91049.xlsm
Gruß Matthias

AW: UserFormName in Tag-Eigenschaft setzen ...
10.06.2014 12:29:25
Christian
Hallo Matthias,
Danke für die Erklärung und das Beispiel.
Das Problem sitzt 50 - 80 cm vorm Bilschirm!
Es wird euch bestimmt die Haare sträuben, aber ich muss trotzdem nochmal nachfragen:
Wie kann ich denn jetzt mit diesem Namen weiterarbeiten?
Wie bekomme ich den jetzt vor die Listbox gesetzt?
Mit folgendem Code zeigt er Fehler an, ist ja auch verständlich, aber wie muss es richtig gemacht werden?
Private Sub CommandButton1_Click()
MsgBox Commandbutton1.Tag
Me.TextBox1 = Commandbutton1.Tag.ListBox1.List(Commandbutton1.Tag.ListBox1.ListIndex, 0)
End Sub
Für Unterstützung bin ich weiterhin dankbar!
MfG Christian

Anzeige
AW: UserFormName in Tag-Eigenschaft setzen ...
10.06.2014 16:21:48
Nepumuk
Hallo,
definiere im Masteruserform eine Userform-Eigenschaft welche du aus den anderen Userforms fütterst. So kannst du ohne irgendwelche Umwege darauf zugreifen.
Im Masteruserform (bei mir frmMaster):
' **********************************************************************
' Modul: frmMaster Typ: Userform
' **********************************************************************

Option Explicit

Private mobjUserForm As Object

Public Property Get UserForm() As Object
    Set UserForm = mobjUserForm
End Property

Public Property Set UserForm(ByRef probjUserForm As Object)
    Set mobjUserForm = probjUserForm
End Property

Private Sub CommandButton1_Click()
    If Not UserForm Is Nothing Then
        Hide
        UserForm.Show
        Unload Me
    End If
End Sub

Private Sub UserForm_Activate()
    If Not UserForm Is Nothing Then MsgBox UserForm.Name 'nur zum testen
End Sub

Private Sub UserForm_Terminate()
    Set UserForm = Nothing
End Sub

In allen anderen Userforms welch den Master aufrufen:
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub CommandButton1_Click()
    Hide
    frmMaster.Show
    Unload Me
End Sub

Private Sub UserForm_Activate()
    Set frmMaster.UserForm = Me
End Sub

Gruß
Nepumuk

Anzeige
AW: UserFormName in Tag-Eigenschaft setzen ...
10.06.2014 17:42:31
Christian
Hallo Nepumuk,
danke für die Antwort.
Wahrscheinlich habe ich es schlecht beschrieben, jedenfalls bekomme ich es nicht hin.
Ich habe 5 unterschiedliche Userforms, in den Userforms jeweils eine Listbox, mehrspaltig.
Von den füf UF ist immer nur eins aktiv.
Dazu das MasterForm.
Wenn ich jetzt in einer von den Userform einen Listboxeintrag auswähle, dann öffne ich per Button das MasterForm.
In dem Masterform fülle ich eine Listbox mit der Zeile aus UF(x)Listbox1.
Diese brauch ich im Masterform als Suchwert für das Laden weitere Werte in den TextBoxen der MasterForm.
klappt bisher alles mit der IF then Anweisung.
Bei Deinem Code gibts ne Fehlermeldung, sobald ich etwas is eine Textbos schreiben lassen will:
Laufzeitfehler 21474118105 (80010007)
Automatisierungsfehler
Der aufgerufene(Server, nicht die Serveranwendung )kann nicht gefunden werden....
Mit dem Beispiel von Matthias zeigt er mir ja den Namen der UF an, nur weiss ich nicht, wie ich diesen dann weiter nutzen kann.
Ich lasse dass jetzt bei meiner alten If Then abfrage.
Trotzdem nochmal Danke fürs Gedankenmachen ;-)
MfG Christian

Anzeige
@ Nepumuk
11.06.2014 15:57:34
Christian
Hallo Nepumuk,
der Fehler lag wie immer vor dem Bildschirm!
Wenn man die Userforms nicht richtig anspricht, funktioniert es natürlich nicht.
Alles angepasst und siehe da! Es klappt wie gewünscht.
War wahrscheinlich zu warm die letzten Tage ;-)
Nochmals Danke für die Unterstützung!
MfG Christian

@ Nepumuk, noch eine Frage
15.06.2014 19:14:53
Christian
Hallo Nepumuk,
wie es fast zu erwarten war, habe ich doch noch eine Frage zu dem Thema.
Wie beschrieben, habe ich mehrere UF's die auf das Master zugreifen, Dank Deiner Unterstützung klappt das wunderbar.
Jetzt habe ich folgende Frage hinsichtlich der Machbarkeit und der Umsetzung:
Wie sieht es aus, wenn ich zwei UF's als MasterUF "bräuchte".
Erklärung: Auf den UF's(normal) sind verschiedene Positionen hinterlegt, mit Auswahl von einer normalen Position gelangt man zum MasterUF(1).
Jetzt gibt es aber noch einen Spezialfall, gewisse Positionen(Hauptpositionen) haben eine Anzahl(x) Unterpositionen, wenn man diese Hauptposition auswählt, öffnet sich eine andere UF (nicht das Master), und man bekommt die zur Hauptposition gehörenden Unterpositionen aufgelistet. Aus diesem UF würde ich gerne auch ein Master machen, da ich auch auf den verschiedenen anderen UF(normal) die Unterposition aufrufen lassen will.
Und man sollte dann mit einer Auswahl einer Unterposition aus dem MasterUF(2) natürlich auch das MasterUF(1) aufrufen können, also ziemlich verzweigt.
Ist sowas machbar? Und wenn ja wie?
Für Hilfestellung sage ich schon mal Danke.
MfG Christian

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige