Hallo again,
ich habe mir mal dein Beispiel angesehen. Da sich der Befehl zum Farben zurücksetzen auf ActiveSheet bezieht, wird er natürlich auch nur für das gerade aktive Blatt ausgeführt, und da du zum Anklicken
des Buttons immer auf Tabelle1 wechseln musst, ist das immer dieses Blatt. Wenn er für alle Blätter gelten soll, verwende die For Each-Schleife, statt 0 solltest du den Colorindex auf vbColorIndexAutomatic setzen (wie im Beispiel), das ist eine in VBA vordefinierte Konstante.
Das Handling der Buttons ist ja wirklich recht umständlich, nicht nur dass du immer auf das erste Blatt wechseln musst, sondern ggf. auch noch scrollen, damit die Buttons in Reichweite sind. Also denke mal über eine Userform nach:
In der IDE auf Einfügen - UserForm klicken, F4 drücken, damit das Eigenschaftsfenster angezeigt wird, dort kannst du unter Caption den Titel für die Form festlegen. Wenn die Werkzeugsammlung nicht angezeigt wird, kannst du sie im Menü Ansicht einblenden, vorher die Userform anklicken. In der Werkzeugsammlung den CommandButton ("Befehlsschaltfläche") anklicken, mit der Maus auf die Stelle der Form zeigen wo er hinsoll und klicken. Du kannst ihn aber auch später noch verschieben, indem du ihn mit der Maus am Rand anfasst und ziehst. Die Beschriftung der Buttons kannst du wieder im Eigenschaftsfenster unter Caption festlegen (vorher den betreffenden Button markieren). Zum Schluss kannst du die Form an den Anfasspunkten auf die richtige Größe ziehen.
Nun musst du nur noch den Code festlegen, der beim Anklicken des Buttons ausgeführt werden soll. Dafür wieder den betreffenden Button markieren und F7 drücken (oder Menü Ansicht - Code). Der Prozedurname ist schon vorgegeben, beim Speichern-Button trägst du dort einfach Call Speichern (oder auch nur Speichern) ein usw. Füge in der Sub Workbook_Open den Befehl
UserForm1.Show vbModeless
hinzu. Die Form wird dann immer angezeigt, du kannst wie gewohnt in den Tabellen arbeiten, und bei Bedarf per Userform deine Prozeduren aufrufen. Damit du die Form, wenn sie mal aus Versehen weggeklickt
wurde wieder anzeigen kannst, ohne die Mappe erst zu schließen und wieder zu öffnen, kannst du in Modul1 noch die folgende Sub einfügen:
Public Sub ShowForm()
UserForm1.Show vbModeless
End Sub
Um sie bei Bedarf z. B. mit der Tastenkombination Strg+u aufrufen zu können, gibst du im Direktfenster folgendes ein (wenn es nicht angezeigt wird, im Menü Ansicht - Direktfenster einblenden):
Application.MacroOptions Macro:="ShowForm", HasShortcutKey:=True, ShortcutKey:="u"
Voila - fertisch :-)
Gruß
|