Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
192to196
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
192to196
192to196
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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.

Re: Ins Sheet wechseln,was nach neuem Jahr benannt ist
17.12.2002 13:22:53
L.Vira
Ja, klar...
Anzeige
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige