Excel - Rechteck per VBA sichtbar und unsichtbar machen?
Hallo,
ich hätte gern den VBA Code, um in Excel folgendes per Makro zu erreichen:
Ich würde gerne einen Häkchen-Button einfügen (soweit kein Problem), bei dessen Klick ein vorher eingefügtes Rechteck in meiner Tabelle sichtbar wird. Klickt man das Häkchen weg, wird das Rechteck wieder unsichtbar.
Falls das auch ohne VBA geht, wärs natürlich noch besser.
Wer kann mir hier helfen?
verzweifelte Grüße,
quietscheratsch
2 Antworten
zeichne mal mit dem VBA-Editor auf, welchen Namen Dein Rechteck in VBA hat (zB Autoform(22) oder shapes(10)
Dann schreibst Du in den Code des Häkchen-Objekts:
if activesheet.Autoform(22).visible = true then
activesheet.Autoform(22).visible = false
else
activesheet.Autoform(22).visible = true
end if
Könnte sein, dass die Autoform kein Objekt von activesheet. ist, sondern von activeworkbook. , auch Thisworkbook. könnte dann gehen (letzteres ist das, worin das Makro steht und ist das gleiche wie das aktive, wo Du das Häkchen drückst.) oder gar von application.(eher unwahrscheinlich).
Schau Dir einfach mal die Aufzeichnung im Modulblatt an.
(bei manchen Objekten gibt es auch hidden = true bzw false. Ich entnehme das immer einer Probeaufzeichnung, kann man sich unmöglich alles merken.
An sowas merk ich dann immer, dass mir die Systematik der Grundlagen fehlt, in diesem Fall Boolesche Operatoren, allgemein.
Wieder was dazugelernt (und werds hoffentlich behalten!), danke!
Das wird ohne tiefgreichende Änderungen in VBA wohl leider nicht gehen... Musst dich wohl mit dem Aus-"grauen" begnügen müssen^^
Was soll diese unqualifizierte Bemerkung???
Das ist ein simpler Code, den jeder Anfänger hinbekommt.
@lamiam: Womit ich ausdrücklich nicht DICH meine. ㋛
Das ist doch nur damit Lamiam seinen Stern bekommt, war schließlich bis dato die einzige Antwort :-)
Kleine Ergänzung:
Diese und ähnliche Aufgaben lassen sich auch mit einem Einzeiler lösen.
In meinem Testbeispiel so:
ActiveSheet.Shapes("Rectangle 1").Visible = Not ActiveSheet.Shapes("Rectangle 1").Visible
Auf Dein Beispiel übertragen sollte es dann so klappen:
Activesheet.Autoform(22).visible = Not Activesheet.Autoform(22).visible
So wird die Einstellung einer boolean Eigenschaft einfach jedes mal umgekehrt.
@quietscherats: Wenn es bei Dir mit If / Then läuft, dann lass Dich nicht verwirren und lass es so:
"Never change a running programm" ㋛