Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Gültigkeitsprüfung per VBA

Forumthread: Gültigkeitsprüfung per VBA

Gültigkeitsprüfung per VBA
Marten
Hallo zusammen,
ich habe folgenden VBA-Code für die Umwandlung von Zahlen in Uhrzeit gefunden: Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Dim Zeit As Double If Not Intersect(Target, Range("A1:B10")) Is Nothing Then If Target.Text "" Then Zeit = Int((Target.Value) / 100) / 24 + (Target.Value / 100 - Int(Target.Value / 100)) / _ 14.4 Target.Value = Format(Zeit, "hh:mm") End If End If Application.EnableEvents = True End Sub
Der funktioniert soweit sehr gut.
Nun möchte ich diesen Code um eine Gültigkeitsprüfung erweitern, und zwar:
Bei der Eingabe in Zelle B1 (BIS-Zeit) soll die Zeit geprüft werden, ob diese größer ist als die in Zelle A1 (VON-Zeit) usw.
Mit der "normalen" Gültigkeitsprüfung (Zeit größer als) funktioniert dies nicht.
Hat jemand einen Vorschlag.
Wäre echt nett.
Danke.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Gültigkeitsprüfung per VBA
24.08.2011 05:03:10
fcs
Hallo Marten,
bei einer Eingabe via Makro ist die Gültigkeitsprüfung nicht aktiv, da muss man nachhelfen.
als Gültigkeits Prüfung wählst du "benutzerdefiniert"
und als Formel:

=B1>A1
Zusätzlich gibst du auch Text ein für die Fehlermeldung und Meldungstitel-Titel.
Deinen Code passt du wie folgt an. Dann wird bei der Eingabe in Spalte B ggf. eine Fehlermeldung angezeigt und die Eingabe wieder gelöscht.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim Zeit As Double
If Not Intersect(Target, Range("A1:B10")) Is Nothing Then
If Target.Text  "" Then
Zeit = Int((Target.Value) / 100) / 24 + (Target.Value _
/ 100 - Int(Target.Value / 100)) / 14.4
Target.Value = Format(Zeit, "hh:mm")
If Target.Column = 2 Then
If Target.Validation.Value = False Then
MsgBox Target.Validation.ErrorMessage & vbLf & vbLf _
& "Bitte neu eingeben", vbInformation, Target.Validation.ErrorTitle
Target.Select
Target.ClearContents
End If
End If
End If
End If
Application.EnableEvents = True
End Sub

Anzeige
AW: Gültigkeitsprüfung per VBA
25.08.2011 04:22:14
Marten
Hallo, danke für deinen Vorschlag.
Funktioniert sehr gut.
Nun möchte ich noch eine nützliche Prüfung, um Fehleingaben zu verhindern.
In der Spalte A habe ich eine benutzerdef. Prüfung, die nur Eingaben von ganzen Zahlen zwischen 0 und 2400 ermöglichen, diese sollte auch in der Spalte B (im Code?) sein.
Bitte wieder um Hilfe.
Gruß Marten.
Anzeige
AW: Gültigkeitsprüfung per VBA
26.08.2011 01:05:45
fcs
Hallo Marten,
es ist einfacher, wenn die Prüfung der Eingabe auf ganze Zahlen in der Datengültigkeit erfolgt.
Das Makro prüft dann, ob in Spalte B der Wert größer als in Spalte A ist.
Gruß
Franz
Tabelle1

 AB
121:3422:22

Datengültigkeit der Tabelle
ZelleZulassenDatenEingabe 1Eingabe 2
A1Ganze ZahlZellwert ist zwischen 02359
B1Ganze ZahlZellwert ist zwischen 02359


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim Zeit As Double
If Not Intersect(Target, Range("A1:B10")) Is Nothing And Target.Cells.Count = 1 Then
If Not IsEmpty(Target) Then
If Target.Value 

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige