Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1800to1804
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
Inhaltsverzeichnis

Makrodurchlauf beenden

Makrodurchlauf beenden
20.12.2020 10:35:44
nightcab
Hallo Leute!
Wie kann ich dieses Makro mit "ok" nach dem ersten Druchlauf beenden obwohl der Auslöser D1D2 noch aktiv ist?

If Range("D1")  Range("D2") Then
MsgBox "Falscher Monat!", vbInformation
Cells(ActiveCell.Row, 1).Select
ActiveCell.Value = ""
....Exit Sub, Stop oder End funkt nicht...
End If
Bitte um Hilfe!
Gruß nightcab

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makrodurchlauf beenden
20.12.2020 10:46:20
Oberschlumpf
Hi ?,
zeig mal bitte per Upload eine Bsp-Datei mit dem Code.
Ciao
Thorsten
AW: Makrodurchlauf beenden
20.12.2020 10:54:07
nightcab
Bitteschön...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Range("D1")  Range("D2") Then
MsgBox "Falscher Monat!", vbInformation
Cells(ActiveCell.Row, 1).Select
ActiveCell.Value = ""
End If
'########################## Zeiteingabe ohne Doppelpunkt ###############################
If Target.Count > 1 Then Exit Sub
Dim RaBereich As Range                      ' Bereich der Wirksamkeit
Dim RaZelle As Range                        ' zur Zeit untersuchte Zelle
Dim InS As Integer                          ' Variable für Stunde
Dim InM As Integer                          ' Variable für Minute
'   Set RaBereich = Range("Q4")     ' Bereich der Wirksamkeit festlegem
'   noch mehr Bereiche
Set RaBereich = Union(Range("Y100:Y1900"), Range("Z100:Z1900"), Range("Q4"))
'    ActiveSheet.Unprotect "Password"        ' Schutz der Tabelle aufheben
Application.EnableEvents = False            ' Reaktion auf Zellveränderung abschalten
For Each RaZelle In Range(Target.Address)   ' Schleife falls mehr als eine Zelle mit einmal  _
verändert
If Not Intersect(RaZelle, RaBereich) Is Nothing Then    ' Zelle ist im Bereich der  _
Wirksamkeit
With RaZelle
If .Value  "" Then
If IsNumeric(.Value) And InStr(.Value, ":") = 0 And _
InStr(.Value, ",") = 0 And Len(RaZelle)  2 Then
InS = Left(.Value, Len(.Value) - 2)
InM = Right(.Value, 2)
Else
'                            Stunden haben das Primat
'                             InS = .Value
'                             InM = 0
'                            Minuten haben das Primat
InS = 0
InM = .Value
End If
'                       überprüfen ob Eingabe in ein Datum umgewandelt werden kann
If IsDate(InS & ":" & InM) Then
.NumberFormat = """ ""hh:mm"" Uhr"""         ' Zellformat setzen
.Value = InS & ":" & InM        ' Zeit in Zelle schreiben
End If
End If
End If
End With
End If
Next RaZelle
'    ActiveSheet.protect "Password"          ' Schutz der Tabelle aufheben
Application.EnableEvents = True         ' Reaktion auf Zellveränderung einschalten
'#################################### Eingabeverkürzung ###################################
Dim Zellbereich As Range
Dim Primut As String
Set Zellbereich = Range("I100:I1900")
Select Case Target
Case "#1"
Primut = "Tag 1"
Case "#2"
Primut = "Tag 2"
Case "#3"
Primut = "Tag 3"
Case Else
Exit Sub
End Select
Target = Primut
End Sub

Anzeige
AW: Makrodurchlauf beenden
20.12.2020 10:56:22
Oberschlumpf
ähhh?
per Upload? Bsp-Datei?
Wo is die Datei?
AW: Makrodurchlauf beenden
20.12.2020 11:10:40
nightcab
Ich denke dass das was zwischen

Sub xxx
und End Sub steht ist wichtig.
Der Rest ist ellenlang und beinhaltet Daten die nicht öffentlich werden sollen und greift nicht in das betreffende Makro ein. Daher kann man es weglassen.
Was dieses Makro betrifft...
Sobald eine Zelle in Spalte E aktiv ist, Werden die Zellen D1 (Monat) und D2 (Monat) verglichen.
Gibt es einen Unterschied, dann kommt die Meldung.
Aber die MsgBox soll ja nur daruf hinweisen und die Fehleingabe löschen. Die Vergeleichsmonate bleiben gleich und somit der Auslöser des Makros. Daher soll nach dem ersten Durchlauf abgebrochen werden bis wieder die nächste Zelle in Spalt E aktiv ist.
Gruß nightcab
Anzeige
AW: Makrodurchlauf beenden
20.12.2020 11:11:49
nightcab
Ich denke dass das was zwischen

Sub xxx
und End Sub steht ist wichtig.
Der Rest ist ellenlang und beinhaltet Daten die nicht öffentlich werden sollen und greift nicht in das betreffende Makro ein. Daher kann man es weglassen.
Was dieses Makro betrifft...
Sobald eine Zelle in Spalte E aktiv ist, Werden die Zellen D1 (Monat) und D2 (Monat) verglichen.
Gibt es einen Unterschied, dann kommt die Meldung.
Aber die MsgBox soll ja nur daruf hinweisen und die Fehleingabe löschen. Die Vergeleichsmonate bleiben gleich und somit der Auslöser des Makros. Daher soll nach dem ersten Durchlauf abgebrochen werden bis wieder die nächste Zelle in Spalt E aktiv ist.
Gruß nightcab
Anzeige
AW: Makrodurchlauf beenden
20.12.2020 11:20:39
Oberschlumpf
und tschüss^^
du glaubst doch nich wirklich, dass ich erst mal ne Datei erstelle, die für den code passenden daten einfüge, damit ich dann deinen code testen kann....boah
wenn du, ohne ausreichende mithilfe deinerseits, eine lösung willst, dann musst du wohl einen auftragsprogrammierer beauftragen.
mit "bsp-datei" meinte ich eben genau eine datei mit BSP-daten!
AW: Makrodurchlauf beenden
20.12.2020 11:40:56
nightcab
Na ja, es ist schon eine gewaltige Aufgabe ein Excel Blatt zu öffnen, in D1 = 1 und D2 = 2 reinzutippen und mein Makro rein zu kopieren.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Range("D1")  Range("D2") Then
MsgBox "Falscher Monat!", vbInformation
Cells(ActiveCell.Row, 1).Select
ActiveCell.Value = ""
End If
End Sub

Und wenn man dann auf E springt, sollte das Makro nur ein mal anspringen.
Ich weiß leider nicht, was dir an meiner Erklärung zu wenig ist oder wo ich zuwenig mitgeholfen habe?
Aber trotzdem Danke für deine Mühe
Gruß nightcab
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige