Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

UserForm und Inhaltübergabe

Betrifft: UserForm und Inhaltübergabe
von: Christian
Geschrieben am: 15.04.2003 - 14:43:37

Hi

ich sitz gerade an meiner ersten UserForm und habe nicht wirklich viel Ahnung davon. Jedenfalls habe ich ein Userform mit drei textboxes und zwei CommandButton (OK / Abbruch).
Bei Ok sollen die Inhalte der Textboxes wieder übergeben werden.

Mein Code:
Sub Rechnung()
Dim Text1, Text2, Text3

UserForm1.Show

Rang("A1").Value = Text1
Rang("A2").Value = Text2
Rang("A3").Value = Text3
End sub

Der code der Userform:
Private Sub RechnungAbbruch_Click()
UserForm1.Hide
End Sub

Private Sub RechnungOK_Click()

Text1 = TextBox1.Value
Text2 = TextBox2.Value
Text3 = TextBox3.Value

UserForm1.Hide
End sub

Wie kriege ich jetzt den Rücksprung in Rechnung mit den Variablen (Text1 usw.)hin???


  

Re: UserForm und Inhaltübergabe
von: Andreas S
Geschrieben am: 15.04.2003 - 15:05:03

Hallo,

wozu der Rücksprung? Die Zuweisung an die Zellen kann doch direkt in der Click-Sub erfolgen:

Range("A1").Value = Textbox1.Value
Range("A2").Value = Textbox2.Value
Range("A3").Value = Textbox3.Value

Gruss
Andreas


  

Re: UserForm und Inhaltübergabe
von: ChrisL
Geschrieben am: 15.04.2003 - 15:10:09

Hallo Christian

Wenn ich deinen Code richtig interpretiere, dann sind keine Variablen notwendig...

Sub Rechnung()
Load UserForm1
TextBox1 = Range("A1")
TextBox2 = Range("A2")
TextBox3 = Range("A3")
UserForm1.Show
End sub

Private Sub RechnungAbbruch_Click()
Unload UserForm1
End Sub

Private Sub RechnungOK_Click()
Range("A1") = TextBox1
Range("A2") = TextBox2
Range("A3") = TextBox3
Unload UserForm1
End sub

Gruss
Chris



  

Re: UserForm und Inhaltübergabe
von: Christian
Geschrieben am: 15.04.2003 - 15:14:59

Sorry, hätte ich noch dazu schreiben sollen.
Die Range-Zuweisung soll nur als Kontrolle dienen (zum Üben so zusagen)ob die Variable richtig übergeben wurde.
Damit soll späten noch etwas mehr gemacht werden.



  

Re: UserForm und Inhaltübergabe
von: christian
Geschrieben am: 15.04.2003 - 15:28:24

Hi Chris

Also der Programmablauf solle wie folgt aussehen.
1. Sub Rechnung wird aufgerufen
2. Aus REchnung() wird die UserForm Aufgerufen
3. In der USerform1 sollen 3 Variablen eingegeben werden
4. die Userform1 übergibt die Variablen wieder an Rechnungen()
5. In Rechnungen werden die Variablen weiter verarbeitet.

Die Zuweisung auf A1 usw. sollte nur zum überprüfen sein. Wenn ich es bei mir versuche, dann kommt immer die Fehlermeldung:" das Argument ist nicht optional."

Vielleicht hilft es ja weiter bzw vielleicht habe ich dass was ich will etwas besser beschrieben!!!

  

Re: UserForm und Inhaltübergabe
von: ChrisL
Geschrieben am: 15.04.2003 - 15:45:51

Hallo Christian

Das Übergeben in die Variable ist grundsätzlich schon richtig. Im Sub Rechnung fehlt allerdings der Bezug auf das Userform, da sich das Sub in einem Modul befindet. Deshalb...
Userform1.TextBox1 = xy

Ferner fehlt die richtig Deklaration der Variable... Schau mal in der Hilfe zu diesem Thema nach. Wenn es sich um Textwerte handelt, dann mit Dim Text1 As String, Text2 As String etc. deklarieren.

Die Variable steht aber immer nur im jeweiligen Sub zur Verfügung. Wenn du also einen Wert in der Variable behalten willst, dann in einem Modul als Public deklarieren.

Public Text1 As String

Gruss
Chris


  

Re: UserForm und Inhaltübergabe
von: Christian
Geschrieben am: 15.04.2003 - 16:34:21

Hi Chris

ich habe etwas nachgeschaut und etwas umgeschrieben, jedoch funtioniert es immer noch nicht.
Ich habe die Text1 usw. vor alle Sub`s als Public deklariert.
Dann lasse ich das Userform in einem eigenem Sub aufrufen. Das Funktioniert auch. Bei betätigen von OK gilt folgender Code

Private Sub RechnungOK_Click()

Text1 = UserForm1.TextBox1.Value
Text2 = UserForm1.TextBox2.Value
Text3 = UserForm1.TextBox3.Value

UserForm1.Hide

Call Modul1.Rechnung(Text1, Text2, Text3)

End Sub

Sub Rechnung(Text1, Text2, Text3)

Range("A1").Value = Text1
Range("A2").Value = Text2
Range("A3").Value = Text3


End Sub

Alles läuft ohne Fehlermeldung durch, jedocjh steht dann in den drei Zellen A1-A3 nichts. Vielleicht könntest Du nochmal draufschauen.

Danke

  

Re: UserForm und Inhaltübergabe
von: ChrisL
Geschrieben am: 15.04.2003 - 16:42:55

Hi Christian

Bei mir funktioniert es. Vorausgesetzt die Variablen Text1 etc. sind wie gesagt als Public deklariert. Würde es aber mal leicht umschreiben...

'im Userform1

Option Explicit

Private Sub CommandButton1_Click()
Text1 = UserForm1.TextBox1.Value
Text2 = UserForm1.TextBox2.Value
Text3 = UserForm1.TextBox3.Value

Call Modul1.Rechnung

Unload UserForm1
End Sub


'im Modul1

Option Explicit

Public Text1 As String, Text2 As String, Text3 As String

Sub Rechnung()
Range("A1").Value = Text1
Range("A2").Value = Text2
Range("A3").Value = Text3
End Sub


Gruss
Chris

  

Re: UserForm und Inhaltübergabe
von: Christian
Geschrieben am: 15.04.2003 - 16:50:15

Danke,

bei mir funktioniert es jetzt auch. ich mußte noch hinter Call Modul1.Rechnung die () wegnehmen.
Aber eine Frage hät ich dann doch noch:
Was macht den diese Anweisung? >>>> Option Explicit

Ciao Christian

  

Re: UserForm und Inhaltübergabe
von: ChrisL
Geschrieben am: 15.04.2003 - 16:53:42

Hallo Christian

Schau mal hier...
https://www.herber.de/forum/archiv/228to232/t230670.htm

Gruss
Chris

  

Re: UserForm und Inhaltübergabe
von: Christian
Geschrieben am: 15.04.2003 - 17:00:42

Danke Nochmal für die Hilfe hab ne Menge gelernt.

CU Chritian



 

Beiträge aus den Excel-Beispielen zum Thema "UserForm und Inhaltübergabe"