210 Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (2.7k Punkte)
Hallo,

ich möchte eine Variable in die

Userform_Initialize

bringen, die ich vorher einlese. Damit will ich die Auflistung des Monatskalenders variabel halten, so daß ich vorher festlegen kann, welcher Monat in der UserForm angezeigt wird. Der Variablenwert geht mir nur jedesmal "verloren", ich kann in nicht aus dem Code in die Userform_Initialize übernehmen....
Ideal wäre es natürlich, wenn ich den Monat mit separater Eingabe direkt über die UserForm bestimmen könnte, damit dann die anderen Felder gefüllt werden können.

Kann wieder jemand helfen? Danke und Gruß

4 Antworten

0 Punkte
Beantwortet von m-o Profi (11.5k Punkte)
Hallo Andreas,

deklariere die Variable in einem allgemeinen Modul außerhalb der Subs als Global:

[code]Global Monat As Long
 
Sub start()

Monat = 2

UserForm1.Show

End Sub[/code]
Dann kannst du die Variable Monat in der Userform verarbeiten.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo Andreas und Community .-)

Statisch
Die Variable hat den vollen Rentnerjob und sagt immer das gleiche

Local
Die Variable ist Erwachsen geworden und bewegt sich im begrenzten Raum(Klassenvariable)

Global
Frei wie der Wind,bewegt sich die Variable wie Christoph Kolumbus
Klassenunabhängig

Gruß Nighty
0 Punkte
Beantwortet von ahorn38 Experte (2.7k Punkte)
Hallo,

danke euch für eure Antwort, aber bei mir klappt das irgendwie nicht.
Im Code habe ich
[code]Global strMonat As String
Sub test()
   
strMonat = "August"

UserForm1.Show

End Sub
[/code]

in der UserForm1 habe ich:
[code]Private Sub UserForm_initialize()

    With ListBox1
       .AddItem "Jutta"
       .AddItem "Georg"
       .AddItem "Uwe"
       .AddItem "Ali"
       .AddItem "Karl"
       .AddItem "Paul"
       .AddItem "Andreas"
       .AddItem "Nico"
       .AddItem "Gerd"
       .AddItem "Max"
       .AddItem "Uwe"
       .AddItem "Peter"
    End With
    

j = Month(CDate("1." & Left(strMon, 3))) + 1
intTage = Day(DateSerial(Year(Date), Month(CDate("1." & Left(strMon, 3))) + j, 0))
For i = 1 To intTage
    UserForm1.Controls("Label" & i).Caption = Format(DateSerial(Year(Date), Month(CDate("1." & Left(strMon, 3))), i), "DD.MM.YY")
Next
end sub[/code]

Die variabe strMonat ist da aber schon wieder "leer"..???
Das dürfte doch gar nicht sein...
Gruß A.
0 Punkte
Beantwortet von ahorn38 Experte (2.7k Punkte)
Hallo,
sorry für meine letzte Frage..... hat sich natürlich geklärt!
Danke für euren Tipp.
Ich habe aber hier bestimmt noch einige andere "Baustellen".
...