Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen

Makrozuweisung einer Checkbox auf Tabellenblatt

Betrifft: Makrozuweisung einer Checkbox auf Tabellenblatt von: Adleano
Geschrieben am: 30.10.2014 15:22:21

Hallo zusammen,

ich hoffe ihr könnt mir bei einem kleinen Problem helfen.
Auf einem Tabellenblatt in einer Arbeitsmappe erstelle ich via VB-Script ein Diagramm mit verschiedenen Kurven. Das zugehörige Makro liegt in einer separaten Addin-Datei. Um dem Anwender das Ein- und Ausblenden von Kurven zu ermöglichen, erstelle ich per Code neben dem Diagramm Checkboxen mit einer Makrozuweisung.

Code:

With .CheckBoxes.Add(rng.Left, rng.Top, rng.Width, rng.Height)
.LinkedCell = rng.Address
.Characters.Text = ""
.value = True
.Locked = False
.Name = "Name"
.OnAction = "'ChkboxETQ_Company_Click " & Chr(34) & strCompany & Chr(34) & " , " & Chr(34) & strRange & Chr(34) & " , " & Chr(34) & strNameSheet & "'"
end with


Die Funktion "ChkboxETQ_Company_Click" befindet sich ebenfalls in einem Modul des Addins.

Nach Erstellung des Diagramms mit den Checkboxen passiert folgendes:
1. In der Arbeitsmappe erstellt Excel automatisch eine Verknüpfung zum Addin (mit Pfad und Dateiname)
2. Wenn ein anderer Anwender die Datei öffnet frägt Excel natürlich, ob die Verknüpfungen aktualisiert werden sollen.
3. Die Checkboxen haben für den Anwender keine Funktion, da das hinterlegte Makro auf eine andere Addindatei verweist.

Habt ihr eine Idee, wie ich das hinbekomme ohne den Code in die Arbeitsmappe auszulagern?

Besten Dank schonmal und Grüße

  

Betrifft: AW: Makrozuweisung einer Checkbox auf Tabellenblatt von: Daniel
Geschrieben am: 30.10.2014 18:18:31

Hi

wenn du den Code in einem AddIn hast, dann muss der Mensch, der mit dieser Datei arbeiten soll, ebenfalls über das AddIn verfügen und es bei sich installiert haben.
Wenn das nicht geht, musst du den Code in die Arbeitsmappe auslagern.

das beschriebene Problem kannst du aber auch makrofrei lösen (zumindest für die Anwendungsdatei):

1. weise der Checkbox eine Ausgabezelle zu

2. Erstelle einen Excel-Namen mit folgedender Formel ( Formel schematsich):
=Wenn(AusgabeZelle der Checkbox = Wahr; Zellbereich der Diagrammdaten; Leerer Zellbereich)

3. Verwende diesen Namen als Datenquelle für das Diagramm.

Das machst du für jede Datenreihe.

Gruß Daniel


  

Betrifft: AW: Makrozuweisung einer Checkbox auf Tabellenblatt von: Adleano
Geschrieben am: 04.11.2014 10:57:58

Hallo Daniel,

deinen Tipp habe ich soweit nachgebaut. Das Ein- und Ausblenden der Diagrammkurven funktioniert auch. Allerdings meldet Excel auf dem Tabellenblatt immer, dass eine Formel ungültige Bezüge hat.
Ursache dafür müssen die Formeln in den Namensdefinitionen sein:

Hier die Formel für eine der Kurven:
=WENN(Blatt1!$B$10=WAHR;BEREICH.VERSCHIEBEN(Blatt1!$T$35;;;ANZAHL(Blatt1!$T:$T));Blatt1!$Z$1)

Wenn ich die Namen über den Namensmanager rauswerfe, erscheint die Meldung nicht mehr.
Alle Namen haben als Bereich das Blatt1 angegeben.

Was mach ich falsch?

Grüße


 

Beiträge aus den Excel-Beispielen zum Thema "Makrozuweisung einer Checkbox auf Tabellenblatt"