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

Code läuft in Modul1, nicht in DieseArbeitsmappe

Code läuft in Modul1, nicht in DieseArbeitsmappe
Reinhard
Hallo Wissende,
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) 

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Code läuft in Modul1, nicht in DieseArbeitsmappe
03.10.2010 09:06:50
JogyB
Hallo Reinhard,
ActiveSheet bezieht sich immer auf die Arbeitsmappe mit dem Code, wenn der Code in DieseArbeitsmappe steht. Es muss also ein . davor, genau wie in der Zeile darüber bei Worksheets(1)
Sub Erzeuge()
Dim Eing As String, M As Integer, T As Integer
Eing = Application.InputBox("Bitte jahr vierstellg eingeben", _
"Jahreseingabe", Year(Now()) + 1, , , , , 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"
.Rows(1).NumberFormat = "00"
.Rows(2).NumberFormat = "DDD"
For T = 1 To 31
If Month(DateSerial(Eing, M, T)) = M Then
.Cells(1, T + 2) = T
.Cells(2, T + 2) = DateSerial(Eing, M, T)
If Weekday(.Cells(2, T + 2), 2) 

Gruß, Jogy
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige