Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Textbox in Modul abfragen
#1
Hallo zusammen, schönen Samstag,

Ich hätte eine Frage bzgl. einer Userform Textbox.

-Am Anfang eines Moduls öffne ich Userform (Halle_Schlossboard) und schreibe in Textbox14 etwas hinein.
-Ich schließe das UF wieder
-..das Modul läuft weiter.
-am Ende möchte ich Textbox14 auslesen und in Sheet Schlösser, in Telle A1 darstellen.
 dazu habe ich folgenden Befehl:

Sheets("Schlösser").Range("A1").Value = Halle_Schlossboard.TextBox14

klappt aber leider nicht. Muss ich evtl. mein UF vor dem schließen speichern oder wo liegt mein Fehler ?

Danke für eure Hilfe
Antworten Top
#2
Hallo,

hat es einen bestimmten Grund, weshalb du den Wert aus der Textbox erst am Ende des Markros in die Zelle schreiben willst?
Wenn du die Userform schlißet, dann ist auch der Wert aus der Textbox weg, wenn du ihn vor dem Schließen der Userform nicht z.B. in einer Variablen gespeichert hast.

Gruß Werner
Antworten Top
#3
Hallo,
wenn Du eine UF schließt, verlieren alle Elemente ihre Inhalte.
Du musst also vor dem Schließen gewünschte Inhalte in einer Variablen speichern.
Es gibt das Ereignis UserForm_QueryClose, das vor dem Schließen durchlaufen wird.
Also: Im Modul Public Merken as String
in QueryClose: Merken=me.Textbox14
Dann steht Merken im Modul zur Verfügung.
Gruß der AlteDresdner (Win11, Off2021)
Antworten Top
#4
@Werner, Ja, ich benötige die Textbox leider erst einige Schritte nach der Abfrage

@Dresdener

hatte ich schon vermutet, allerdings bisher 0 Erfahrung im speichern von Inhalten in einem UF

Danke Euch beiden
Antworten Top
#5
aber trotzdem kann ich mit deinem Vorschlag noch nicht wirklich etwas anfangen, heißt was genau muss ins UF, was in mein Modul..
Antworten Top
#6
In der Userform 
Code:
Option Explicit
Dim m_Cancelled As Boolean

Private Sub UserForm_QueryClose(Cancel As Integer _
                                      , CloseMode As Integer)
   
   ' Prevent the form being unloaded
   If CloseMode = vbFormControlMenu Then Cancel = True
   
   ' Hide the Userform and set cancelled to true
   Hide
   m_Cancelled = True
   
End Sub

Property Get txtBox14() As String
   txtBox14 = Me.TextBox14.Value
End Property

Und testen mit

Code:
Option Explicit

Sub TestHalle_Schlossboard()
Dim mySchloss As New Halle_Schlossboard

   mySchloss.Show
   ' do sth
   Debug.Print mySchloss.txtBox14
End Sub

Lesestoff hier und hier
Antworten Top
#7
Hallo

ich weiss nicht ob ich bei den Lösungen noch einen "simpel Vorschlag" anbringen darf.  Ich tue es einfach mal .. (alias Marc Metzger)

Man kann in einem normalen Modul eine Variable mit Public deklarieren. Die gelten als Öffentlich und werden NICHT gelöscht! Es sei denn gezielt im Makro!  Wenn man die TextBox 14 vor dem schliessen in die Variable einliest bleibt der Wert erhalten. Da gibt es auch den Code für UserForm_BeiAnklcken, oder jedes andere beliebige Ereignis wie der "Abbrechen" oder "Schliessen" Button. Auf diese Public Variable kann JEDES Makro, in jedem Modul zugreifen!

mfg  Gast 123
Antworten Top
#8
Nachtrag für die Kollegen

als Programmierer der alten Schule habe ich Privat noch einen viel simpleren Trick auf Lager!  Das alte Dialog Sheet aus Excel 7, 97, 2003
Das alte Dialog Sheet hatte den unbestreitbaren Vorteil das die Werte in Textfeldern erhalten blieben!!  Das konnte man auch bei geschlossenem Dialog auslesen, oder den Wert von OptionBoxen und KontrollBoxen abfragen!!  Probiert das mal mit UserForm.  Die alte Technik war sicher nicht schlechter.

mfg  Gast 123       

PS  Dieses Dialog Sheet ist Offiziell nicht mehr zugaenglich, ausser für alte Programmierer die den Trick kennen!
Antworten Top
#9
Hallo,

ich denke, Du meinst den Excel5-Dialog. Aber dass das ein Trick ist, per Rechtsklick auf ein Register den Einfügen-Dialog aufzurufen, wusste ich nicht.  Blush

   

Gruß Uwe
Antworten Top
#10
Globale Variable sollte man vermeiden, auch wenn hier bei SO die Lösung vom OP genommen wurde, ist die zweite IMHO zu bevorzugen.
Hier noch weiterer Lesestoff dazu.

Das alte Excel 5 Dialogsheet ist IMHO kein einfacher Trick, das ist nur noch aus Kompatibilitätsgründen da und ich würde das nicht mehr verwenden.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste