Code läuft in Modul1, nicht in DieseArbeitsmappe
Reinhard
aufgrund einer Anfrage habe ich nachstehenden Code erstellt. Er funktioniert in "Modul1". Beim Anfrager funktionierte er nicht. Nach einiger Zeit kam raus, er hatte ihn in in das Modul "DieseArbeitsmappe" gestellt.
Jetzt meine Frage, warum eigentlich funktioniert er da nicht?
Es kommt der Fehler 9, Index usw.
M.E. beim Versuch ein neueingefügtes Blatt auch Dezember zu nennen.
Irgendwie muß je nach Startmodul Activeworkbook oder Activesheet anders vom Code bewertet worden sein.
Hier die Mappe: https://www.herber.de/bbs/user/71745.xls
Danke ^ Gruß
Reinhard
Option Explicit
Sub Erzeuge()
Dim Eing As String, M As Integer, T As Integer
Eing = InputBox("Bitte jahr vierstellg eingeben", "Jahreseingabe", Year(Now()) + 1)
'Hier ggfs. die Variable Eing auf Gültigkeit prüfen
On Error GoTo hell
Worksheets("FT").Copy
Application.ScreenUpdating = False
With ActiveWorkbook
.Worksheets("FT").Range("B1").Value = CInt(Eing)
For M = 12 To 1 Step -1
.Worksheets.Add before:=Worksheets(1)
ActiveSheet.Name = MonthName(M)
With .Worksheets(MonthName(M))
.Rows("3:3").Select
ActiveWindow.FreezePanes = True
.Rows(3).RowHeight = 63
.Range("A1").Value = Worksheets("FT").Range("B1").Value
.Range("A2").Value = .Name
.Range("A3").Value = "Feiertag"
.Range("B1").Value = "Tag"
.Range("B2").Value = "WT"
For T = 1 To 31
If Month(DateSerial(Eing, M, T)) = M Then
.Rows(1).NumberFormat = "00"
.Rows(2).NumberFormat = "DDD"
.Cells(1, T + 2) = T
.Cells(2, T + 2) = DateSerial(Eing, M, T)
If Weekday(.Cells(2, T + 2), 2)