Ich habe ein Problem! Meine Makro schreibe ich zwar im Word, aber ich denke, dass es im Excel genauso funktioniert und hier bekomme ich immer die besten Antworten. Also nicht wundern, wenn ActiveDocument oder so steht ;)
Gut, nun zu meinem Problem. Ich habe eine riesen grosse Makro. Ich rufe in dieser Makro verschiedene Module auf. Die Makro sieht am Anfang so aus:
Sub SCC_SLR_Macro_V_1_0()
Call UserForm.UserForm(myMonth, myYear, myDivision)
Call OpenPowerPoint.OpenPowerPoint(myPPT)
GoSub Copy_Overview
GoSub Copy_Color_Buttons
GoSub Copy_Content
GoSub Change_Attachments
GoSub Header_and_Footer
GoSub Save_Excelfiles
Exit Sub
Call UserForm.UserForm ist ein Modul, in dem ich ein UserForm ausfüllen muss. Ich möchte dabei myMonth, myYear und myDivision übergeben in die riesen grosse Makro (deshalb stehen sie ja in den Klammern).Gut, die Userform.UserForm Makro sieht so aus:
Sub UserForm(myMonth, myYear, myDivision)
UserForm1.Show
myMonth = UserForm1.TB_Month.Text
myYear = UserForm1.TB_Year.Text
myDivision = UserForm1.CB_Division.Text
End Sub
Nun gut, das klappt auch alles schön und gut. Wenn ich das UserForm aufrufe (initialize), dann lasse ich die Felder vorfüllen. Die Variablen, die ich weitergeben möchte, sollen aber nicht die vorgefüllten sein, sondern die, die der User eingibt. Denn myDivision ist vorgefüllt "please select", aber ich will ja das, was der User ausgefüllt hat.Die Variable füllt es mir in der Userform Makro richtig, wenn ich auf den CommB_Ok klicke, aber wenn er dann in die UserForm.UserForm Makro springt, übernimmt er für mydivision das "please select"!
Nun zu meiner Frage:
Wie schaffe ich es, dass die Variable weitergegeben wird, die beim Klicken auf den Command Button CommB_Ok erstellt wird?
Hier noch die Userform Makro:
Private Sub CommB_Cancel_Click()
'UserForm schliessen
Unload UserForm1
End Sub
Private Sub CommB_OK_Click()
'Checken, ob alle Felder ausgefüllt wurden
If TB_Month.Text = "" Or TB_Year.Text = "" Or CB_Division.Text = "Please select" Then
MsgBox "Please fill out all fields", vbOKOnly, Error
Exit Sub
Else
myMonth = TB_Month.Text
myYear = TB_Year.Text
myDivision = CB_Division.Text
Unload UserForm1
End If
End Sub
Private Sub CommB_Refresh_Click()
'Inhalte löschen
TB_Month.Text = ""
TB_Year.Text = ""
CB_Division.Text = "Please select"
End Sub
Private Sub UserForm_Initialize()
'das aktuelle Datum
myDate = Date
'das Datum vor einem Monat
myLastDate = DateAdd("m", -1, myDate)
'Monatsvariable als Long definieren
Dim myMonthAsNumber As Long
'der Monat als Zahl
myMonthAsNumber = Mid(myLastDate, 4, 2)
'der Name des Monats des Datums vor einem Monat
myMonth = MonthName(myMonthAsNumber)
'in das Feld Monat den letzten Monat eintragen
TB_Month = myMonth
'Jahresvariable als Long definieren
Dim myYearAsNumber As Long
'das Jahr als Zahl
myYearAsNumber = Mid(myLastDate, 7, 4)
'in das Feld Jahr das aktuelle Jahr eintragen
TB_Year = myYearAsNumber
'Divisionen in Combobox einfüllen
With Me.CB_Division
.AddItem "1"
.AddItem "2"
.AddItem "3"
End With
End Sub
Wäre echt froh um Hilfe!Liebe Grüsse
Ximena