Datumswert aus UserForm frm_Kalender in TextBox einer anderen UserForm eintragen

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von MichaelvD.

    Datumswert aus UserForm frm_Kalender in TextBox einer anderen UserForm eintragen

    Hallo Zuasammen
    Ich habe zwei Userforms, zu einen frm_Kalender, welche den angeklickten Wert an die ActiceCell der Tabelle übergibt. Funktioniert
    Diese frm_Kalender wird geöffnet, sobald in Userform die TextBox9 "betreten" wird. Funktioniert auch.
    Wie kann ich aber den Datumswert statt an die Tabelle an die Textbox9 übergeben, um damit dann entsprechend weiter zu arbeiten ?
    Code aus UserForm2

    VB.NET-Quellcode

    1. Private Sub TextBox9_Enter()
    2. frm_Kalender.Show
    3. End Sub
    4. Private Sub Label_Click()
    5. ' Kalenderwoche und Jahr in aktuelle Zelle eintragen
    6. With UserForm2
    7. TextBox9.Text = "'" & Format(Label.Tag, "00") & "/" & frm_Kalender.Cbo_Jahr
    8. Unload frm_Kalender ' UserForm verlassen
    9. End With
    10. End Sub
    11. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    12. UserForm2.TextBox9.Value = ActiveCell.Value
    13. End Sub

    Code aus Klassenmodul

    VB.NET-Quellcode

    1. Private Sub UserForm_Initialize()
    2. With UserForm2
    3. TextBox9 = ActiveCell
    4. End With
    5. End Sub
    6. Private Sub Label_Click()
    7. ' Kalenderwoche und Jahr in aktuelle Zelle eintragen
    8. With UserForm2
    9. ActiveCell = "'" & Format(Label.Tag, "00") & "/" & frm_Kalender.Cbo_Jahr
    10. Unload frm_Kalender ' UserForm verlassen
    11. End With
    12. End Sub


    Kann mir bitte jemand schreiben, was ich ändern muss damit der ActiveCell Inhalt in der TextBox9 der Userform2 landet und nicht in der Tabelle
    Sollten weitere Informationen oder Details nötig sein, dann lasst es mich bitte wissen, bin neu hier im Forum (auch im Umgang mit VBA) und kenne noch nicht so alle nötigen Details, die zur Hilfe nötig sein könnten.

    Vielen Dank schon mal,
    mfg, Michael
    Willkommen im Forum.

    MichaelvD schrieb:

    Der Befehl wird ignoriert und trotzdem in die ActiveCell geschrieben, daher hatte ich es wieder
    zurück gesetzt.
    "Trotzdem in die ActiveCell geschrieben"? Dann wird dort in Deinem Projekt auch irgendwo eine entsprechende Codezeile existieren. Von allein macht VBA sowas nicht.

    Damit ich auch durchblicke: Wird die Excel-Tabelle überhaupt benötigt?

    MichaelvD schrieb:

    frm_Kalender, welche den angeklickten Wert an die ActiceCell der Tabelle übergibt
    Was gibt es auf frm_Kalender für Werte anzuklicken? Oder geht es darum, dass man auf frm_Kalender irgendwas einträgt und dann etwas anklickt, was die eingetragenen Werte an die Excel-Tabelle überträgt?


    Du öffnest mit UserForm2.TextBox9_Enter Dein frm_Kalender. Dann gibst Du in frm_Kalender was ein. Dann klickst Du auf UserForm2 auf ein Label und die Werte aus frm_Kalender werden auf UserForm2 in die TextBox übernommen.
    Ok, ich versteh zwar nicht die Intention dahinter, aber das würde 1. bedeuten, dass Du beide Formulare nichtmodal anzeigst, da Du sonst, sobald UserForm2 frm_Kalender anzeigt, keinen Eingabe-Zugriff auf UserForm2 mehr hast, solange frm_Kalender angezeigt wird.
    2. Ein Verbesserungsvorschlag: Übergib die Daten von frm_Kalender durch einen Klick auf ein Label*, welches auf frm_Kalender ist, an UserForm2 und schließe dann im gleichen Atemzug frm_Kalender:

    Visual Basic-Quellcode

    1. Private Sub LblTransferDataToParentFormAndCloseMe_Click()
    2. UserForm2.TextBox1.Text = ComboBox1.Text
    3. Unload Me
    4. End Sub


    *ich nenn es mal statt Label1 zum besseren Verständnis der Funktionalität "LblTransferDataToParentFormAndCloseMe"


    Und für mich als Wiedereintritts-VBA-Noob:

    Visual Basic-Quellcode

    1. Private Sub UserForm_Initialize()
    2. With UserForm2
    3. TextBox9 = ActiveCell 'Funktioniert das überhaupt?
    4. End With
    5. End Sub

    Ok, ja, funktioniert tatsächlich. :S Da lobe ich mir VB.Net. "Eine TextBox soll eine Tabellenzelle werden". Geil. <X

    Das kapier ich:

    MichaelvD schrieb:

    Code aus UserForm2

    Das kapier ich nicht:

    MichaelvD schrieb:

    Code aus Klassenmodul
    Welche Klasse betrifft das?
    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.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „VaporiZed“ ()

    Hallo Zusammen,
    danke an VaporiZed für seine bisherigen Versuche, mir bei meiner Problematik zu helfen. Leider immer noch ohne Erfolg.
    Also, um ein wenig Licht in meine Planung zu bringen:
    Ich habe in UserForm2 eine (Kundendaten)Eingabemaske erstellt, um Termine im Outlook im Kalender einzutragen. Funktioniert auch alles soweit.
    Jetzt wollte ich im Datumsfeld quasi ein Kalender-PopUp, das sich beim "betreten" der Textbox öffnet, wo ich das gewünschte Datum anklicke und sich dieses dann im Formular in der TextBox9 einträgt.
    Dafür habe ich im Netz ein fertiges xlsm gefunden, welches sich auf klick in einer bestimmten Zelle (der Tabelle) öffnet, auf die Datumseingabe per klick wartet, den Wert übergibt und sich wieder schließt.
    Das ist mein frmKalender mit einem mdl_Kalender Modul und zwei Klassenmodulen ds_Kalenderwoche sowie ds_Tag
    Den klick auf die Tebellenzelle habe ich umgeändert in TextBox9_Enter siehe erster Post
    Das klappt ja auch alles, nur der Wert(das Datum) den ich dann im sich öffnenden Kalender anklicke wird nicht an die Textbox übergeben sondern eben an die Tabelle im Hintergrund, die die Daten aus meiner UserForm2 empfängt.
    Ich weiß halt nicht genau, welche(n) Teil ich am besten posten soll, damit ihr euch das anschauen könnt.

    Für weitere Hilfe und auch Fragen oder Tips zu meinem Projekt bedanke ich mich sehr.
    mfg, Michael
    Ich habs gelöst.

    VB.NET-Quellcode

    1. Private Sub TextBox9_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    2. Frm_Kalender.Lbl_Datum.Tag = ActiveControl.Name
    3. Frm_Kalender.Show
    4. End Sub

    Damit war es mir möglich die Daten an die TextBox zu übergeben
    Nochmal Danke an alle, die sich Gedanken zur Lösung gemacht haben

    mfg, Michael