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

dynamische Jahreskalenderformel

dynamische Jahreskalenderformel
Reinhard
Hallo Wissende,
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: dynamische Jahreskalenderformel
07.03.2012 07:03:08
JoWE
Hi Reinhard,
füge am Ende deines Code dies für die Formeln der Spalte B ein:
Dim ze
For Each ze In Range("B2:B367")
ze.Formula = "=" & ze.Text
Next
Für Spalte C mit veränderter Bereichsangabe wiederholen.
Gruß
Jochen
AW: dynamische Jahreskalenderformel
12.03.2012 21:09:33
Reinhard
Hallo Jochen,
ich habe das getan und danke es funktioniert. Sorry daß ich erst so spät antworte.
Ja, mit der Schleife klappt es aber Schleife wollte ich ja vermeiden.
.Range("B2:B367").Value = "=INDEX($H$1:$H$12,MONTH(A2))&""!B""&DAY(A2)+5"
.Range("B2:B367").FormulaLocal = "=" & .Range("B2").Value
Hast du Ideen wie ich da ohne Schleifen sowas als eine Codezeile hinkriegen könnte?
.Range("B2:B367").Formula = "=?"
Deshalb Frage noch offen.
Gruß
Reinhard
Anzeige
AW: nee, sorry!
12.03.2012 21:13:58
JoWe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige