Hallo!
Ich habe folgenden bestehenden Code:
Nun möchte ich aber, dass nicht am 1. des Monats der 1. des Monats eingetragen wird sondern alle 12 Monate, aber nicht fix der 1. des Monats. Als Ausgangsdatum steht der Wert in der Zelle B4.
Lautet hier z.B. das Datum 22.11.2015 soll genau nach einem Jahr, sprich am 22.11.2016 der Wert 22.11.2016 in Spalte B5 eingetragen werden usw.., sofern ich die Excel-Datei öffne.
Ich hoffe, dass mir jemand weiterhelfen kann.
LG
Thomas
Ich habe folgenden bestehenden Code:
Code:
' immmer mit Option explicit arbeiten !
' nicht nur hinschreiben, sondern auch TUN!
'''''''''''''''''''''''''''''''
Option Explicit '!!!!!!!!!!!!!!!
'''''''''''''''''''''''''''''''
Private Sub Worksheet_Activate()
Dim lr As Long
Dim i As Long
Dim DifferenzletzteAktualisierungFonds1mitStichtag As String
Dim DifferenzletzteAktualisierungFonds1seitAbschluss As String
Dim DifferenzletzteAktualisierungFonds2mitStichtag As String
Dim DifferenzletzteAktualisierungFonds2seitAbschluss As String
Dim DifferenzletzteAktualisierungFonds3mitStichtag As String
Dim DifferenzletzteAktualisierungFonds3seitAbschluss As String
Dim DifferenzletzteAktualisierungFonds4mitStichtag As String
Dim DifferenzletzteAktualisierungFonds4seitAbschluss As String
Dim fehlendeMonate As Integer
lr = Me.Cells(Me.Rows.Count, 1).End(xlUp).Row
If Me.Cells(lr, 1) < Date And WorksheetFunction.CountIf(Me.Range("A:A"), DateSerial(Year(Date), Month(Date), 1)) = 0 Then
fehlendeMonate = DateDiff("m", Me.Cells(lr, 1).Value, Date)
For i = 1 To fehlendeMonate
lr = lr + 1
Me.Cells(lr, 1).Value = DateSerial(Year(Date), Month(Date) - fehlendeMonate + i, 1)
Me.Cells(lr, 3).Value = Worksheets("Comgest Growth Greater China").Range("H5").Value
Me.Cells(lr, 4).Value = Worksheets("Comgest Growth Greater China").Range("H6").Value
Me.Cells(lr, 6).Value = Worksheets("Fidelity Funds Global Technol").Range("H5").Value
Me.Cells(lr, 7).Value = Worksheets("Fidelity Funds Global Technol").Range("H6").Value
Me.Cells(lr, 9).Value = Worksheets("Fidelity Funds Global (Anspar)").Range("H5").Value
Me.Cells(lr, 10).Value = Worksheets("Fidelity Funds Global (Anspar)").Range("H6").Value
Me.Cells(lr, 12).Value = Worksheets("Fidelity Funds China Consumer").Range("H5").Value
Me.Cells(lr, 13).Value = Worksheets("Fidelity Funds China Consumer").Range("H6").Value
With Worksheets("Fondsentwicklungen")
.Range("C2").Value = Me.Cells(lr, 3) - Me.Cells(lr - 1, 3)
DifferenzletzteAktualisierungFonds1mitStichtag = .Range("C4").Value
.Range("D2").Value = Me.Cells(lr, 4) - Me.Cells(lr - 1, 4)
DifferenzletzteAktualisierungFonds1seitAbschluss = .Range("D4").Value
.Range("F2").Value = Me.Cells(lr, 6) - Me.Cells(lr - 1, 6)
DifferenzletzteAktualisierungFonds2mitStichtag = .Range("F4").Value
.Range("G2").Value = Me.Cells(lr, 7) - Me.Cells(lr - 1, 7)
DifferenzletzteAktualisierungFonds2seitAbschluss = .Range("G4").Value
.Range("I2").Value = Me.Cells(lr, 9) - Me.Cells(lr - 1, 9)
DifferenzletzteAktualisierungFonds3mitStichtag = .Range("I4").Value
.Range("J2").Value = Me.Cells(lr, 10) - Me.Cells(lr - 1, 10)
DifferenzletzteAktualisierungFonds3seitAbschluss = .Range("J4").Value
.Range("L2").Value = Me.Cells(lr, 12) - Me.Cells(lr - 1, 12)
DifferenzletzteAktualisierungFonds4mitStichtag = .Range("L4").Value
.Range("M2").Value = Me.Cells(lr, 13) - Me.Cells(lr - 1, 13)
DifferenzletzteAktualisierungFonds4seitAbschluss = .Range("M4").Value
End With
MsgBox "Die Fondsentwicklungensdaten wurden per " & Me.Cells(lr, 1) & " aktualisiert. " & String(1, vbNewLine) & _
"Daraus ergeben sich folgende neue Werte, verglichen mit der letzten Aktualisierung vom " & Me.Cells(lr - 1, 1) & ": " & String(2, vbNewLine) & _
"Comgest Growth Greater China:" & String(1, vbNewLine) & _
"---------------------------------" & String(2, vbNewLine) & _
"Prozentsatz mit Stichtag: " & Format(Me.Cells(lr, 3), "#,##0.00") & " % (" & DifferenzletzteAktualisierungFonds1mitStichtag & " %)" & String(1, vbNewLine) & _
"Prozentsatz seit Abschluss: " & Format(Me.Cells(lr, 4), "#,##0.00") & " % (" & DifferenzletzteAktualisierungFonds1seitAbschluss & " %)" & String(2, vbNewLine) & _
"Fidelity Funds Global Technol:" & String(1, vbNewLine) & _
"------------------------------" & String(2, vbNewLine) & _
"Prozentsatz mit Stichtag: " & Format(Me.Cells(lr, 6), "#,##0.00") & " % (" & DifferenzletzteAktualisierungFonds2mitStichtag & " %)" & String(1, vbNewLine) & _
"Prozentsatz seit Abschluss: " & Format(Me.Cells(lr, 7), "#,##0.00") & " % (" & DifferenzletzteAktualisierungFonds2seitAbschluss & " %)" & String(2, vbNewLine) & _
"Fidelity Funds Global (Anspar):" & String(1, vbNewLine) & _
"-------------------------------" & String(2, vbNewLine) & _
"Prozentsatz mit Stichtag: " & Format(Me.Cells(lr, 9), "#,##0.00") & " % (" & DifferenzletzteAktualisierungFonds3mitStichtag & " %)" & String(1, vbNewLine) & _
"Prozentsatz seit Abschluss: " & Format(Me.Cells(lr, 10), "#,##0.00") & " % (" & DifferenzletzteAktualisierungFonds3seitAbschluss & " %)" & String(2, vbNewLine) & _
"Fidelity Funds China Consumer:" & String(1, vbNewLine) & _
"--------------------------------" & String(2, vbNewLine) & _
"Prozentsatz mit Stichtag: " & Format(Me.Cells(lr, 12), "#,##0.00") & " % (" & DifferenzletzteAktualisierungFonds4mitStichtag & " %)" & String(1, vbNewLine) & _
"Prozentsatz seit Abschluss: " & Format(Me.Cells(lr, 13), "#,##0.00") & " % (" & DifferenzletzteAktualisierungFonds4seitAbschluss & " %)" & String(2, vbNewLine)
Next i
End If
aufräumen:
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
With Worksheets("Fondsentwicklungen")
.Activate
.Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
End With
End Sub
Nun möchte ich aber, dass nicht am 1. des Monats der 1. des Monats eingetragen wird sondern alle 12 Monate, aber nicht fix der 1. des Monats. Als Ausgangsdatum steht der Wert in der Zelle B4.
Lautet hier z.B. das Datum 22.11.2015 soll genau nach einem Jahr, sprich am 22.11.2016 der Wert 22.11.2016 in Spalte B5 eingetragen werden usw.., sofern ich die Excel-Datei öffne.
Ich hoffe, dass mir jemand weiterhelfen kann.
LG
Thomas
Excel Version 2016