Aktive textbox wodurch Userform geöffnet wurde füllen

  • Excel

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von kevinbusy.

    Aktive textbox wodurch Userform geöffnet wurde füllen

    Guten tag ,

    ich komme nicht mehr weiter und hoffe auf eure Hilfe.

    Eigendlich ganz simple, aber ich komme nicht drauf

    habe 2 Userforms.

    Userform1 -> TextBoxen
    Userform2 -> Kalender

    wenn ich auf egal welcher TextBox dblclicke öffnet er den Kalender. Wenn ich jetzt ein Tag/Monat/Jahr auswähle fügt er es in Textbox1 ein ... alles schön und gut
    es funktioniert nur mit einer TextBox
    er soll aber das Datum in die (Aktive) TextBox, womit die Userform geöffnet worden ist, fügen.

    hoffe es ist verständlich..
    danke im vorraus!
    Userform 1

    Quellcode

    1. Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    2. With UserForm1
    3. .Show
    4. End With
    5. End Sub
    6. Private Sub TextBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    7. With UserForm1
    8. .Show
    9. End With
    10. End Sub


    Userform2(Kalender)

    Quellcode

    1. Private Sub CommandButton32_Click()
    2. UserForm2.TextBox1.Text = label111.Caption & "." & Label222.Caption & "." & Label333.Caption
    Wenn man davon absieht, dass man aus

    Visual Basic-Quellcode

    1. With UserForm1
    2. .Show
    3. End With
    einfach UserForm1.Show machen kann, ist wohl das Problem im letzten Snippet, Zeile#3 festgepinnt: UserForm2.TextBox1.Text =
    Das musst Du ersetzen. Du könntest z.B. mit einem Flag dem Kalenderformular klarmachen, welche TextBox befüllt werden soll: In UserForm2 eine passende festlegen, bei der TextBox1-DoubleClick ihr einen anderen Wert verpasst als TextBox2-DoubleClick. Und den Variablenwert wertest Du dann in UserForm1 aus.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Nabend danke für die schnelle Antwort

    With UserForm1
    .Show
    End With

    Hatte gedacht das funktioniert besser , weil hatte nach gedacht es genau wie mit excel

    With UserForm1
    .Show
    .text.controlsource = target.adress
    End With

    Mit Flag hab ich keine Ahnung noch nie gemacht..
    Meine vb Kenntnisse sind eher für anfänger
    "Flag" ist nur ein allgemeiner Begriff. Ein Signal für jemanden. Das kann eine Boolean-Variable sein, ein Integer oder was auch immer für Dich passt, um quasi einen Status zu signalisieren, mit dem Du bzw. Dein Code was anfangen kann. Such Dir was aus, was Du verstehst.
    Du kannst z.B. eine Public Integer-Variable TextBoxIndexWhichSummonsTheCalendar* hernehmen und bei TextBox1-DblClick eine 1 in der Variable speichern und bei TextBox2-DblClick eine 2. Und dann eben im Kalender schauen, was in der Variable für ein Wert drinsteht und entsprechend mit nem If darauf reagieren, also:

    Quellcode

    1. Wenn TextBoxIndexWhichSummonsTheCalendar = 1, dann UserForm2.TextBox1.Text = DeinDatum; ansonsten wenn TextBoxIndexWhichSummonsTheCalendar = 2, dann UserForm2.TextBox2.Text = DeinDatum

    *such Dir nen Namen aus, der Dir mehr zusagt/besser gefällt
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.