Supportnet / Forum / Tabellenkalkulation
Tabellenblätter ausblenden/einblenden
Frage
Summ,Summ,
wende mich mal, nach langem Grübeln über das Problem, auf diesem Wege, an alle die mehr Ahnung (in diesem Fall von Makros/VBA)haben.
Wie ist es möglich, ausgeblendete Tabellenblätter (in diesem Fall 11 Stück, Februar 04 - Dezember 04) anhand des Systemdatums automatisch einzublenden, wenn der jeweilige Monat begonnen hat.
Für eine Lösung/Möglichkeit wäre ich dankbar.
MfG
In diesem Sinne
immer volle Honigtöpfe
JJ
Antwort 1 von nighty
hi alle
kleines beispiel
anhand des aktuellen datums wird auf die jeweilige tabelle geschaltet beim oeffnen der datei
tabellenname = 1.1
oder
tabellenname = 1.12
usw.
gruss nighty
Private Sub Workbook_Open()
a$ = Mid$(Date$, 4, 3) + Mid$(Date$, 1, 3) + Mid$(Date$, 7, Len(Date$) - 4)
b$ = Mid$(a$, 1, 2) + "." + Mid$(a$, 4, 2)
c$ = b$
If Mid$(a$, 4, 1) = "0" Then c$ = Mid$(b$, 1, 3) + Mid$(b$, 5, 2)
If Mid$(a$, 1, 1) = "0" Then c$ = Mid$(b$, 2, Len(b$))
Sheets(c$).Select
End Sub
kleines beispiel
anhand des aktuellen datums wird auf die jeweilige tabelle geschaltet beim oeffnen der datei
tabellenname = 1.1
oder
tabellenname = 1.12
usw.
gruss nighty
Private Sub Workbook_Open()
a$ = Mid$(Date$, 4, 3) + Mid$(Date$, 1, 3) + Mid$(Date$, 7, Len(Date$) - 4)
b$ = Mid$(a$, 1, 2) + "." + Mid$(a$, 4, 2)
c$ = b$
If Mid$(a$, 4, 1) = "0" Then c$ = Mid$(b$, 1, 3) + Mid$(b$, 5, 2)
If Mid$(a$, 1, 1) = "0" Then c$ = Mid$(b$, 2, Len(b$))
Sheets(c$).Select
End Sub
Antwort 2 von Frank1_ohne
Hallo Biene,
erstelle ein neues Modul mit dem Namen
sub auto_open()
und kopiere folgenden Code rein:
Das setzt das Vorhandensein der Tabellen "Tabelle1 bis Tabelle12" voraus, ist jetzt etwas mit der heißen Nadel gestrickt und sollte auf deine Bedürfnisse angepaßt werden, aber es sollte nur das Prinzip verdeutlichen.
mfg frank
erstelle ein neues Modul mit dem Namen
sub auto_open()
und kopiere folgenden Code rein:
Sub auto_open()
Dim i As Integer
For i = 1 To 11
If Month(Date) > i Then
Sheets("Tabelle" & CStr(i + 1)).Visible = True
End If
Next i
End SubDas setzt das Vorhandensein der Tabellen "Tabelle1 bis Tabelle12" voraus, ist jetzt etwas mit der heißen Nadel gestrickt und sollte auf deine Bedürfnisse angepaßt werden, aber es sollte nur das Prinzip verdeutlichen.
mfg frank
Antwort 3 von nighty
hi alle
hier vielleicht was du moechtest :)
sind zwei makro
gruss nighty
Private Sub Workbook_Open()
Call Makro01
End Sub
Sub Makro01()
Dim mon$(12)
mon$(1) = "Januar04"
mon$(2) = "Februar04"
mon$(3) = "März04"
mon$(4) = "April04"
mon$(5) = "Mai04"
mon$(6) = "Juni04"
mon$(7) = "Juli04"
mon$(8) = "August04"
mon$(9) = "September04"
mon$(10) = "Oktober04"
mon$(11) = "November04"
mon$(12) = "Dezember03"
a% = Val(Mid$(Date$, 1, 2))
Sheets(mon$(a%)).Select
End Sub
hier vielleicht was du moechtest :)
sind zwei makro
gruss nighty
Private Sub Workbook_Open()
Call Makro01
End Sub
Sub Makro01()
Dim mon$(12)
mon$(1) = "Januar04"
mon$(2) = "Februar04"
mon$(3) = "März04"
mon$(4) = "April04"
mon$(5) = "Mai04"
mon$(6) = "Juni04"
mon$(7) = "Juli04"
mon$(8) = "August04"
mon$(9) = "September04"
mon$(10) = "Oktober04"
mon$(11) = "November04"
mon$(12) = "Dezember03"
a% = Val(Mid$(Date$, 1, 2))
Sheets(mon$(a%)).Select
End Sub
Antwort 4 von Biene Maja
Hallo Frank,
habe leider nicht angegeben, dass ich von VBA/Makros so gut wie keine Ahnung habe. Bislang ist es mir nur gelungen, mit der Makroaufzeichnung kleinere Makros "schreiben zu lassen". Bin insofern blutiger Anfänger.
Deinen Code habe ich im Microsoft Visuel Basic als neues Modul eingegeben. Nach Abspeichern und Neustart der Datei erscheint folgende Meldung:
"Laufzeitfehler '9'
Index außerhalb des gültigen Bereichs"
Bei Start des Debuggers wird die Zeile
"Sheets ("Tabelle" & CStri (i+1)) Visible = True"
markiert.
Für diese Programmierung bin ich leider noch zu blöd. Ist es möglich das Problem aus der Ferne und evtl. einfacher zu lösen.
Vielen Dank für die promte Antwort
MfG
JJ
habe leider nicht angegeben, dass ich von VBA/Makros so gut wie keine Ahnung habe. Bislang ist es mir nur gelungen, mit der Makroaufzeichnung kleinere Makros "schreiben zu lassen". Bin insofern blutiger Anfänger.
Deinen Code habe ich im Microsoft Visuel Basic als neues Modul eingegeben. Nach Abspeichern und Neustart der Datei erscheint folgende Meldung:
"Laufzeitfehler '9'
Index außerhalb des gültigen Bereichs"
Bei Start des Debuggers wird die Zeile
"Sheets ("Tabelle" & CStri (i+1)) Visible = True"
markiert.
Für diese Programmierung bin ich leider noch zu blöd. Ist es möglich das Problem aus der Ferne und evtl. einfacher zu lösen.
Vielen Dank für die promte Antwort
MfG
JJ

