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

Autom. Makro-Start manuell unterbinden

Autom. Makro-Start manuell unterbinden
19.05.2002 15:05:40
Mike
Seid gegrüßt,
bei jedem Wechsel des Arbeitsblattes in meiner Mappe wird eine msg-Box zur Datumseingabe automatisch gestartet. Das ist auch so gewollt.
Könnte man einen autom. Start auch manuell durch eine Tastenkombination unterbinden? Ich habe es durch Gedrückthalten der Esc-Taste vor dem Wechsel probiert, aber dann kommt die Meldung "Ausführung des Codes wurde unterbrochen" und unter "Debuggen" ist "End With" gelb unterlegt. Natürlich könnte man die geöffnete Box nach dem Wechsel auch manuell wieder schließen. Ich will aber erreichen, dass sie gewollt vor dem Öffnen nicht gestartet wird.

Gruß Mike


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Autom. Makro-Start manuell unterbinden
19.05.2002 15:30:34
Rainer3
Hallo Mike,

ändere Dein Makro wie folgt

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Row <> 1 Or ActiveCell.Column <> 1 Then Exit Sub
'
'
'Hier Dein bisheriger Makrotext
'
'
'
End Sub

Jetzt wird Dein Makro erst nach einem Doppelklick in die Zelle A1 gestartet.

Gruß
Rainer


Re: Autom. Makro-Start manuell unterbinden
19.05.2002 15:45:38
Mike
Hallo Rainer,
danke für deinen Lösungsvorschlag. Aber das ist nicht das, was ich wollte. Das Makro soll bei einem Blattwechsel nur dann nicht automatisch ausgeführt werden, wenn ich dies nicht möchte (z.B. zu Kontrollzwecken). Ich möchte quasi vor dem Blattwechsel eine Taste gedrückt halten (z.B., "Esc"), damit das Makro nicht gestartet wird. Geht sowas überhaupt?

Gruß Mike

Anzeige
Re: Autom. Makro-Start manuell unterbinden
19.05.2002 16:28:58
Rainer3
Hallo Mike,

wenn überhaupt, aber ohne Kenntnis Deines Makros kann ich Dir da nicht weiter helfen.

Gruß
Rainer

Re: Autom. Makro-Start manuell unterbinden
19.05.2002 16:51:22
Mike
Hallo Rainer,
im Modul Datum_abfragen steht folgender Code:


Option Explicit

Function DATUMSABFRAGE() As String
    Dim strDatum_vorher As String
    Dim strDatum_Vorgabe As String
    Dim strDatum_neu As String
    Dim TT$, MM$, JJJJ$
    Do Until strDatum_neu <> ""
        If ActiveSheet.Range("A55").Value <> "" Then
            strDatum_vorher = ActiveSheet.Range("A55").Value
            strDatum_neu = Application.InputBox("Bitte geben Sie das Datum ein!" & vbCrLf & vbCrLf & vbCrLf & vbCrLf _
                                                & "Eingetragenes Datum:", , _
                                                strDatum_vorher)
        Else
            strDatum_Vorgabe = Date
            strDatum_neu = Application.InputBox("Bitte geben Sie das Datum ein!" & vbCrLf & vbCrLf & vbCrLf & vbCrLf _
                                                & "Vorschlag: heutiges Datum.", , _
                                                strDatum_Vorgabe)
        End If
        If strDatum_neu = "Falsch" Then
            DATUMSABFRAGE = ActiveSheet.Range("A55").Value
            Exit Function
        End If
        If strDatum_neu = "" Then Exit Do
        
        On Error Resume Next
        TT = Left(strDatum_neu, InStr(strDatum_neu, ".") - 1)
        MM = Left(Mid(strDatum_neu, Len(TT) + 2), InStr(Mid(strDatum_neu, Len(TT) + 2), ".") - 1)
        If MM = "" Then MM = Mid(strDatum_neu, Len(TT) + 2)
        JJJJ = Mid(Mid(strDatum_neu, Len(TT) + 2), Len(MM) + 2)
        
        If Len(TT) = 1 Then TT = "0" & TT
        If Len(MM) = 1 Then MM = "0" & MM
        If Len(JJJJ) = 0 Then JJJJ = Format(Date, "yyyy")
        If Len(JJJJ) = 1 Then JJJJ = Left(Format(Date, "yyyy"), 3) & JJJJ
        If Len(JJJJ) = 2 Then JJJJ = Left(Format(Date, "yyyy"), 2) & JJJJ
        strDatum_neu = TT & "." & MM & "." & JJJJ

        If IsDate(strDatum_neu) = False Or _
        Len(strDatum_neu) > 10 Or Len(TT) > 2 Or Len(MM) > 2 Or CInt(TT) > 31 Or _
        CInt(MM) > 12 Or Len(JJJJ) = 3 Or Len(JJJJ) > 4 Then
            MsgBox "Fehler bei der Eingabe des Datums!", _
                    vbExclamation, "Hinweis"
            strDatum_neu = ""
        End If
    Loop
    
    DATUMSABFRAGE = strDatum_neu

'und in den Tabellenblättern:


Private Sub Worksheet_Activate()
Range("A55").Value = DATUMSABFRAGE
blnInitialisierung = True 'Variable setzen um die Initialisierung der Userform bei Visible-Abfrage abzubrechen.
If Zeit.Visible = False Then 'Wenn Userform nicht angezeigt.
blnInitialisierung = False
Unload Zeit 'Userform Entladen. (Da sie beim abfragen initialisiert wird)
Exit Sub 'Abbrechen.
End If
Initialisierung False
blnInitialisierung = False
End Sub

Vielleicht kannst du damit was anfangen.

Gruß Mike






Anzeige
Nachtrag
19.05.2002 16:55:06
Mike
es fehlt noch der Schluss des Makros "Datum_abfragen"
.
.
End Function

Sorry

Re: Nachtrag
19.05.2002 19:37:46
Rainer3
Hallo Mike,

was Du Dir vorstellst, geht meines Wissens nicht.
Entweder Du verwendest das von mir genannte DoubleClick-Ereignis oder Du müßtest im vorliegenden Worksheet_activate-Ereignis als ersten Befehl die Abfrage einbauen ob die Datumsfunktion gestartet werden soll oder nicht.
Im Klartext heißt das: entweder einen Doppelklick ausführen oder den Ja- oder Nein-Button betätigen.

Gruß
Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige