Discussion:
In Modul initialisierte Variable in Userform abrufen
(zu alt für eine Antwort)
Juergen Heckner
2006-04-30 13:41:01 UTC
Permalink
Hallo liebe Newsgroup,
ich werd hier gleich wahnsinnig!

Wie kann ich eine Integer-Variable "i", die in einem Modul initialisiert
wurde, in einer UserForm abfragen?
i ist folgendermaßen definiert: Public i As Integer

Der Code im Modul sieht so aus:

Public Sub CommandButton3_Click()
i = ActiveCell.Row - 10
UserForm1.Show
End Sub

Der Code der aufgerufenen Userform:

Private Sub UserForm_Initialize()
Debug.Print "i: " & i
MsgBox "i: " & i
TextBox1.Value = ActiveCell.Value
OptionButton1.Value = Worksheets("27.04.").OLEObjects("OptionButton" & 2
* i - 1).Object.Value
OptionButton2.Value = ""
CheckBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
end sub

Warum steht blos in dieser blöden MsgBox immer i=0????

Windows XP, Office2003

Vielen Dank im Voraus!
Juergen Heckner
Claus Busch
2006-04-30 13:55:09 UTC
Permalink
Hallo Jürgen,
Post by Juergen Heckner
ich werd hier gleich wahnsinnig!
Wie kann ich eine Integer-Variable "i", die in einem Modul initialisiert
wurde, in einer UserForm abfragen?
i ist folgendermaßen definiert: Public i As Integer
Public Sub CommandButton3_Click()
i = ActiveCell.Row - 10
UserForm1.Show
End Sub
Private Sub UserForm_Initialize()
Debug.Print "i: " & i
MsgBox "i: " & i
TextBox1.Value = ActiveCell.Value
OptionButton1.Value = Worksheets("27.04.").OLEObjects("OptionButton" & 2
* i - 1).Object.Value
OptionButton2.Value = ""
CheckBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
end sub
Warum steht blos in dieser blöden MsgBox immer i=0????
Windows XP, Office2003
deklariere deine Public-Variable im "allgemeinen Deklarationsteil" und
schreibe dort auch dein Public Sub CommandButton3_Click() rein.
--
Mit freundlichen Grüssen
Claus Busch

Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
Juergen Heckner
2006-04-30 14:21:01 UTC
Permalink
Hallo Claus,
vielen Dank, dass du dich meinem Problem angenommen hast!
Leider steht "Public i as integer" bereits genau unter "Option Explicit" und
somit doch im allgemeinem Deklarationsbereich, oder? Die Public Sub
CommandButton3_Click() steht auf der gleichen Seite etwas weiter unten...
Meine VBA-Programmierkenntnisse befinden sich noch im Anfangsstadium,
deshalb bitte Nachsicht... :)

Gruß,
Jürgen
Post by Claus Busch
Hallo Jürgen,
Post by Juergen Heckner
ich werd hier gleich wahnsinnig!
Wie kann ich eine Integer-Variable "i", die in einem Modul initialisiert
wurde, in einer UserForm abfragen?
i ist folgendermaßen definiert: Public i As Integer
Public Sub CommandButton3_Click()
i = ActiveCell.Row - 10
UserForm1.Show
End Sub
Private Sub UserForm_Initialize()
Debug.Print "i: " & i
MsgBox "i: " & i
TextBox1.Value = ActiveCell.Value
OptionButton1.Value = Worksheets("27.04.").OLEObjects("OptionButton" & 2
* i - 1).Object.Value
OptionButton2.Value = ""
CheckBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
end sub
Warum steht blos in dieser blöden MsgBox immer i=0????
Windows XP, Office2003
deklariere deine Public-Variable im "allgemeinen Deklarationsteil" und
schreibe dort auch dein Public Sub CommandButton3_Click() rein.
--
Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de
Bruno Uato
2006-04-30 20:17:49 UTC
Permalink
Hallo,



On Sun, 30 Apr 2006 06:41:01 -0700, Juergen Heckner
Post by Juergen Heckner
Hallo liebe Newsgroup,
ich werd hier gleich wahnsinnig!
Wie kann ich eine Integer-Variable "i", die in einem Modul initialisiert
wurde, in einer UserForm abfragen?
i ist folgendermaßen definiert: Public i As Integer
Public Sub CommandButton3_Click()
i = ActiveCell.Row - 10
UserForm1.Show
End Sub
Private Sub UserForm_Initialize()
Debug.Print "i: " & i
MsgBox "i: " & i
TextBox1.Value = ActiveCell.Value
OptionButton1.Value = Worksheets("27.04.").OLEObjects("OptionButton" & 2
* i - 1).Object.Value
OptionButton2.Value = ""
CheckBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
end sub
Warum steht blos in dieser blöden MsgBox immer i=0????
Windows XP, Office2003
Vielen Dank im Voraus!
Juergen Heckner
Mfg, Bruno

www.FemtoOffice.de
Tools For Excel
Bruno Uato
2006-04-30 20:22:13 UTC
Permalink
Hallo,

wo ist i definiert? Unter Module oder Formulare? Wenn unter Module,
dann eventuell in der Art Modul1.i = .....

Ist Sie unter Formulare definiert, dann eventeull UserForm1.i = ...

Mfg, Bruno

www.FemtoOffice.de
Tools For Excel

On Sun, 30 Apr 2006 06:41:01 -0700, Juergen Heckner
Post by Juergen Heckner
Hallo liebe Newsgroup,
ich werd hier gleich wahnsinnig!
Wie kann ich eine Integer-Variable "i", die in einem Modul initialisiert
wurde, in einer UserForm abfragen?
i ist folgendermaßen definiert: Public i As Integer
Public Sub CommandButton3_Click()
i = ActiveCell.Row - 10
UserForm1.Show
End Sub
Private Sub UserForm_Initialize()
Debug.Print "i: " & i
MsgBox "i: " & i
TextBox1.Value = ActiveCell.Value
OptionButton1.Value = Worksheets("27.04.").OLEObjects("OptionButton" & 2
* i - 1).Object.Value
OptionButton2.Value = ""
CheckBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
end sub
Warum steht blos in dieser blöden MsgBox immer i=0????
Windows XP, Office2003
Vielen Dank im Voraus!
Juergen Heckner
Michael Schwimmer
2006-05-01 18:18:21 UTC
Permalink
Hallo Jürgen,
Post by Juergen Heckner
Wie kann ich eine Integer-Variable "i", die in einem Modul
initialisiert wurde, in einer UserForm abfragen?
i ist folgendermaßen definiert: Public i As Integer
Public Sub CommandButton3_Click()
i = ActiveCell.Row - 10
UserForm1.Show
End Sub
das Klick-Ereignis CommandButton3_Click befindet sich im Klassenmodul
des Tabellenblattes und nicht in einem normalen Modul.
Befindet sich in diesem Klassenmodul deine Deklaration, ist die Variable
zwar von Außerhalb zu erreichen, aber nur über die Syntax Codename.i
(Tabelle1.i) oder Worksheets("Tabellenname").i (Worksheets("Tabelle1").i
).
Post by Juergen Heckner
Warum steht blos in dieser blöden MsgBox immer i=0????
Deine Deklaration (Public i As Integer) muss in ein normales Modul
(Einfügen/Modul).
Ich persönlich würde als Variablennamen einen sprechenden Namen
verwenden, der Name "i" wird häufig als Zählvariable verwendet. Außerdem
ist der Typ Integer in einem 32-Bit System nicht sehr performant und es
kann bei deinem Code auch schnell zu einem Überlauf kommen. Benutze
Long!

MfG
Michael
--
Michael Schwimmer http://michael-schwimmer.de
Excel VBA ISBN 3-8273-2183-2
Excel Programmierung - Das Handbuch ISBN 3-8606-3548-4
Loading...