Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1420to1424
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

Steuerelement anhand Position ansprechen

Steuerelement anhand Position ansprechen
14.04.2015 15:52:03
Sven
Hi zusammen,
kann ich ein Steuerelement (Button, Checkbox) anhand seiner Position ansprechen ohne den Namen zu kennen? Falls ja: Wie?
Hintergrund ist der Folgende: Ich habe eine Liste von Datensätzen, zu jedem Datensatz gehören mehrere Steuerelemente. Die Namen hab ich anhand der Zeile in der sie erstellt werden vergeben. Knopf5, Knopf6 usw...
Wenn die Datensätze nun umsortiert werden verändert sich allerdings die Position der Steuerelemente. Ich weiß also nicht mehr, welche in welcher Zeile sind. Nun würde ich gerne alle umbenennen um das wieder richtig zu stellen.
Also der Button der nun in Zeile 5 steht soll ab jetzt Knopf5 heißen usw.
Ich hatte auch bereits den Fall, dass ein Button gefehlt hat, weil ein Nutzer etwas von Hand eingetragen hat. Diesen Fall würde ich nach Möglichkeit gerne direkt mit abdecken. Kommt sowas nochmal vor, kann ich einfach per Autofilter neu sortieren und Problem gelöst.
Im Optimalfall deckt die Lösung also die Option ab, dass ein Button nicht existiert oder ein Name doppelt vergeben ist. Daher wäre ein einfaches neu benennen anhand der aktuellen Position eigentlich die Optimallösung, denn die kenne ich ja.
Alternative: Alle Steuerelemente in einer Spalte löschen und neu erstellen. Kann gerne auch die ganze Spalte wegfallen, da ist sonst nichts drin aber auch hier komm ich nicht zum Erfolg, beim Löschen der Spalte werden die Steuerelemente nicht immer mitgelöscht (oder ich hab das Schema nicht durchschaut)
Danke im vorraus für die Hilfe!
Sven

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Steuerelement anhand Position ansprechen
14.04.2015 16:10:28
EtoPHG
Hallo Sven,
Ich weiss nicht, warum Excel-Designer immer wieder ActiveX- oder Formularsteuerelemente einsetzen um datensatzabhängige Aktionen durchzuführen. Da läufst du notgedrungen in solche Situationen.
Die einfachste Alternative ist Zellen in einer oder meherer Spalten so zu formatiern, dass sie für den Anwender 'ähnlich' wie Buttons/Checkboxes verhalten und dann mit dem Worksheet_BeforeRightClick oder Worksheet_BeforeDoubleClick einen generischen Code zu durchlaufen, der leicht feststellen kann auf welcher Zeile (Row) er sich befindet. Das ist wesentlich einfacher zu warten/ändern und bedeutend weniger Ressourcen fressend und Probleme mit der Umsortierung oder Reihenfolge/Position sind hinfällig.
Es lässt sich aber auch mit VBA Code feststellen in welcher Zeile das Shape des Steuerelements positioniert ist, Stichwort: Eigenschaft .TopLeftCell
Zeig uns doch mal einen Code von so eine Knopfn oder CheckBoxN
Gruess Hansueli

Anzeige
AW: Steuerelement anhand Position ansprechen
14.04.2015 16:28:46
Sven
Hallo Hansueli,
ehrlich gesagt nutz ich Buttons und Checkboxes weil ich niemals auf die Idee gekommen wäre Zellen entsprechend umzuformatieren. Ich mag die Idee aber ;-) Thx dafür.
Ich erstelle die Elemente mit diesem Code:
x = Range("Q" & zeile).Left
y = Range("Q" & zeile).Top
w = Range("Q" & zeile).Width
h = Range("Q" & zeile).Height
Tabelle1.CheckBoxes.Add(x, y, w, h).Select
With Selection
.Caption = "Top 10?"
.Name = "Kasten" & zeile
End With
x = Range("R" & zeile).Left
y = Range("R" & zeile).Top
w = Range("R" & zeile).Width
h = Range("R" & zeile).Height
Tabelle1.Buttons.Add(x, y, w, h).Select
With Selection
.Caption = "Löschen"
.OnAction = "AngebotLoeschen"
.Name = "Loeschen" & zeile
End With
mit .TopLeftCell kann ich die Position eines Steuerelements raus bekommen, nicht aber welches Steuerelement sich an einer bestimmten Position befindet, oder?

Anzeige
AW: Steuerelement anhand Position ansprechen
14.04.2015 16:14:53
Rudi
Hallo,
das kommt mir suboptimal vor. Wozu 100erte Steuerelemente?
Die Umbenennerei wird problematisch, da es immer nur einen Button eines Namens geben kann.
Ansonsten:
Alle Steuerelemente durchgehen und anhand ihrer TopLeftCell-Eigenschaft die Zeile ermitteln und umbenennen.
Gruß
Rudi

AW: Steuerelement anhand Position ansprechen
14.04.2015 16:39:11
Sven
Hi Rudi,
wie würdest du das Problem lösen?
Es ging darum, dass ein Team Datensätze erfassen kann. Ein zweites Team sucht sich aus allen diesen Datensätzen wöchentlich 10 bis 20 aus und arbeitet damit weiter.
Im Endeffekt gibt es 2 Steuerelemente pro Datensatz + ein paar Allgemeine (Neuen Satz erfassen usw.).
Das eine ist die Checkbox mit der Team 2 die Datensätze auswählen kann, das zweite ist ein Button zum löschen des Satzes. Über die allgemeinen Steuerelemente kann Team 2 Makros aktivieren, die mit den ausgewählten Sätzen weiter arbeiten.
Theoretisch wäre es auch möglich, dass Team 2 in einer Spalte für jeden Datensatz eine 1 einträgt zum auswählen und eine 0 zum löschen oder sowas in der Art aber das erscheint mir weniger Nutzerfreundlich. Und ich hab auch die Probleme beim umsortieren nicht vorhergesehen ehrlich gesagt.
Grüße,
Sven
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige