Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1752to1756
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Buttons verschieben sich unregelmäßig

Buttons verschieben sich unregelmäßig
16.04.2020 12:39:20
Constantin
Hallo,
lange habe ich schon mitgelesen und es war nicht nötig einen Beitrag zu erstellen, denn die Lösungen zu meinen Problemen konnte ich immer finden :)
Ich baue seit einiger Zeit an einem komplexen Tool zur Auftragserfassung. Ich bin mittlerweile bei der grundlegend neuen V2 und konnte die Performance und Usability deutlich verbessern. Auch der Grundstein ist flexibler.
Bei V1 wie auch bei V2 hatte ich Probleme mit Buttons, die sich sukzessive verschieben und doppelt angezeigt werden. Am Anfang ein paar Millimeter, das Größte was ich bemerkte waren rund 10 cm. Das Problem tritt bei Excel 2013 (privater Rechner) und Excel 2016 (Frimenrechner) auf. Bei der aktuellen Version V2 verschieben sich nur noch die rötlichen und türkisen Buttons (siehe Screenshot). Klickt man im eigentlichen Feld des Buttons, erscheint er an der neuen Stelle, kann aber nur dort betätigt werden. Ohne Klick sieht alles normal aus. Um das Problem in der Programmier-Phase in den Griff zu bekommen hilft nur der Entwurfsmodus - Buttons markieren - entfernen - Strg-Z
Auch die Rahmen in dem Bereich haben ein ähnliches Problem wie ihr seht. Die Lösungsversuche sind angehängt.
Das einzige was mir noch einfällt, worauf ich aber eigentlich keine Lust habe, die Buttons per VBA regelmäßig zu entfernen und neu zu erstellen. (Wenn der Nutzer eh größere Funktionen aufruft und es nicht ins Gewicht fällt.)
Ich habe auch Excel repariert - etwas länger her, Temp Daten zu den Forms gelöscht - hatte alles nicht den gewünschten Erfolg. In den ersten Versionen waren wesentlich mehr Steuerelemente betroffen. Die Datei besteht aus etwa 14 sinnvollen Tabellen, weil die Informationen bei uns leider immer aus verschiedenen Listen abgerufen werden. Derzeit hat es rund 2500 Zeilen Code und es werde noch rund 600 sich dazu gesellen, bis die Datei einen nutzbaren Punkt erreicht.
Gibt es die Möglichkeit Excel zu zwingen die Buttons neu zu zeichnen?
Ist dieser Fehler bekannt und es existiert ein guter Lösungsweg?
Habt ihr eine andere Idee?
Danke
Constantin
Folgende Lösungen VBA basiert habe ich erfolglos getestet:
---
ActiveWorkbook.RefreshAll
---
For Each shp In fixOrte.tblBasisfeld.Shapes
shp.Visible = False
Next
For Each obj In fixOrte.tblBasisfeld.OLEObjects
obj.Visible = False
Next
For Each shp In fixOrte.tblBasisfeld.Shapes
shp.Visible = True
Next
For Each obj In fixOrte.tblBasisfeld.OLEObjects
obj.Visible = True
Next
Userbild

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Buttons verschieben sich unregelmäßig
16.04.2020 13:50:43
volti
Hallo Constantin,
das ist ein uraltes Problem bzgl. Active-X-Elementen, das M$ immer noch nicht gelöst hat. Der Fehler ist bekannt.
Nach Wechsel der Bildschirmauflösung (Umschalten auf Beamer, von Desktop auf Laptop usw.) kann sich die Darstellung (in der Regel die Größe und oder Schriftgröße) mit jedem Klick darauf vergrößern oder auch verkleinern, bis es irgendwann winzig oder so groß wie der Bildschirm ist. Je nachdem, von welcher Auflösung zu welcher Auflösung gewechselt wird.
Ich vermeide deshalb Active-X-Elemente möglichst. Radiobuttons und Checkboxen muss man allerdings wohl daraus verwenden.
Ich gehe mal davon aus, dass es bei Dir auch so ist, dass das also der Grund sein könnte.
Ich setze deshalb bei jeder Blattaktivierung die Größen der Elemente per Makro neu. Seitdem ist Ruhe.
Muss man halt einmalig die Positionen ermitteln. Du musst die Button also nicht jedes mal löschen und neu zeichnen.
Wenn Du nur wenige Elemente hast, kannst Du sie einzeln setzen, ansonsten in einer Schleife. Siehe Beispiel:

Private Sub Worksheet_Activate()
 With ActiveSheet
  With .Combobox1
    .Top = 100: Left = 100
    .Width = 100: .Height = 50
  End With
'usw.
 End With
End Sub
viele Grüße
Karl-Heinz

Anzeige
AW: Buttons verschieben sich unregelmäßig
16.04.2020 15:43:01
Constantin
Hi Karl-Heinz,
danke! Dass war ein großartiger Hinweis. Ich habe ihn aber ein bisschen... nennen wir es flexibler umgesetzt. Funktioniert derzeit, habe nur immer wieder ein Fehler "Auf dieses Mitglied kann nur für eine Gruppe zugegriffen werden." Ich vermute es handelt sich um "Group Box 25" bekomme es aber leider nicht rausgefiltert. Ist nicht so schlimm, in der Funktion finde ich einen Resume Next ganz ok.
Grüße
Constantin

Public Sub test()
Main.VarladenSmall
Dim shp As Shape
Dim obj As Variant
On Error Resume Next
For Each shp In fixOrte.tblBasisfeld.Shapes
For Each obj In shp.GroupItems
If obj.Type = 12 Then
Debug.Print obj.Name
obj.Left = obj.Left + 1
obj.Left = obj.Left - 1
End If
Next
Next
End Sub

Anzeige
AW: Buttons verschieben sich unregelmäßig
16.04.2020 15:57:35
volti
Hallo Constantin,
schön, dass es Dich weitergebracht hat.
Und genauso bzw. so ähnlich wie Du es gemacht hast war mein Hinweis in einer Schleife auch gemeint. Eine zur Aufgabe passende intelligente Lösung.
viele Grüße
KH

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige