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, 05: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
________ Servus
Case
Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:1 Nutzer sagt Danke an Case für diesen Beitrag 28 • Tommiks
19.07.2021, 06:42 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2021, 06:50 von Case.)
Hallo,
probiere es mal 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))
.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
________ Servus
Case
Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:1 Nutzer sagt Danke an Case für diesen Beitrag 28 • Tommiks
19.07.2021, 09:14 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2021, 09:15 von Case.)
Hallo,
dann schreibe statt...
Code:
With Tabelle1
... das:
Code:
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.
________ Servus
Case
Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:1 Nutzer sagt Danke an Case für diesen Beitrag 28 • Tommiks