Clever-Excel-Forum

Normale Version: Änderung der Active-X Schaltflächen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo VBA-Freunde,

ich ändere gerade für eine Anwendung die VBA-Programmierung.
Dabei wurde ich bei der Besprechung auf folgendes Problem hingewiesen:

Immer dann, wenn bei der geöffneten Excel-Mappe die Auflösung des Ausgabegerätes (externer Bildschirm oder Beamer) die vorher eingestellte Auflösung des Primärbildschirmes ändert, werden die Buttons größer, es scheint, die passen sich der neuen Auflösung an und bleiben dann in der anderen Größe. Dabei werden einige Eingabezellen überdeckt und die Buttons müssen von Hand verkleinert werden.

Bevor ich nun einen "Refresh"- Button mit den Ursprungsmaßen der Schaltfläche programmiere, möchte ich wissen, ob jemand schon mal dieses Problem hatte und wie es dann gelöst wurde.

Für eure Ideen schon mal vielen Dank im voraus.
Hallo Heinz,

ich würde die Größe und den Anzeigeort im Code fest verdrahten.
Das ist einfach zu machen und noch dazu sehr effektiv
Die exakten Werte für einen aktiven Button kannst Du im Eigenschaftenfenster erlesen

Code:
Private Sub CommandButton1_Click()
    With CommandButton1
        .Caption = "Schaltfläche1"
        .Top = 35.25
        .Left = 168.75
        .Height = 73.5
        .Width = 167.25
    End With
.
.
Hallo Heinz,

das scheint ein Bug in Excel Versionen >2003 zu sein und wird oft erwähnt.

So weit ich das verstehe, ist die beste Methode, beim Öffnen der Datei die Steuerelemente per Code zu positionieren. Dabei sollten alle eventuell ausgeblendeten Zeilen und Spalten eingeblendet sein.
Wenn es viel Steuerelement sind, dann nutz am besten eine Hilfstabelle, in der Du Positionen hinterlegst und im Code von dort ausliest.
Hallo ihr,

jetzt hatte ich endlich mal Zeit das umzusetzen.

mit den 5 Buttons auf einer Seite, mehr sind es nicht,
habe ich die Daten in ein Workbook-Change Ereignis geschrieben,
wenn es dem Kunden die Buttons zerspult braucht er nur auf eine andere Tabelle und wieder zurück und schon stimmt alles wieder.

Vielen Dank-