ich habe ein Problem, wo ich mir absolut nicht erklären kann wieso es nicht funktioniert ?!?
Also, ich habe 2 Tabellenblätter. Das eine habe ich manuell 2002 benannt. Das neue wird durch ein Makro erstellt, und zwar benennt er das neue Sheet nach dem neuen Jahr.
Soweit alles OK.
Später im Code will ich ins Tabellenblatt wechseln, das als Namen das neue Jahr hat, also 2003.
Definition von jahr und nextjahr:
jahr = CStr(Year(Now))
nextjahr = jahr + 1
Aber hier meckert er:
Sheets(nextjahr).Select
vorher im code wechselt er aber erfolgreich ins 2002-Tabellenblatt nach dem Code:
sheets(jahr).select
warum tut er das dann nicht bei 2003 ?
Hier mal der komplette Code, vielleicht fällt einem eine andere Ursache auf:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim jahr
Dim nextjahr
Dim blatt
Dim blattneu
Dim intspalte
Dim intzeile
'Neues Sheet erstellen mit neuem Jahr als Name
blatt = ActiveSheet.Name
blattneu = blatt + 1
Worksheets.Add.Move after:=ActiveWorkbook.Worksheets(Worksheets.Count)
ActiveSheet.Name = blattneu
'Wechseln ins Tabellenblatt diesen Jahres
jahr = CStr(Year(Now))
Sheets(jahr).Select
'Inhalt aus dem Sheet dieses Jahres kopieren
Cells.Select
Selection.Copy
'Wechseln ins Tabellenblatt nächsten Jahres
nextjahr = CStr(Year(Now) + 1)
Sheets(nextjahr).Select
'Inhalt ins aktuelle Tabellenblatt einfügen
'Cells.Select
ActiveSheet.Paste
'Alle Zeilen einblenden lassen (durch Aufhebung der Gruppierung)
Selection.EntireRow.Hidden = False
'Bedingte Formatierung für Funktionen
'Range("D2:AG366").Select
'Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
' Formula1:="=""F"""
' Selection.FormatConditions(1).Interior.ColorIndex = 22
'Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
' Formula1:="=""U"""
' Selection.FormatConditions(1).Interior.ColorIndex = 22
'Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
' Formula1:="BD"
' Selection.FormatConditions(2).Interior.ColorIndex = 43
'Wechseln ins Tabellenblatt diesen Jahres
jahr = CStr(Year(Now))
Sheets(jahr).Select
'Kopieren des Buttons im aktuellen Tabellenblatt
ActiveSheet.Shapes("CommandButton1").Select
'Wechseln ins Tabellenblatt nächsten Jahres
Sheets(nextjahr).Select
'Button ins Tabellenblatt nächsten Jahres einfügen
'Cells.Select
ActiveSheet.Paste
'Inhalte der Zellen D2:AG366 löschen
Range("D2:AG366").Select
Selection.ClearContents
'Den 1.1. eintragen
Cells(2, 2).Value = CDate("01.01." & Year(Now) + 1)
'Die restlichen Tage berechnen
For intzeile = 3 To 366
Cells(intzeile, 2).Value = Range("B2").Value + (i - 1)
Next
'Wochentage des Jahres bestimmen
For intzeile = 2 To 366
Cells(intzeile, 1).Value = "=UPPER(MID(TEXT(RC[1], ""TTTT""),1,2))"
Next
'Feiertage in die Spalte C eintragen
For intzeile = 2 To 366
Cells(intzeile, 3).Value = Feiertag(Cells(intzeile, 2).Value)
Next
'Zeilen der Wochenendtage ausblenden
For intzeile = 2 To 366
If Cells(intzeile, 1).Value = "SA" Or Cells(intzeile, 1).Value = "SO" Then
Selection.EntireRow.Hidden = True
Else
End If
Next
'In Zeilen mit Feiertagen bei Personen ein "F" eintragen
For intzeile = 2 To 366
If Cells(intzeile, 3).Value > 1 Then
For intspalte = 4 To 33
Cells(2, intspalte).Value = "F"
Next intspalte
End If
Next intzeile
End Sub