PDA

Vollständige Version anzeigen : Tag und Monat das aktuelle Jahr hinzufügen


Salkin
30.04.2009, 13:51
Moin,

ich habe ein kleines Problemchen.
Ich kopiere aus einem Excelarbeitsblatt mit einer Makro eine Spalte die so aussieht:

04.01
27.01
07.02
07.02
26.03
29.03
08.04
17.04
27.04
30.04
usw.

nun möchte ich aber sie nach dem kopieren per Makro so umändern

04.01.2009
27.01.2009

es soll also immer die aktuelle JahresZahl hinzugefügt werden.
Wie mache ich das?

Gruß Niklas

chris-kaiser
30.04.2009, 13:54
hiho


kurze Nachfrage
liegt das als Text vor??
oder ist das schon ein wirkliches Datum
im Format TT.MM

Salkin
30.04.2009, 13:57
Moin,

als ein Datum mit ein davor stehendes '

Gruß Niklas

chris-kaiser
30.04.2009, 14:12
hiho

ich vermute mal das

markieren dieser Spalte -> Daten text in Spalten ->fertigstellen

oder markiere eine leere Zelle -> kopieren -> deinen Bereich mit dem Datum markieren -> Inhalte einfügen -> addieren -> und den Bereich als Datum formatieren

reichen wird

aber hier ein Makro, das wenn wirklich ein anderes Jahr als 2009 sein sollte

Option Explicit
Sub change_date()
Dim arRngDate, i As Long
arRngDate = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
For i = 1 To UBound(arRngDate)
arRngDate(i, 1) = DateSerial(2009, Month(arRngDate(i, 1)), Day(arRngDate(i, 1)))
Next
Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row) = arRngDate
End Sub

diese eben umwandelt

Salkin
30.04.2009, 14:35
Moin ,

Private Sub cmdDatum_Click()


Dim arRngDate, i As Long
arRngDate = Range("B1:B" & Cells(Rows.Count, 1).End(xlUp).Row)
For i = 1 To UBound(arRngDate)
arRngDate(i, 1) = DateSerial(2009, Month(arRngDate(i, 1)), Day(arRngDate(i, 1)))
Next
Range("B1:B" & Cells(Rows.Count, 1).End(xlUp).Row) = arRngDate
End Sub

Er markiert mir die Zeile die mit arRngDate(i, 1) beginnt und meldet Typen unverträglich woran liegt das?
Hinweis ich habe A durch B ersetz da in Spalte B das Datum steht.

Gruß Niklas

chris-kaiser
30.04.2009, 14:48
hiho

steht in der erste zeile auch ein Datum?
oder ist dort eine Überschrift?
der Code ist nur für ein Datum gedacht :)

Option Explicit
Sub change_date()
Dim arRngDate, i As Long
arRngDate = Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row)
For i = 1 To UBound(arRngDate)
arRngDate(i, 1) = DateSerial(2009, Month(arRngDate(i, 1)), Day(arRngDate(i, 1)))
Next
Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row) = arRngDate
End Sub

bzw.

Option Explicit
Sub change_date()
Dim arRngDate, i As Long
arRngDate = Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row)
For i = 1 To UBound(arRngDate)
If IsDate(arRngDate(i, 1)) Then
arRngDate(i, 1) = DateSerial(2009, Month(arRngDate(i, 1)), Day(arRngDate(i, 1)))
End If
Next
Range("B1:B" & Cells(Rows.Count, 2).End(xlUp).Row) = arRngDate
End Sub

Salkin
30.04.2009, 14:54
Moin,

danke der Code funktioniert.(Untere) Wenn ich in das Feld gehe wird das Datum mit Jahr angezeigt sonst ohne.
Der Obere ist für die Kopfzeile gedacht funktioniert auch.

Gruß Niklas