Office: (Office 2019) 1UFO für 2HFO

Helfe beim Thema 1UFO für 2HFO in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Excel freunde, hoffe Ihr könnt mir bei der Umsetzung helfen. Meine Basis ist ein Formular mit 2 Button (Neue Messung; Messung Bearbeiten) Jedes... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Fritschen, 29. November 2025 um 21:02 Uhr.

  1. Fritschen Neuer User

    1UFO für 2HFO


    Hallo Excel freunde,
    hoffe Ihr könnt mir bei der Umsetzung helfen.
    Meine Basis ist ein Formular mit 2 Button (Neue Messung; Messung Bearbeiten)
    Jedes der Formulare hat einen Button mit dem Namen "Kennziffer" und ein dazugehöriges "Textfeld1"
    Nun gibt es ein Formular "Kennziffer", in dem ich eine Kennziffer auswählen kann und über einen Save Button speichere.
    (Entweder Neue Messung.textfeld1 oder Messung Bearbeiten.textfeld1)
    Nun zu meinem Problem, wie zeige ich dem Formular Kennziffer ob es vom Formular "Neue Messung" oder von "Messung Bearbeiten" aufgerufen wurde bzw. wohin der Wert übergeben werden soll.

    LG
     
  2. R J
    R J hat Ahnung
    ...indem Du einer öffentlichen Variablen bei Klick auf die Buttons einen entsprechenden Wert zuweist, den Du im Formular auswerten lässt...
     
  3. Dazu braucht es keine globale Variablen, sondern du rufst in der Button Click Routine einfach eine Public Procedure/Funktion des UFOs auf und übergibst den eigenen Namen der Userform.

    Beispiel:
    Code:
    ' im 1. HFO und im 2. HFO
    Private Sub CommandButton1_Click()
      ufm.DoSomething Me.Name
    End Sub
    
    Code:
    ' im UFO ufm
    Public Function DoSomething(ByVal Info As String)
        Debug.Print "DoSomething:"; Info
    End Function
    
    Knobbi38
     
  4. 1UFO für 2HFO

    Anstatt einer Procedure/Function kannst du natürlich auch eine Public Property verwenden, z.B. "Parent", der du das aufrufende Object zuweist:
    Code:
    ' im 1. HFO und im 2. HFO
    Private Sub CommandButton1_Click()
      Set ufm.Parent = Me
    End Sub
    
    Code:
    ' im UFO ufm
    Private m_frmParent As Object
    
    Public Property Get Parent() As Object
      Set Parent = m_frmParent
    End Property
    
    Public Property Set Parent(ByVal ParentForm As Object)
      Set m_frmParent = ParentForm
     
      Debug.Print "New ParentForm", m_frmParent.Name
    End Property
    
    Private Sub UserForm_Terminate()
      Set m_frmParent = Nothing
    End Sub
    
    Eine andere Alternative wäre, dass das UFO als Event Sink für die beiden HFOs fungiert, ähnlich wie bei einem gemeinsamen Eventhandler - aber das führt hier vielleicht zu weit.

    Knobbi38
     
    1 Person gefällt das.
  5. OilMax Erfahrener User
    Das sehe ich auch so, dass man soweit es sinnvoll ist, statt Public Variablen besser in eine Property Anweisung packt. Das ist vor allem aus Stabilitätsgründen, da private Variablen bei Fehlern nicht entladen werden, vorzuziehen.

    Gruß Uwe
     
Thema:

1UFO für 2HFO

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden