Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1212to1216
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variable übernehmen

Variable übernehmen
Frank
Hallo Forum,
ich habe ein kurze Frage:
Angenommen ich habe
Sub Test ()
UserForm1.show
End Sub

Auf dieser USerForm gibt es ein TextBox und OK und Abbrechen. Nun möchte ich, wissen, wie ich in Test() den Wert aus der TextBox übernehme, wenn ich okay drücke? Und das der restliche Code nicht mehr durchlaufen wird, wenn ich Abbrechen drücke.
Im Prinzip ist mein Problem, dass ich nicht weiß wie ich einen Wert aus einem Makro in ein anderes übernehmen kann.
Kann mir bitte jemdan helfen?
Vielen Dank und viele Grüße
Frank

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Variable übernehmen
06.05.2011 13:14:29
Michel2010
Hier mal ein kleines Beispiel das es macht.
wie Du siehst wird in Test1 die Variable x gedruckt in in einem andern

Sub gesetzt wurde.

Sub test1()
Call test2(x)
Debug.Print x
End Sub

Sub test2(x)
x = 500
End Sub
Gruß
Michael
AW: Variable übernehmen
06.05.2011 13:27:14
Frank
Vielen Dank Michael,
aber so richtig geht das nicht ich bekomme sofort die Meldung: Falsche Anzahl an Argumenten oder ungültige Zuweisung einer Eigenschaft. Es geht darum das ich ausgewählte Datenblätter drucken möchte und zuvor die Anzahl der Exemplare abfragen will:
Public Sub CommandButton1_Click()
Call Anzahl(i)
Application.ScreenUpdating = False
Sheets(Array("Ausrichtung Dach", "Wirtschaftlichkeit", "Anschreiben Angebot", "LV-Angebot", " _
Bestellung für den Kunden")).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=i
Worksheets(1).Select
Cells(1, 1).Select
Application.ScreenUpdating = True
End Sub

Sub Anzahl()
Dim i As Integer
UserForm1.Show
End Sub Und das steht unter der UserForm1:
Private Sub OK_Click()
i = TextBox1.Text
Unload Me
End Sub
Private Sub ABBRECHEN_Click()
Unload Me
End Sub
Private Sub TextBox1_Change()
If Not IsNumeric(TextBox1.Text) And TextBox1.Text  "" Then
MsgBox "Bitte geben Sie ein Zahl ein!"
UserForm1.TextBox1.Text = 1
End If
End Sub
Aber so richtig geht das wie gesagt nicht. Kann mir bitte jemadn helfen nd auch wie ich das mache, dass wenn ich Abbrechen drücke nichts gedruckt wird?
Vielen Dank und viele Grüße
Frank
Anzeige
AW: Variable übernehmen
06.05.2011 13:30:17
Rudi
Hallo,
warum nicht einfach so?
Public Sub CommandButton1_Click()
Call Anzahl(i)
Application.ScreenUpdating = False
Sheets(Array("Ausrichtung Dach", "Wirtschaftlichkeit", "Anschreiben Angebot", "LV-Angebot", " _
Bestellung für den Kunden")).Select
ActiveWindow.SelectedSheets.PrintOut Copies:= Textbox1
Worksheets(1).Select
Cells(1, 1).Select
Application.ScreenUpdating = True
End Sub

AW: Variable übernehmen
06.05.2011 13:21:55
Rudi
Hallo,
solange du die UF nicht entlädtst (Unload Userform1) sondern nur ausblendest, bleiben die Inhalte der Steuerelemente erhalten.
Sub Test ()
UserForm1.show
Msgbox Userform1.Textbox1
End Sub

Gruß
Rudi
Anzeige
AW: Variable übernehmen
06.05.2011 13:58:49
Frank
Hallo und vielen Dank Rudi,
ich kenne bisher nur die Unload Funktion. Wie blende ich die UF mit OK aus?
Darüber hinaus habe ich im vorigen Beitrag geschrieben/gefragt das es gar nicht startet Call Anzahl(i).
Und wie ich den Abbrechen Button belegen, das nichts gedruckt wird.
Wäre schön wenn Ihr mir nochmal helfen könntet.
Vielen Dank und viele Grüße
Frank
Variable aus UserForm-Eingabe
06.05.2011 18:58:26
Erich
Hi Frank,
das Folgende orientiert sich an deinem Ansatz, ist wohl etwas umständlich, dient eher dem Verständnis.
Probier mal diesen Code (im Tabellenblatt mit dem Button):

Option Explicit
Private Sub CommandButton1_Click()
Dim varI As Variant
Call Anzahl(varI)
If IsNumeric(varI) Then
If CLng(varI) > 0 Then        ' nur wenn Zahl und > 0
' für das PrintOut müssen die Blätter
' nicht selektiert werden,
' man kann sie einfach nur drucken:
Sheets(Array("Ausrichtung Dach", "Wirtschaftlichkeit", _
"Anschreiben Angebot", "LV-Angebot", _
"Bestellung für den Kunden")).PrintOut Copies:=varI
End If
End If
Cells(1, 1).Select ' Ist das Select noch nötig?
End Sub
Sub Anzahl(varAnz)
UserForm1.Show
varAnz = UserForm1.TextBox1
End Sub

Und im Code der UserForm:

Option Explicit
Private Sub TextBox1_Change()
If Not IsNumeric(TextBox1.Text) And TextBox1.Text  "" Then
MsgBox "Bitte geben Sie ein Zahl ein!"
TextBox1.Text = 1
End If
End Sub
Private Sub OK_Click()
Me.Hide
End Sub
Private Sub ABBRECHEN_Click()
TextBox1.Text = ""      ' damit wird der Ausdruck verhindert
Me.Hide
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
VIELEN DANK AN ERICH
09.05.2011 08:45:29
Frank
Hallo Erich,
meine Rückmeldung ist zwar etwas verspätet, aber ich hatte am Wochenende leider keine Internet.
Vielen Dank für den ausführlichen Code, nun ist mir vieles klarer.
Vielen Dank und einen guten Start in die neue Woche,
Frank

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige