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

Wie kann man dieses Macro verkürzen

Wie kann man dieses Macro verkürzen
05.05.2008 18:40:00
Karsten
Hi
Ich habe folgendes Macro:

Sub Auswahl
If Year(Now) = 2008 Then
If Month(Now) = 1 Then Sheets("0108").Select
If Month(Now) = 2 Then Sheets("0208").Select
If Month(Now) = 3 Then Sheets("0308").Select
If Month(Now) = 4 Then Sheets("0408").Select
If Month(Now) = 5 Then Sheets("0508").Select
If Month(Now) = 6 Then Sheets("0608").Select
If Month(Now) = 7 Then Sheets("0708").Select
If Month(Now) = 8 Then Sheets("0808").Select
If Month(Now) = 9 Then Sheets("0908").Select
If Month(Now) = 10 Then Sheets("1008").Select
If Month(Now) = 11 Then Sheets("1108").Select
If Month(Now) = 12 Then Sheets("1208").Select
End If
If Year(Now) = 2009 Then
If Month(Now) = 1 Then Sheets("0109").Select
If Month(Now) = 2 Then Sheets("0209").Select
If Month(Now) = 3 Then Sheets("0309").Select
If Month(Now) = 4 Then Sheets("0409").Select
If Month(Now) = 5 Then Sheets("0509").Select
If Month(Now) = 6 Then Sheets("0609").Select
If Month(Now) = 7 Then Sheets("0709").Select
If Month(Now) = 8 Then Sheets("0809").Select
If Month(Now) = 9 Then Sheets("0909").Select
If Month(Now) = 10 Then Sheets("1009").Select
If Month(Now) = 11 Then Sheets("1109").Select
If Month(Now) = 12 Then Sheets("1209").Select
End If
End Sub


Das möchte ich gerne verkürzen und auf die Zukunft vorbereiten, also nach 2009.
Wie mache ich das am besten?
MfG
Karsten J.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wie kann man dieses Macro verkürzen
05.05.2008 18:49:00
Tino
Hallo,
ungetestet.

Sheets(Format(CStr(9 + (Month(Now) * 100)), "0000")).Select


Gruß
Tino

AW: Wie kann man dieses Macro verkürzen
05.05.2008 19:10:49
Tino
Hallo,
ein klammernpaar müsste man auch weglassen können, da Punkt vor Strich gilt.

Sheets(Format(CStr(9 + Month(Now) * 100), "0000")).Select


Gruß
Tino

AW: Wie kann man dieses Macro verkürzen
05.05.2008 19:11:00
Hajo_Zi
Hallo Karsten,
und noch ein Hinweis.
Excel ist ein vielseitiges Programm und man kann viele Probleme damit lösen. Jede positive Seite hat aber auch negative Aspekte - einer davon ist im Makrorecorder enthalten.
Die Bücher, die es zu Excel VBA gibt, erklären viele Funktionen, aber ich habe bisher nur in einem gelesen, dass der vom Makrorecorder aufgezeichnete Code bereinigt werden muss.
Der Makrorecorder zeichnet alle Aktionen auf, u. a. auch das Auswählen einer Zelle oder eines eingebetteten Objektes (Bild, Diagramm, Zeichnungsobjekt usw.) – dabei wird generell Select und Activate aufgezeichnet. Diese Befehle sind in VBA zu 99,9% nicht notwendig. Sie lassen den Bildschirm flackern und senken die Geschwindigkeit bei der Ausführung des Codes. Man sollte also schon von Beginn an bei der Programmierung darauf achten, solche Befehle zu vermeiden. Meine Erfahrung mit dem Vorsatz: „Das mache ich später“ ist, man schreibt das Programm später meist komplett neu. Also kostest es nicht nur Rechnerzeit sondern auch Deine Zeit und ist Dir Deine Zeit so wenig Wert?
Zum Vergleich mit und ohne Select schau Dir auch mal diese Beispielarbeitsmappe an: mit und ohne select
Auf meiner Homepage sind alle meine Beispiele ohne Select. Da kann man sich also einige Lösungsansätze zu diesem Thema ansehen.

Anzeige
AW: Wie kann man dieses Macro verkürzen
05.05.2008 19:31:00
Karsten
Hallo Hajo
Danke für den Vergleich.
Sehr interessant.
Allerdings ist Select in diesem Fall nötig.
Ich habe den Code noch ein bisschen abgeändert:
Sheets(Format(CStr(Year(Now) - 2000 + (Month(Now) * 100)), "0000")).Select
So wird auch das Jahr automatisch genommen.
MfG
Karsten J.

AW: Wie kann man dieses Macro verkürzen
05.05.2008 19:36:00
Tino
Hallo,
für was brauchst du dieses Jahr?
In deinem Beispiel sind doch die Namen der Tabellen vom Jahr unabhängig.
Gruß
Tino

AW: Wie kann man dieses Macro verkürzen
05.05.2008 19:44:00
Karsten
Hi
Ich habe doch im Beispiel auch die Jahre abgefragt:

Sub Auswahl
If Year(Now) = 2008 Then
If Month(Now) = 1 Then Sheets("0108").Select
End If
If Year(Now) = 2009 Then
If Month(Now) = 1 Then Sheets("0109").Select
End If
End Sub


Deshalb die Jahresabfrage.
MfG
Karsten J.

Anzeige
AW: Wie kann man dieses Macro verkürzen
05.05.2008 19:59:21
Tino
Hallo,
ok. hab ich irgendwie übersehen. sorry
Gruß
Tino

AW: Wie kann man dieses Macro verkürzen
05.05.2008 19:37:00
Hajo_Zi
Hallo Karsten,
der einzige Fall wo mir das bisher bekannt ist, wenn der Benutzer diese Tabelle/Zele sehen will.
Gruß Hajo

AW: Wie kann man dieses Macro verkürzen
05.05.2008 19:42:00
Karsten
Es handelt sich um eine Urlaubsplanung.
Das Macro wird vor dem Speichern aufgerufen, damit immer der aktuelle Monat beim nächsten öffnen gleich offen ist.
MfG
Karsten J.

AW: Wie kann man dieses Macro verkürzen
05.05.2008 20:29:49
Daniel
HI
vielleicht so:
sheets(format(date, "MMYY")).select
Gruß, Daniel

Anzeige
AW: Wie kann man dieses Macro verkürzen
06.05.2008 14:25:47
Karsten
Hallo Daniel
Das ist einfach perfekt.
Das andere hat zwar auch funktioniert, aber so ist es richtig.
Nochmals Danke an alle für ihre Hilfe.
MfG
Karsten J.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige