Clever-Excel-Forum

Normale Version: Auflösung ActiveX spinnt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hey Leute,

ich arbeite aktuell an einer Excel, welche mehrere ActiveX Schaltflächen und Buttons hat.
Ich habe einen Laptop an den über eine Dockingstation 2 Bildschirme angeschlossen sind.

Solange ich nur auf diesen Bildschirmen arbeite ist alles bestens.
Aber sobald ich den Laptop aus der Dockingstation herausnehme und z.B. einen Beamer anschließe zerschießt es mir komplett alle ActiveX Steuerelemente.

Sie sind dann größer/kleiner als normal und verändert ihre Größe beim Klick darauf.

Ich verwende Office 2010 mit Windows 7.

Hat jemand eine Idee, wie man verhindern kann dass das beim Anschließen eines Beamers passiert?
Hallo,

...mal so als Ansatz, ob es hilft mußt Du selbst testen:
man kann auch die Größe eines Buttons im Code festlegen.

Zitat:Private Sub CommandButton4_Click()
    With CommandButton4
        .Height = 24
        .Left = 655.5
        .Top = 219
        .Width = 139.5
    End With
End Sub
Da es mehrere Buttons gibt, die sich beim klick auf ein ActiveX Steuerelement gleichzeitig ändern wollte ich eine Methode machen, die alle Größen festlegt und diese Methode dann in jedem Element aufrufen.

Code:
Private Sub SizeControlls()
With CheckBox26
        .Height = 16.5
        .Left = 649.5
        .Top = 75.75
        .Width = 10.5
End With
Code:
Private Sub CheckBox26_Click()
Application.ScreenUpdating = False
Call SizeControlls
[...]
Application.ScreenUpdating = True
End Sub

Wenn ich CheckBox26 klicke passiert aber absolut nichts. Egal welche Werte ich in SizeControlls angebe - er ruft die Methode irgendwie nicht auf.
Hallo,

Zitat:Private Sub CheckBox26_Click()
Application.ScreenUpdating = False
Call SizeControlls
[...]
Application.ScreenUpdating = True
End Sub

und wo finde ich den von mir geposteten Code in Deinem Makro?
Wenn Du willst, daß mein Code in Deinem funktioniert, dann mußt Du ihn auch einbauen.
Und wenn Du willst, daß mehrere Buttons gleichzeitig was tun sollen, dann muß mindestens eine Schleife
drumrum. Und wenn Du jedem Button die von mir vorgegebenen Werte zuordnest, dann werden Deine
Buttons alle aufeinander liegen. Das willst Du ganz sicher auch nicht.

Du hast inzwischen 49 Themen erstellt, aber offenbar ist von der bisherigen Ratschlägen der Helfer nicht
sehr viel zurückgeblieben. Es scheint so, als hätte sich lediglich Deine Copy&Paste-Feinmotorik verbessert.

Also, zeige uns Deine Datei, denn mit den paar Angaben die Du bisher gemacht hast, fange ich gar nicht
erst mit dem Programmieren an.
Hallo,

Beide codes gehören in das Tabellenblattmodul, wo die Checkbox enthalten ist. Stehen sie dort?
Wie stellst Du fest, ob was aufgerufen wurde? Hast Du einen Haltepunkt in den Code gesetzt?
(14.02.2019, 18:22)Käpt\n Blaubär schrieb: [ -> ]Hallo,


und wo finde ich den von mir geposteten Code in Deinem Makro?
Wenn Du willst, daß mein Code in Deinem funktioniert, dann mußt Du ihn auch einbauen.
Und wenn Du willst, daß mehrere Buttons gleichzeitig was tun sollen, dann muß mindestens eine Schleife
drumrum. Und wenn Du jedem Button die von mir vorgegebenen Werte zuordnest, dann werden Deine
Buttons alle aufeinander liegen. Das willst Du ganz sicher auch nicht.

Du hast inzwischen 49 Themen erstellt, aber offenbar ist von der bisherigen Ratschlägen der Helfer nicht
sehr viel zurückgeblieben. Es scheint so, als hätte sich lediglich Deine Copy&Paste-Feinmotorik verbessert.

Also, zeige uns Deine Datei, denn mit den paar Angaben die Du bisher gemacht hast, fange ich gar nicht
erst mit dem Programmieren an.


Deine patzigen Antworten gehen mir so langsam tierisch auf den Zeiger.
Lern lesen wenn du deinen Code suchst.

Ich habe ausdrücklich gesagt, dass ich eine Methode generiert habe in der die Position und Größe ALLER Elemente gesetzt wird.
Und diese Methode rufe ich in jedem Element auf.

Wenn ich CheckBox1 anklicke verändert sich teilweise gleichzeitig die Größe von CheckBox2.
Es bringt mir also nichts im Click Event von CheckBox1 die Größe von CheckBox1 zu setzen, wenn sich unabhängig davon die Größe von CheckBox2 verändert.

Bei jedem Klick auf jedes beliebige Element werden ALLE Elemente neu gesized.
(14.02.2019, 20:12)schauan schrieb: [ -> ]Hallo,

Beide codes gehören in das Tabellenblattmodul, wo die Checkbox enthalten ist. Stehen sie dort?
Wie stellst Du fest, ob was aufgerufen wurde? Hast Du einen Haltepunkt in den Code gesetzt?

Es steht alles auf dem jeweiligen Tabellenblatt.
Ich habe keine Module generiert und greife nicht auf andere Module / andere Blätter zu.

Die beiden Methoden stehen quasi direkt untereinander.
Ich habe meinen Fehler gefunden.

In meiner SizeControlls Methode gab es eine Logik: wenn ToggleButton1 = True dann alle Controlls weiter nach links, wenn ToggleButton1 = False dann alle Controlls wieder nach rechts.
ToggleButton1 hat 3 Spalten eingeklappt, daher musste alles links / rechts verschoben werden (also .Left angepasst werden).

Nun hatte ich den Fehler, dass ich zuerst die SizeControlls aufgerufen habe und anschließend die Spalten ausgeblendet.


Also im übertragenen Sinne so:
Code:
Private Sub CheckBox26_Click()
Application.ScreenUpdating = False
Call SizeControlls
Call SpaltenAusblenden
Application.ScreenUpdating = True
End Sub

Damit hat die Position meiner Controlls im Anschluss natürlich überhaupt nicht mit dem zusammen gepasst, was ich mir gedacht hatte.


Es hat schon gereicht die beiden Calls zu tauschen und schon funktioniert alles so wie es soll.