Hi!
Wie kann man eigentlich vermeiden, dass beim Speichern des Dokuments auch immer die Cursorposition mitgespeichert wird?
- Man erstelle sich ein Makro. Keinen Aufwand in den "Makro aufzeichnen"-Dialog stecken, denn das Makro dient nur zum Abgucken und wird wieder gelöscht.
- Cursor in ein anderes Feld bewegen, egal welches.
- Makro-Aufzeichnung beenden
- Visual Basic aufrufen
- Dort hat sich im Projekt-Teilfenster ein Modul1 angelegt, in dem sich das Makro befindet.
- Ein Dopelclick offenbart den Code für das Selektieren von Feldern.
- Angepasst an das Feld A1 den Einzeiler kopieren und im Projekt-Fenster "Diese Arbeitsmappe" doppelclicken.
- Es müsste sich Workbook Open öffnen, ansonsten dieses aus den beiden DropDowns wählen.
- Code in die Sub einfügen
- Modul1 entfernen, speichern fertig.
Und dann sträubt sich Excel, Code einfach so auszuführen. Dagegen hilft Signieren des Codes (empfohlen) oder in den Sicherheitseinstellungen für Makros diese generell zu erlauben (nicht empfehlenswert). Wie das Signieren geht, ist garantiert auf tausendundeiner Website beschrieben. Ein weiterer Fallstrick ist, dass seit der Ribbon-Variante von Excel (2007, glaub ich) sich das VB versteckt. Man muss dazu in den Optionen das Menüband anpassen und die Entwicklertools in den Hauptregisterkarten freigeben.
Ich finde das recht lästig, wenn ich eine Excel-Tabelle wieder öffne und der Cursor steht "irgendwo" in der Tabelle - nämlich da, wo er auch beim Speichern stand.
Ansichtssache. Wenn Excel als Datenbank missbraucht wird, dann mag das gut so sein, dass die Cursorposition nicht diejenige ist, die man gerade braucht. Dann wäre aber auch Zelle A1 nicht hilfreich, denn die gewünschten Daten stehen sicher irgendwo anders. Man muss sowieso suchen, und da ist es egal, wo der Cursor vorher stand. Wenn man mit Excel seine Arbeitszeiten erfasst, ist die Cursorposition von gestern auch deutlich sinnvoller als die Zelle A1.
Natürlich gibt es auch Anwendungsfälle, in denen A1 sinnvoll ist. Vermutlich dann, wenn man fremde Dateien bekommt, die man von oben an lesen will. Dann hilft jedoch ein dateispezifisches Makro nicht. Man kann sich aber eine Persönliche Arbeitsmappe anlegen (im Makro-Aufzeichnen-Dialog wählen) und dort den Selektionscode unterbringen, wobei man da natürlich erst noch zum eigentlichen Workbook navigieren muss. Wie das geht, hab ich auf die Schnelle nicht rausgefunden.
Lo!