Es muß doch möglich sein eine Dauerhafte Variable über Userform zu erstellen.
Ich will sie nachher in einem Makro verwenden, das sich beim Schließen der Userform startet.
Die variable nimt auch den eingegebenen wert an. Aber im Makro verwendet sie es nicht.
Wo könnte mein Fehler liegen?
Userform:
Option Explicit
Private Sub cmdOK_Click()
Application.Run "Filter_Datum2"
Unload Me
End Sub
Private Sub cmdAbbrechen_Click()
Unload Me
End
End Sub
Private Sub TextBox1_Change()
Dim Txt
Txt = TextBox1.Text
If Txt = "" Then Exit Sub
If IsNumeric(Txt) = False Then GoTo ErrorHandler
If Len(Txt) = 6 Then
Txt = DateSerial(Right(Txt, 2) & ".", Mid(Txt, 3, 2) & ".", Left(Txt, 2))
If Not IsDate(Txt) Then
GoTo ErrorHandler
Else
Start = TextBox1.Value
Application.Run "Filter_Datum2"
Unload Me
End If
End If
Exit Sub
ErrorHandler:
Beep
MsgBox "Kein Datum!", vbCritical
TextBox1.Text = ""
End Sub
Makro:
' Dauerhafte Variable deklarieren:
Public Start As String
Sub Filter_Datum2()
Dim intFrage As Integer
Application.ScreenUpdating = True
Dim zeile
Dim rg
Cells(Cells(65536, 1).End(xlUp).Row, 2).Activate
zeile = ActiveCell.Row
If Worksheets("FTDM").AutoFilterMode = True Then
Worksheets("FTDM").AutoFilterMode = False
End If
Range("a2").Select
Range("a5:bq5").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=">=" & Start, Operator:= _
xlAnd, Criteria2:="<=" & Start
Set rg = Range(Cells(zeile, 2), Cells(zeile, 61))
Range("a3").Select
ActiveCell.Formula = "=COUNTBLANK(" & rg.Address(0, 0) & ")"
Set rg = Range(Cells(zeile, 2), Cells(zeile, 61))
Range("a3").Select
Cells(Cells(65536, 1).End(xlUp).Row, 2).Activate
zeile = ActiveCell.Row
Cells(3, 1).Value = Cells(Cells(65536, 1).End(xlUp).Row, 66).Value
Cells(Cells(65536, 1).End(xlUp).Row, 2).Activate
zeile = ActiveCell.Row
intFrage = MsgBox("Am " & Cells(ActiveCell.Row, 1).Value & " sind " & Cells(Cells(65536, 1).End(xlUp).Row, 66).Value & " Mitarbeiter verfügbar", vbOkay, "Rückfrage")
If intFrage = 7 Then
Exit Sub
End If
End Sub
Bitte um eure Hilfe
Alois