sorry, besserer Betreff fiel mir nicht ein.
Jmd. hat u.a. 12 Blätter, für jeden Monat einen, sie heißen wie die ausgeschriebenen Monatsnamen.
In jedem Blatt stehen im Bereich A6:C36 die 28-31 datenzeilen pro Monat und dessen Tage.
A: Datum, B: Arbeitgeber, C: Betrag.
Um nachfolgende Berechnungen zu vereinfachen habe ich das in der Mappe dritte Blatt "Hilf"
angelegt. Dort sind ab A2 abwärts alle Tage des Jahres aufgelistet.
Ziel ist daß dann folgende Formeln in B entstehen (für C gilt analog das Gleiche):
B2: =Januar!B6
B3: =Januar!B7
B4: =Januar!B8
usw. in B, aber dann ab Zelle B33, wo ja der Februar beginnt, soll dann stehen:
B33: =Februar!B6
B34: =Februar!B7
B35: =Februar!B8
wieder usw. in B bis halt der März kommt.
Dies zu erreichen gelang mir weder gestern wo ich das versuchte mit Excel-Formeln zu lösen.
Ich kam zwar sehr nahe an das Ziel mit sowas in der Formeln "(Zeile()+2)/32+1"
(ist jetzt nur ein fei erfundenes Beispiel, alle meine Formelversuche die ich als richtig einschätzte
hatten das gleiche Problem. Im Januar klappte es in B mit B6 zu beginnen, aber der Februar begann immer mit B5 :-( Ohne das wäre es ja richtig gewesen. Ergo habe ich heute mich daran versucht da diese mistige Formel mit Vba zu erstellen.
Mit dem nachfolgenden Code und auch in der datei
https://www.herber.de/bbs/user/79246.xls
schaffte ich es immerhin *Schweißabwisch* daß die Formeln die ich in B und C sehen möchte
genau richtig als reiner Text drinstehen.
Leider, wenn ich das Hochkomma bei
.Range("B2:B367").FormulaLocal = "=" & .Range("B2").Value
entferne, sieht man in B daß die ZellZeilen in der Formel bei Monatswechseln nicht wiederr auf 6
zurückgesetzt werden, es wird gnadenlos weiter hochgezählt.
Nachfolgend steht der entsprechende Code.
Gruß ^ Danke
Reinhard
Option Explicit
Sub Tage()
Dim Zei As Long
With Worksheets("Hilf")
.UsedRange.ClearContents
.Range("H1").Value = "Januar"
.Range("H1").AutoFill Destination:=.Range("H1:H12"), Type:=xlFillDefault
.Columns("A").NumberFormat = "dd.mm.yy"
.Range("A1:C1") = Split("Tag Arbeitg. Betrag")
.Range("A2:A367").Formula = "=DATE(2012,1,ROW()-1) "
.Range("B2:B367").Value = "=INDEX($H$1:$H$12,MONTH(A2))&""!B""&DAY(A2)+5"
' .Range("B2:B367").FormulaLocal = "=" & .Range("B2").Value
.Range("C2:C367").Value = "=INDEX($H$1:$H$12,MONTH(A2))&""!C""&DAY(A2)+5"
' .Range("C2:C367").Formula = "=" & .Range("C2").Value
End With
End Sub