Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
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

Bei Überschreitung eines Wertes Hinweis

Bei Überschreitung eines Wertes Hinweis
26.11.2020 23:22:30
mike49
Hallo Leute,
in AJ44 werden die genommenen Urlaubstage angezeigt.
Wie kann ich erreichen, dass mir ein Hinweis "Max. Urlaubstage erreicht!" angezeigt wird, wenn der Gesamturlaubsanspruch in V4 überschritten wird?
Gruß
mike49

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

Betreff
Datum
Anwender
Anzeige
AW: Bei Überschreitung eines Wertes Hinweis
26.11.2020 23:33:22
mike49
. . . als VBA-Lösung mit msg-Box?
AW: Bei Überschreitung eines Wertes Hinweis
26.11.2020 23:59:59
volti
Hallo Mike,
hier eine Idee:
If Range("AJ44").Value > Range("V4").Value Then
   MsgBox "Max. Urlaubstage von '" & Range("V4").Value & "' Tagen erreicht!", vbExclamation, "Hinweis"
End If
_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Bei Überschreitung eines Wertes Hinweis
27.11.2020 01:08:29
mike49
Hallo Karl-Heinz,
danke für die Hilfe.
Das klappt im Prinzip. Aber wenn ich den Hinweis beende, wird der Eintrag (in meinem Fall ein "U") trotzdem in die Zelle vorgenommen. Der sollte aber nicht erfolgen. Wie kann man den Eintrag verhindern?
Gruß
mike49
AW: Bei Überschreitung eines Wertes Hinweis
27.11.2020 01:14:17
MatthiasG
Hallo mike49,
Sorry dass ich mich einmische...
Dazu gibt es den Application.Undo-Befehl.
Wie löst du das Makro denn aus? Wenn der Zellinhalt von AJ44 berechnet wird, dann packe es in das Calculate-Ereignis des Tabellenblattes.
Rechtsklick auf den Tabellenblatt-Reiter, "Code anzeigen":

Private Sub Worksheet_Calculate()
If Range("AJ44").Value > Range("V4").Value Then
Application.Undo
MsgBox "Max. Urlaubstage von '" & Range("V4").Value & "' Tagen überschritten!",  _
vbExclamation, "Hinweis"
End If
End Sub
Gruß Matthias
Anzeige
AW: Bei Überschreitung eines Wertes Hinweis
27.11.2020 01:35:59
mike49
Hallo Matthias,
ich habe dies:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Const adRelBer$ = "B7:AF42, AS7:AS42", txRelSym$ = "U"
Cancel = Not Intersect(Target, Me.Range(adRelBer)) Is Nothing
If Cancel Then
Me.Unprotect
Target = IIf(IsEmpty(Target), txRelSym, Empty)
Target.Font.Color = IIf(Target = txRelSym, 255, 0)
Me.Protect
If Range("AJ44").Value > Range("V4").Value Then
Application.Undo
MsgBox "Max. Urlaubstage von '" & Range("V4").Value & "' Tagen überschritten!", _
vbExclamation, "Hinweis"
End If
End If
End Sub
Aber so klappt's nicht!
LG
mike49
Anzeige
AW: Bei Überschreitung eines Wertes Hinweis
27.11.2020 01:50:17
MatthiasG
Hallo mike49,
wie ich das sehe, kannst du mittels Doppelklick den Zellinhalt von U auf (Leer) umschalten (und umgekehrt).
VBA-Anweisungen kannst du mit .Undo nicht rückgängig machen.
So müsste es aber gehen:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Const adRelBer$ = "B7:AF42, AS7:AS42", txRelSym$ = "U"
Cancel = Not Intersect(Target, Me.Range(adRelBer)) Is Nothing
If Cancel Then
Me.Unprotect
Target = IIf(IsEmpty(Target), txRelSym, Empty)
Target.Font.Color = IIf(Target = txRelSym, 255, 0)
If Range("AJ44").Value > Range("V4").Value Then
Target = IIf(IsEmpty(Target), txRelSym, Empty)
Target.Font.Color = IIf(Target = txRelSym, 255, 0)
MsgBox "Max. Urlaubstage von '" & Range("V4").Value & "' Tagen überschritten!",  _
vbExclamation, "Hinweis"
End If
Me.Protect
End If
End Sub
LG Matthias
Anzeige
Super! So klappt's . . .
27.11.2020 12:19:19
mike49
. . . Danke Matthias für deine Hilfe. Schönes WE.
LG
mike49

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige