Ergänzend brauche ich in der Datei über die erste Zeile noch zwei zusätzliche Zeilen. Die erste Zeile soll den Monatsname anzeigen. Die zweite Zeile soll den Wochentag in voller Länge anzeigen. Ein Beispeil habe ich in die Tabelle hinzugefügt.
(16.07.2021, 06:43)Tommiks schrieb: Weil ich die Machbarkeit mit VBA sehen möchte, denn ich habe das Problem nicht lösen können.
Hallo,
eine Möglichkeit:
Code:
Option Explicit Sub Kal_horizontal() Dim j, Tage& j = Application.InputBox("Jahreszahl", , Year(Date), Type:=1) If j <> False Then Tage = DateSerial(j + 1, 1, 1) - DateSerial(j, 1, 1) Cells.ClearContents With Range(Cells(4, 2), Cells(4, Tage + 1)) .Formula = "=Date(" & j & ", 1, Column(A1))" .Offset(-3, 0).Formula = "=TEXT(B4,""MMMM"")" .Offset(-2, 0).Formula = "=TEXT(B4,""TTTT"")" End With With Range(Cells(3, 2), Cells(3, Tage + 1)) .FormulaR1C1 = "=ISOWEEKNUM(R[+1]C)" .NumberFormat = """KW ""00" End With Tabelle1.UsedRange.Value = Tabelle1.UsedRange.Value End If End Sub
Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:1 Nutzer sagt Danke an Gast für diesen Beitrag 28 • Tommiks
Option Explicit Sub Kal_horizontal() Dim j, Tage& j = Application.InputBox("Jahreszahl", , Year(Date), Type:=1) If j <> False Then With Tabelle1 Tage = DateSerial(j + 1, 1, 1) - DateSerial(j, 1, 1) .Cells.ClearContents With .Range(.Cells(6, 4), .Cells(Tage + 1, 4)) .Formula = "=Date(" & j & ", 1, Row(A1))" .Offset(, -3).Formula = "=TEXT(D6,""MMMM"")" .Offset(, -2).Formula = "=TEXT(D6,""TTTT"")" End With With .Range(.Cells(6, 3), .Cells(Tage + 1, 3)) .FormulaR1C1 = "=ISOWEEKNUM(R[+1]C)" .NumberFormat = """KW ""00" End With .UsedRange.Value = .UsedRange.Value End With End If End Sub
Hallo,
da stimmt noch was nicht - schreibe es so:
Code:
Option Explicit Sub Kal_horizontal() Dim j, Tage& j = Application.InputBox("Jahreszahl", , Year(Date), Type:=1) If j <> False Then With Tabelle1 Tage = DateSerial(j + 1, 1, 1) - DateSerial(j, 1, 1) .Cells.ClearContents With .Range(.Cells(6, 4), .Cells(Tage + 1, 4)) .Formula = "=Date(" & j & ", 1, Row(A1))" .Offset(, -3).Formula = "=TEXT(D6,""MMMM"")" .Offset(, -2).Formula = "=TEXT(D6,""TTTT"")" End With With .Range(.Cells(6, 3), .Cells(Tage + 1, 3)) .Formula = "=ISOWEEKNUM(D6)" .NumberFormat = """KW ""00" End With .UsedRange.Value = .UsedRange.Value End With End If End Sub
Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:1 Nutzer sagt Danke an Gast für diesen Beitrag 28 • Tommiks
With ThisWorkbook.Worksheets("Senkrechter Kalender")
Das "Tabelle1" ist der CodeName des Tabellenblattes. Siehst du im VBA-Editor links beim Projekt. Dort steht bei einem deutschen Excel und einer neuen Datei - Tabelle1(Tabelle1).
Der Name VOR der Klammer ist der Codename.
Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:1 Nutzer sagt Danke an Gast für diesen Beitrag 28 • Tommiks