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

Problem beim Blättern in Tabellblättern

Problem beim Blättern in Tabellblättern
15.01.2006 13:55:38
Holger
Hallo !
Ich habe damit begonnen, eine Art Mitarbeiterverwaltung zu erstellen.
Beim Excel-Programmstart wird mit einer Monatsübersicht für Januar gestartet, der Benutzer kann über zwei cmdButtons in den Monaten vor und zurückblättern, wobei für jeden Monat ein neues Tabellenblatt samt Monatskalender erstellt wird.
Das Vorblättern wird hierbei über folgenden Code realisiert:

Sub MonatVor()
intJahr = Range("B2").Text
strMonat = Range("A2").Text
Spalte = 3
Zeile = 4
Select Case strMonat
Case "Januar"
intMonat = 2
strMonat = "Februar"
Case "Februar"
intMonat = 3
strMonat = "März"
Case "März"
intMonat = 4
strMonat = "April"
Case "April"
intMonat = 5
strMonat = "Mai"
Case "Mai"
intMonat = 6
strMonat = "Juni"
Case "Juni"
intMonat = 7
strMonat = "Juli"
Case "Juli"
intMonat = 8
strMonat = "August"
Case "August"
intMonat = 9
strMonat = "September"
Case "September"
intMonat = 10
strMonat = "Oktober"
Case "Oktober"
intMonat = 11
strMonat = "November"
Case "November"
intMonat = 12
strMonat = "Dezember"
Case "Dezember"
intMonat = 1
strMonat = "Januar"
intJahr = intJahr + 1
End Select
For intBlattprüfung = 1 To ActiveWorkbook.Sheets.Count
If Sheets(intBlattprüfung).Name = strMonat & intJahr Then
Set objBlattprüfung = Sheets(intBlattprüfung)
Exit For
End If
Next intBlattprüfung
If objBlattprüfung Is Nothing Then
Range("A6:B48").Select
Selection.Copy
Worksheets.Add Before:=ActiveWorkbook.Worksheets(1)
Worksheets(1).Name = strMonat & intJahr
ActiveWorkbook.ActiveSheet.Range("A2") = strMonat
ActiveWorkbook.ActiveSheet.Range("B2") = intJahr
Range("A6:B48").Select
ActiveSheet.Paste
With Worksheets(strMonat & intJahr).Rows()
.RowHeight = 18
End With
Call TabelleFormatieren
For intTag = 1 To Day(DateSerial(intJahr, intMonat + 1, 0))
Cells(Zeile, Spalte) = Format(DateSerial(intJahr, intMonat, _
intTag), "DD")
Cells(Zeile - 1, Spalte) = Format(DateSerial(intJahr, intMonat, _
intTag), "DDD")
Spalte = Spalte + 1
Zeile = 4
Next intTag
'Buttons für MonatVor und MonatZurück hinzufügen & an die richtige Stelle
verschieben
ActiveSheet.Buttons.Add(0, 54, 18, 18).Select
Selection.OnAction = "MonatZurück"
Selection.Characters.Text = "<"
ActiveSheet.Buttons.Add(18, 54, 18, 18).Select
Selection.OnAction = "MonatVor"
Selection.Characters.Text = ">"
'Button für Speichern & Beenden hinzufügen & an die richtige Stelle
verschieben
ActiveSheet.Buttons.Add(1.12, 72.75, 118, 15.75).Select
Selection.OnAction = "SpeichernBeenden"
Selection.Characters.Text = "Speichern & Beenden"
Call ZeilenFormatieren
Call WochenendeFärben
Call SpalteDiensteFärben
Call SpaltenAusblenden
Range("C6").Select
ActiveWindow.FreezePanes = True
ActiveSheet.Protect
Else
Sheets(strMonat & intJahr).Select
Range("C6").Select
End If
End Sub

Der Code für das Zurückblättern ist:

Sub MonatZurück()
intJahr = Range("B2").Text
strMonat = Range("A2").Text
Spalte = 3
Zeile = 4
Select Case strMonat
Case "Januar"
intMonat = 12
strMonat = "Dezember"
intJahr = intJahr - 1
Case "Februar"
intMonat = 11
strMonat = "Januar"
Case "März"
intMonat = 10
strMonat = "Februar"
Case "April"
intMonat = 9
strMonat = "März"
Case "Mai"
intMonat = 8
strMonat = "April"
Case "Juni"
intMonat = 7
strMonat = "Mai"
Case "Juli"
intMonat = 6
strMonat = "Juni"
Case "August"
intMonat = 5
strMonat = "Juli"
Case "September"
intMonat = 4
strMonat = "August"
Case "Oktober"
intMonat = 3
strMonat = "September"
Case "November"
intMonat = 2
strMonat = "Oktober"
Case "Dezember"
intMonat = 1
strMonat = "November"
End Select
If strMonat = "Dezember" And intJahr = 2005 Then
MsgBox "Weiter als Januar 2006 können Sie nicht zurückblättern.", _
vbInformation, "Funktion nicht möglich"
Else
Sheets(strMonat & intJahr).Select
Range("C6").Select
End If
End Sub

An sich funktioniert beides.
Wenn ich jedoch erst vorblättere, um mehrere Monate zu erstellen, anschließend zurückblättere und dann wieder vorblättere, bekomme ich einen Fehler 9 (Index außerhalb des gültigen Bereichs) gemeldet.
Ursächlich dafür ist folgende Zeile in der Prozedur "MonatVor":
Sheets(strMonat & intJahr).Select
Mit Einzelschritten hab ich herausgefunden, dass der Variablen strMonat in diesem Falle immer ein Monat zugeordnet wird, für den noch gar kein Tabellenblatt erstellt wurde. So kann das Tabellenblatt natürlich auch nicht geöffnet werden, sondern muss ja erst erstellt werden, was auch eigentlich über o.g. For-Schleife in der Prozedur MonatVor erledigt werden sollte.
Wie umgehe ich dieses Problem & kann verhindern, dass mir immer Fehler 9 gemeldet wird ?
Danke im Voraus,
Gruß,
Holger

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem beim Blättern in Tabellblättern
15.01.2006 22:44:14
Kurt
hier wird dir geholfen
aber dein Beitrag wird erstmal gelöscht
phorum.excelhost.Berti
AW: Problem beim Blättern in Tabellblättern
15.01.2006 23:18:35
Holger
Hallo,
danke für Deinen Link. Ich weiß zwar nicht, warum mein Beitrag gelöscht werden sollte, aber ich hab mittlerweile einen Code gefunden, der funktioniert:

For x = 1 To Sheets.Count
If Sheets(x).Name = strMonat & intJahr Then
vorhanden = True
Exit For
End If
Next x
If vorhanden Then
Sheets(strMonat & intJahr).Select
Range("C6").Select
Else
[...]neues Tabellenblatt erstellen

Gruß,
Holger
AW: Problem beim Blättern in Tabellblättern
16.01.2006 06:32:13
Hajo_Zi
Hallo Holger,
ich lese es so das Dein Problem gelöst st. Warum hast Du den Beitrag als offen gekennzeichnet?
Gruß Hajo
Anzeige
AW: Problem beim Blättern in Tabellblättern
16.01.2006 06:35:09
Jan
Gute Frage Bingo
AW: Problem beim Blättern in Tabellblättern
16.01.2006 08:25:53
Holger
Ja, tut mir leid. Mein Fehler! Frage ist nicht mehr offen!

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige