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

Datum in Target.Value

Datum in Target.Value
14.09.2017 21:33:49
Martin
Hallo liebe Forumsmitglieder,
ich möchte in Excel aus zwei Datumsangaben die Anzahl der dazwischenliegenden Tage ermitteln. Das ganz soll durch eine Worksheet_Change Event erfolgen. Über Target.Value und mit der Funktion DateDiff wollte ich zunächst das zuletzt eingegebene Datum ermitteln und mit einem vorhandenen Datum einer anderen Zelle Subtrahieren.
Der VBA-Code sieht folgendermaßen aus:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("C3").Value = DateDiff("d", Range("B3").Value, Target.Value)
End Sub
Leider funktioniert der Code so nicht und ich bekomme die Fehlermeldung: Laufzeitfehler '13': Typen unverträglich. Der Wert von Target.Value ist dann negativ, wenn ich mit Einzelschritten durch das Makro gehe. Erst, wenn ich "Range("F3").Value =" durch MsgBox ersetze, bekomme ich die gewünschte Berechnung, aber eben nur in der MsgBox und nicht in einer Zelle. Target.Value beinhaltet dann auch das in die eingetragene Zelle.
Kann mir jemand sagen, warum die zweite Variante funktioniert und die erste nicht?
Grüße
Martin

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum in Target.Value
14.09.2017 21:59:19
Werner
Hallo Martin,
sicher, dass auch tatsächlich ein echtes Datum in den entsprechenden Zellen steht?
Range("C3").Value = DateDiff("d", CDate(Range("B3")), CDate(Target))
Gruß Werner
AW: Datum in Target.Value
15.09.2017 08:20:53
Martin
Hallo Werner,
danke für deine Rückmeldung. Meine Zellen sind alle als Datum formatiert. Für Range("B3").Value bekomme ich auch das Datum angegeben, nur für Target nicht. Zur Nachvollziehbarkeit habe ich mal das heutige Datum (15.09.2017) eingegeben, welches dann in Target.Value wiedergegeben wird. Im Editor (für Target.Value), und auch in Zelle C3 wird mir der Wert -687939 ausgegeben.
Gleiches passiert, wenn ich deinen vorgeschlagenen Code verwende.
Gibt es noch weitere Möglichkeiten, an das Problem heranzugehen?
Grüße
Martin
Anzeige
Tausch doch mal date1 & date2 ... owT
15.09.2017 10:57:54
Matthias
AW: Tausch doch mal date1 & date2 ... owT
16.09.2017 08:56:30
Martin
Hi Matthias,
ich habe date1 und date2 mal vertauscht und es klappt tatsächlich. Danke für deine Rückmeldung. Verwundert bin ich, warum das auf diesem Weg funktioniert und nicht anders herum. ABER: Problem gelöst :)
Der Vollständigkeit halber: Ich habe das ganze noch mit einer Beschränkung auf die erste Spalte einer eingefügten Tabelle versehen, damit Excel nicht in eine Endlos-Schleife verfällt.
Der Code sieht jetzt so aus:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, ActiveSheet.ListObjects(1).Range.Columns(1)) Is Nothing  _
And Selection.Count = 1 Then
Range("C3").Value = DateDiff("d", Target.Value, Range("B3").Value)
Else
Exit Sub
End If
End Sub

Anzeige
AW: Datum in Target.Value
15.09.2017 14:09:49
Werner
Hallo Martin,
vielleicht beschreibst du mal, was du genau erreichen möchtest. Am besten eine kleine Beispielmappe hochladen.
Gruß Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige