1.9k Aufrufe
Gefragt in Tabellenkalkulation von
Wie kann folgendes realisiert werden:

In Zelle C1 steht ein Datum z.B. 1.1.2013 oder 1.5.2014, also immer der 1. eines Monats.
In die Zelle A10:A40 soll vereinfacht ein Datum eingegeben (nur Tag) und automatisch mit Monat und Jahr aus C1 ergänzt werden.
Also z.B. C1= 1.2.2012
Eingabe in A10=5
Nach verlassen der Zelle soll in A10 das Datum 5.2.2012 drinstehen.

7 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

ist nur per Makro lösbar, da jede Formel durch die Tastatureingabe gelöscht wird.

Gruß

Helmut
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Helmut,

teste mal folgenden Code

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A10:A40")) Is Nothing Then
Application.EnableEvents = False
With Target
.Value = CDate(Range("C1").Value) - 1 + Target.Value
.NumberFormat = "dd.mm.yyyy"
End With
Application.EnableEvents = True
End If
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von
Hallo Rainer,

vielen Dank, es funktioniert perfekt !!

Selber habe ich versucht es mit "dateadd" hinzukriegen, bin aber kläglich gescheitert.

Vielleicht hat ja jemand noch eine Idee dazu.

Gruß
Helmut
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Helmut,

wozu?

es funktioniert perfekt !!


Gruß Hajo
0 Punkte
Beantwortet von
Hallo Hajo,

ich will hier niemanden unnötig beanspruchen und bin sehr zufrieden mit Rainer's schneller und kompetenter Lösung.
Mir ging es einzig darum, meinen Horizont zu erweitern, da ich es mit DateAdd nicht gelöst bekam.

Gruß
Helmut
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Helmut,

da musst Du dann warten bis jemand auf Deinen Rechner schaut. Ich mache die nicht.
Da Du Deine Versuche nicht gepostet hast.

Gruß Hajo
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Helmut,

mit DateAdd könnte es so aussehen

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A10:A40")) Is Nothing Then
Application.EnableEvents = False
With Target
.Value = DateAdd("d", Target.Value - 1, Range("C1").Value)
.NumberFormat = "dd.mm.yyyy"
End With
Application.EnableEvents = True
End If
End Sub


Gruß
Rainer
...