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

Alarmfunktion

Alarmfunktion
18.05.2006 16:39:40
Klaus
Hallo,
ich hatte vorhin schonmal eine frage bezüglich eine "alarmfunktion" geäussert die auch beantwortet werden konnte.
die formel lautet wie folgt:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim zei
If Target.Column > 2 Or Cells(Target.Row, 1) = "" Or Cells(Target.Row, 2) = "" Then Exit Sub
For zei = 1 To Range("A65536").End(xlUp).Row
If Cells(Target.Row, 1) > Cells(zei, 2) Then
MsgBox "FEHLER"
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
Target.Select
Exit For
End If
Next zei
End Sub

Kann mir jemand sagen, was ich machen müsste, dass ich nicht eine einfache FEHLERmeldung bekommen sondern, dass excel genau sagt woran es liegt bzw. mir die Zelle in der Messagebox anzeigt?
nochmals vielen dank vorab.
gruss,
klaus

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

Betreff
Datum
Anwender
Anzeige
AW: Alarmfunktion
18.05.2006 16:49:25
Marc
Hallo Klaus,
ersetzte MsgBox "FEHLER" durch MsgBox Err.Description
Description beschreibt den Fehler.
Gruß Marc
AW: Alarmfunktion
18.05.2006 16:55:57
Klaus
Das klappt leider nicht ganz.
die msgbox bleibt dann leer.=(
AW: Alarmfunktion
18.05.2006 17:02:02
UweD
Hallo
meinst du das?
MsgBox "FEHLER: in Zeile " & zei
Gruß UweD
(Rückmeldung wäre schön)
AW: Alarmfunktion
18.05.2006 17:07:14
Klaus
Hi,
das klappt leider auch nicht ganz.
wenn die zahl in spalte a grösser als eine zahl in spalte b ist kerscheint folgende meldung:
FEHLER IN ZEILE "
wenn b kleiner ist als die werte in spalte a:
FEHLER IN ZEILE 26.
habe ungefähr 50 zahlenpaare und es treten jeweils nur diese 2 fehlermeldungen auf?
Anzeige
AW: Alarmfunktion
18.05.2006 17:09:24
UweD
Hallo
ich kann die Logik nicht ganz nachvollziehen.
Dazu wäre eine Beispielmappe sinnvoll.
Bin aber jetzt weg...
Gruß UweD
(Rückmeldung wäre schön)
MsgBox "FEHLER: in Zeile " & Target.Address ? owt
20.05.2006 06:43:22
Mustafa
Viele Grüße aus Köln.
AW: Alarmfunktion
20.05.2006 11:17:46
Erich
Hallo Klaus,
probiers doch mal damit:
Private Sub Worksheet_Change(ByVal Target As Range)  ' nur Zahlen erlaubt
Dim cc As Range, maxA As Double, minB As Double, istF As Boolean, ccSel As Range
If Intersect(Target, [A:B]) Is Nothing Then Exit Sub
For Each cc In Intersect(Target, [A:B])
If Not IsEmpty(cc) Then
If Not IsNumeric(cc) Then
istF = True
MsgBox cc.Address(0, 0) & " = " & cc & " ist keine Zahl.", vbCritical, "FEHLER"
Else
maxA = WorksheetFunction.Max([A:A])
minB = WorksheetFunction.Min([B:B])
If cc.Column = 1 And cc > minB Then
istF = True
MsgBox cc.Address(0, 0) & " = " & cc _
& " wäre größer als das Minimum von B = " & minB, vbCritical, "FEHLER"
ElseIf cc.Column = 2 And cc < maxA Then
istF = True
MsgBox cc.Address(0, 0) & " = " & cc _
& " wäre kleiner als das Maximum von A = " & maxA, vbCritical, "FEHLER"
End If
End If
If istF Then
Application.EnableEvents = False
cc.ClearContents
Application.EnableEvents = True
If ccSel Is Nothing Then Set ccSel = cc
istF = False
End If
End If
Next cc
If Not ccSel Is Nothing Then ccSel.Select
End Sub
oder damit:
Private Sub Worksheet_Change(ByVal Target As Range)  ' alle Zeichen erlaubt
Dim cc As Range, col As Integer, zei As Long, ccSel As Range
If Intersect(Target, [A:B]) Is Nothing Then Exit Sub
For Each cc In Intersect(Target, [A:B])
If Not IsEmpty(cc) Then
col = 3 - cc.Column
For zei = 1 To Cells(Rows.Count, col).End(xlUp).Row
If Not IsEmpty(Cells(zei, col)) Then
If (col = 1 And cc < Cells(zei, col)) Or (col = 2 And cc > Cells(zei, col)) Then
MsgBox cc.Address(0, 0) & " = " & cc & " wäre " & _
IIf(col = 1, "kleiner", "größer") & " als " & _
Cells(zei, col).Address(0, 0) & " = " & Cells(zei, col), _
vbCritical, "FEHLER"
Application.EnableEvents = False
cc.ClearContents
Application.EnableEvents = True
If ccSel Is Nothing Then Set ccSel = cc
Exit For
End If
End If
Next zei
End If
Next cc
If Not ccSel Is Nothing Then ccSel.Select
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige