Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
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

Wert aus Userform an Prozedur übergeben

Wert aus Userform an Prozedur übergeben
Marlon
Hallo,
ich weiß nicht wie ich einen Wert den ich mitten in einer Prozedur über eine Userform mit Optionsfeldern abfrage, in der Prozedur weitererwenden kann. Kann mir bitte jemand einen Tipp geben?
Sagen wir, ich habe 4 Optionsbuttons, bekomme durch Anklicken den Wert 4, unload die Userform,
lande wieder in meiner Excel-Tabelle - wie komme ich jetzt an den Wert 4?
Danke,
Marlon

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wert aus Userform an Zwischenablage
05.11.2011 10:05:52
hary
Hallo Marlon
so? Ueber die Zwischenablage, in die Zelle dann mit einfuegen.

Private Sub OptionButton1_Click()
Dim ablage As DataObject
Dim a
a = 4
Set ablage = New DataObject
ablage.SetText a
ablage.PutInClipboard
Unload Me
End Sub

gruss hary
AW: Wert aus Userform an Zwischenablage
05.11.2011 11:59:35
Marlon
Danke, Hary, das ist eine Interessante Lösung. Daran hatte ich gar nicht gedacht.
Aber gibt es nicht vielleicht noch was Einfacheres, wo man den Wert irgenwie an eine Variable übergibt?
Gruß,
Marlon
AW: Wert aus Userform an Zwischenablage
05.11.2011 12:52:12
fcs
Hallo Marlon,
Deklariere in einem allgemeinen Modul entsprechende Variablen als Public.
Diesen Variablen muss du dann vor dem Unload des Userforms den Wert zuweisen.
Alternativ kann man das Userform auch mit Hide ausblenden. Dann kann man immer noch auf die aktuellen Werte der Userform-Steuerelemente zugreifen.
Erst wenn du die Werte nicht mehr benötigst fügst du im Code eine Unload-Anweisung für das Userform ein.
Gruß
Franz
Anzeige
Public die_Variable ' in einem Modul
05.11.2011 12:49:54
ransi
HAllo
Deklarier deine Variable in einem Modul.
Dann kannst du von überall her darauf zugreifen.
Ein Beispiel:
Ein Userform mit 4 Optionbuttons
Auf Tabelle1 einen Commandbutton.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub CommandButton1_Click()
    MsgBox die_Variable
End Sub


' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public die_Variable

' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub OptionButton1_Click()
    If OptionButton1 = True Then die_Variable = 1
    Unload Me
End Sub


Private Sub OptionButton2_Click()
    If OptionButton2 = True Then die_Variable = 2
    Unload Me
End Sub


Private Sub OptionButton3_Click()
    If OptionButton3 = True Then die_Variable = 3
    Unload Me
End Sub


Private Sub OptionButton4_Click()
    If OptionButton4 = True Then die_Variable = 4
    Unload Me
End Sub


Bau es dir mal nach und teste.
ransi
Anzeige
AW: Public die_Variable ' in einem Modul
05.11.2011 16:23:34
Christian
Hi Ransi und GerdL,
wie bekannt, sollte man Public Variablen soweit möglich vermeiden. Den Wert kann man doch auch übergeben, wenn er lokal deklariert ist.
Bsp:
in Userform:
Option Explicit
Dim lngChoise As Long
Private Sub CommandButton1_Click()
Unload Me
Call TestIt(lngChoise)
End Sub
Private Sub OptionButton1_Click()
lngChoise = 1
End Sub
Private Sub OptionButton2_Click()
lngChoise = 2
End Sub
Private Sub OptionButton3_Click()
lngChoise = 3
End Sub
Private Sub OptionButton4_Click()
lngChoise = 4
End Sub
in allg. Modul:
Option Explicit
Sub TestIt(lngX As Long)
MsgBox lngX
End Sub
korrigiert mich bitte, wenn ich falsch liege.
Bei mir läuft der Code unter 2002 und 2010.
Gruß
Christian
Anzeige
AW: Korrektur
05.11.2011 20:37:35
Gerd
Hallo Christian,
die Variable soll erst genutzt werden, nachdem das Userform entladen ist.
Gruß Gerd
AW: Wert aus Userform an Prozedur übergeben
05.11.2011 13:53:04
Gerd
Hallo Marion,
noch ein variierter Vorschlag zum Festschreiben des Optionbuttonindex.
'Modul1
Public X As Integer
'Userformmodul
Private Sub UserForm_Deactivate()
X = WorksheetFunction.Match(True, Array(OptionButton1, OptionButton2, OptionButton3,  _
OptionButton4, True), 0) Mod 5
End Sub

Gruß Gerd
AW: Frage @ all
05.11.2011 13:59:48
hary
Hallo Allemiteinander
Bin ja immer wissbegierig.
 bekomme durch Anklicken den Wert 4, unload die Userform,
lande wieder in meiner Excel-Tabelle - wie komme ich jetzt an den Wert 4?

Frage: Wenn das Form unload ist, bekomme ich doch auch die Public Variable nur mit Code zurueck oder irre ich mich?
Gruss hary
Anzeige
AW: Frage @ all
05.11.2011 14:10:06
ransi
HAllo Hary
Da irrst du nicht.
Du kannst den Wert aber auch direkt in eine Zelle reinschreiben.
Dann braucht es die öffentliche Variable nicht.
ransi
THX schoenes WE Gruss owT
05.11.2011 14:35:36
hary
.
Dank an alle
09.11.2011 10:17:04
Marlon
Hallo, liebe Helfer,
mein Dank an Euch, den ich letzte Woche gepostet habe ist wohl nirgends angekommen. Also hier nochmal: Vielen herzlichen Dank für Eure klasse Tipps. Problem gelöst.
Marlon

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige