Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
616to620
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
616to620
616to620
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dauerhafte Variable

Dauerhafte Variable
29.05.2005 15:10:14
Alois
Hallo
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

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dauerhafte Variable
29.05.2005 15:15:05
Hajo_Zi
Hallo Alois,
lade doch mal eine Datei hoch.
Auf select kann in VBA zu 99% verzichtet werden.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


AW: Dauerhafte Variable
29.05.2005 19:48:09
Alois
So jetzt habe ich nach langem Testen selbst die Lösung gefunden.
Nur eine Frage noch Hajo.
Wie muss ich es schreiben, das nach der Eingabe der 8ten Zahl automatisch das Makro „Filter_Datum2“ gestartet wird?
Bitte um deine Hilfe


      
Private Sub TextBox1_Change()
    
If BoEnter = True Then Exit Sub
    
If Len(TextBox1) = 2 Then
        
If InStr(TextBox1, ".") = 0 And BoEnter = False Then TextBox1 = TextBox1 & "."
    
ElseIf Len(TextBox1) = 5 Then
        
If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) < 2 Then
            TextBox1 = TextBox1 & "."
            
If Len(TextBox1) = 8 Then
         Range("cc2").Value = TextBox1
         Application.Run "Filter_Datum2"
    Unload Me
        
End If
        
End If
    
End If
    Range("cc2").Value = TextBox1
End Sub
 


Anzeige
AW: Dauerhafte Variable
29.05.2005 19:51:19
Hajo_Zi
Hallo Alois,

Private Sub TextBox1_Change()
If BoEnter = True Then Exit Sub
If Len(TextBox1) = 2 Then
If InStr(TextBox1, ".") = 0 And BoEnter = False Then TextBox1 = TextBox1 & "."
ElseIf Len(TextBox1) = 5 Then
If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) < 2 Then
TextBox1 = TextBox1 & "."
If Len(TextBox1) = 8 Then
Range("cc2").Value = TextBox1
Application.Run "Filter_Datum2"
Unload Me
End If
End If
ElseIf Len(TextBox1) = 8 Then
' Dein Makro
End If
Range("cc2").Value = TextBox1
End Sub

Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: Dauerhafte Variable
29.05.2005 20:14:21
Alois
Erst wenn ich das Makro mit Application.OnTime Now + _
TimeSerial(0, 0, 1), "Filter_Datum2"
Verzögere funktioniert es richtig.
Kann ich das mit „unload me“ auch zeitverzögert machen?
Gruß Alois
AW: Dauerhafte Variable
29.05.2005 20:17:38
Hajo_Zi
Hallo Alois,
hast Du imm ersten Beitrag nicht alles erzählt? Ich habe es nun nicht gesehen was der Code mit OnTime oder mit „unload me“ zu tun hat.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Dauerhafte Variable
29.05.2005 20:32:31
Alois


      
So sieht es fertig aus und läuft vollautomatisch
Private Sub TextBox1_Change()
    
If BoEnter = True Then Exit Sub
    
If Len(TextBox1) = 2 Then
        
If InStr(TextBox1, ".") = 0 And BoEnter = False Then TextBox1 = TextBox1 & "."
    
ElseIf Len(TextBox1) = 5 Then
        
If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) < 2 Then
            TextBox1 = TextBox1 & "."
            
If Len(TextBox1) = 8 Then
                Range("cc2").Value = TextBox1
               
                Unload Me
            
End If
        
End If
    
ElseIf Len(TextBox1) = 8 Then
      Application.OnTime Now + _
      TimeSerial(0, 0, 1), "Filter_Datum2"
      Application.OnTime Now + TimeValue("00:00:03"), "Schließen"
    
End If
    Range("cc2").Value = TextBox1
    
End Sub
Sub Schließen()
Unload frmDatum
End Sub
 


Vielen Dank für deine Hilfe Hajo
Anzeige
AW: Dauerhafte Variable
29.05.2005 15:15:21
Fred
Hi,
Public Start As String
muss in einem Standardmodul stehen.
Wenn die Variable ihren Wert verliert, musst du beim Testen den Editor schließen.
mfg Fred
AW: Dauerhafte Variable
29.05.2005 15:16:49
Bert

Private Sub cmdAbbrechen_Click()
Unload Me
End
End Sub

Durch das End werden alle Variblen gelöscht, also raus damit.
mfg Bert

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige