Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ins Sheet wechseln,was nach neuem Jahr benannt ist

Forumthread: Ins Sheet wechseln,was nach neuem Jahr benannt ist

Ins Sheet wechseln,was nach neuem Jahr benannt ist
17.12.2002 11:40:50
Ernesto Cme Guevara
Hallo,

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

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Ins Sheet wechseln,was nach neuem Jahr benannt ist
17.12.2002 11:47:44
L.Vira
jahr = CStr(Year(Now))
CStr macht aus Jahreszahl einen Text, dazu kannst du nix addieren.
so reichts in diesem Fall völlig ohne Typumwandlung:
jahr = Year(Now)
Re: Ins Sheet wechseln,was nach neuem Jahr benannt ist
17.12.2002 12:43:39
Christian
jahr = CStr(Year(Now))
nextjahr = jahr + 1
Aber hier meckert er:
Sheets(nextjahr).Select

is klar. Es gibt zwei Möglichkeiten ein Sheet auszuwählen:
Sheets(index) oder Sheets("Name")
index ist ein Integer, das andere der Sheet-Name als String

Sheets(2003).select würde das versuchen das 2003. Blatt zu öffnen.

dim nextjahr as string
nextjahr = cstr(year(date) + 1)

so wäre es besser.

Anzeige
Re: Ins Sheet wechseln,was nach neuem Jahr benannt ist
17.12.2002 13:22:53
L.Vira
Ja, klar...
Klappt immer noch nicht :-((
17.12.2002 13:53:51
Ernesto Cem Guevara
Hallo,

ich habe den Code jetzt geändert.

Hier die aktuelle Version:

'Wechseln ins Tabellenblatt diesen Jahres
jahr = Year(Now)
Sheets(CStr(jahr)).Select
...
'Wechseln ins Tabellenblatt nächsten Jahres
nextjahr = jahr + 1
Sheets(CStr(nextjahr)).Select

und für das Eintragen des Datums vom 2.1. bis zum Jahresende stimmt auch was nicht. Hat jemand ne andere Idee?

'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

Danke für jede Hilfe!!

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige