6k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,
ich habe mal folgendes Anliegen.
Ich habe mir eine alte Datei in einen persönlichen Jahreskalender abgewandelt (das sage ich nur, um den ungewöhnlichen Aufbau zu erklären).
1 Arbeitsblatt ist 1 Monat = 12 Arbeitsblätter.
Ist es jetzt möglich, dass beim Öffnen der Datei der Cursor automatisch zum aktuellen Tag (=Heute) springt? Und da immer in die erstmögliche Zelle Bei 0.00 Uhr (also am 1. des Monats immer die Zelle B9, am 24. des Monats immer die Zelle CB63 usw.; im Prinzip immer links oben).
Da wahrscheinlich noch die eine oder andere Frage zum Tabellenaufbau besteht habe ich den Link mit reingestellt.
Achso falls das wichtig ist. Nach Fertigstellung der Datei werde ich die Arbeitsblätter schützen, wo dann z.Bsp. die Spaltenüberschriften und Zeilenüberschriften (Uhrzeiten) gesperrt sein werden.
Danke und Gruß Flodnug

http://www.xup.in/dl,54026374/Terminplaner_2015.xlsm/

PS.: Ich benutze Excel 2007

30 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Flodnug ^^

probier mal :-)

gruss nighty

dein Format konnte ich nicht lesen,meine Excel Version ist zu alt *g*

dann vielleicht so

vorrausgesetzt

1)worksheets "1"-"12"
2)ein aktuelles Datum auf dem worksheet

ich gehe von obigen vorraussetzungen aus und kann den code dadurch klein halten


einzufuegen alt+f11>projektexplorer>deine arbeitsmappe

Private Sub Workbook_Open()
Worksheets("" & Month(Date)).Activate
Cells.Find(What:=CDate(Format(Date)), After:=Range("A1"), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext).Select
End Sub


nachdem speichern und erneuten oeffnen ist der Automatismus aktiv
0 Punkte
Beantwortet von
Hallo nighty,
möchte mich schon mal für deine Antwort bedanken.
Ich werde es heute Abend oder morgen ausprobieren und gebe dann selbstverständlich Bescheid, ob es geklappt hat.
Gruß Flodnug
0 Punkte
Beantwortet von
Hallo nighty,
sorry es hat leider nicht geklappt.
Es kommt die Meldung - Laufzeitfehler '9':
Index außerhalb des gültigen Bereichs.
Und wenn ich dann debuggen anklicke markiert mir Excel diese Zeile gelb: Worksheets("" & Month(Date)).Activate.
Gruß Flodnug
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Flodnug ^^

es werden 12 worksheetnamen vorrausgesetzt

"1" "2" "3" "4" usw

der fehler sagt aus das das worksheet("11") nicht existiert
falsch=" 11" oder "-11-" etc
richtig="11"

eine abfrage des worksheetsnamen und/oder des Datums auf existens
waere auch möglich

gruss nighty
0 Punkte
Beantwortet von
Hallo nighty,
danke zunächst, dass du dir so spät noch die Mühe machst, mir zu helfen.
Aber ab jetzt wird es schwierig für mich.
Also es sind 12 Arbeitsblätter vorhanden (jeweils die Monate mit den ersten drei Buchstaben).
Es sind aber noch 12 weitere Arbeitsblätter vorhanden (die ich aber ausgeblendet habe).
Diese heissen HT-Jan, HT-Feb usw.
Ansonsten wüsste ich nicht, wie ich dir bei der Lösung weiter helfen kann.
Danke und Gruß Flodnug
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Flodnug ^^

Monatsnamen nun auf die ersten 3 zeichen bezogen

gruss nighty

Private Sub Workbook_Open()
Worksheets("" & Mid(MonthName(Month(Date)), 1, 3)).Activate
Cells.Find(What:=CDate(Format(Date)), After:=Range("A1"), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext).Select
End Sub
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo, Flodnug
vielleicht hilft dir die Tabelle weiter.
Die Monate in der Tabelle sind jetzt ausgeschrieben.
http://www.xup.in/dl,19941623/TERMINPLANER_2015.XLSM/

Gruß
fedjo
0 Punkte
Beantwortet von
Hallo nighty, hallo Fedjo,
vielen Dank füt Eure Hilfe.
Nighty, leider funktioniert es immer noch nicht. Jetzt kommt die Meldung:
Laufzeitfehler '91'
Objektvariable oder With-Blockvariable nicht festgelegt.
Und beim debuggen wird folgende Zeile gelb unterlegt:
Cells.Find(What:=CDate(Format(Date)), After:=Range("A1"), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext).Select

Fedjo, deine Lösung klappt fast so, wie ich es wollte. Und natürlich ist es egal, ob der Monat mit 3 Buchstaben oder komplett geschrieben wird.
Und er er springt auch in die erste Zelle nach 0:00 Uhr.
Leider springt er nicht zum heutigen Tag, sondern zum 22.11.
Mal gucken, ob er morgen zum 23.11. springt.
Es wäre schön, wenn Du nochmal rein schauen könntest.
Danke nochmal Euch beiden und Gruß Flodnug
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Flodnug ^^

der code ist natürlich getestet und unter Excel 2000 lauffähig
ich müßte die kompatiblitäts unterschiede recherchieren

entweder ist ein parmeter der findsyntax anders
oder es wird tatsaechlich ein objekt gefordert

so kennt man MS ^^

da fedjo auch eine lösung angeboten hat,nimm diese

das erspart mir entsprechende recherche

gruss nighty
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi xx und all ^^

nun mit objekt

teste mal auch wenn du andere lösungen nutzt

interessiert mich mal :-)

gruss nighty

Private Sub Workbook_Open()
Dim Suche As Object
Worksheets("" & Mid(MonthName(Month(Date)), 1, 3)).Activate
Set Suche = Cells.Find(What:=CDate(Format(Date)), After:=Range("A1"), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
Range(Suche.Address).Select
End Sub
...