OptionButton, LinkedCell per Schleife in VBA ändern

Moderator: ModerationP

OptionButton, LinkedCell per Schleife in VBA ändern

Beitragvon Hasi69 » 15. Jul 2019, 17:19

Hallo!
Ich habe hier jede Menge OptioButtons.
Gibt es eine Lösung per Schleife die LinkedCell Eigenschaft für OptionButtons zu ändern?

Code: Alles auswählen
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Shapes("OptionButton676").OLEFormat.Object.LinkedCell = "Data!cx42"
ActiveSheet.Shapes("OptionButton677").OLEFormat.Object.LinkedCell = "Data!cx43"
ActiveSheet.Shapes("OptionButton678").OLEFormat.Object.LinkedCell = "Data!cx44"
ActiveSheet.Shapes("OptionButton679").OLEFormat.Object.LinkedCell = "Data!cx45"
ActiveSheet.Shapes("OptionButton680").OLEFormat.Object.LinkedCell = "Data!cx46"
ActiveSheet.Shapes("OptionButton681").OLEFormat.Object.LinkedCell = "Data!cx47"
ActiveSheet.Shapes("OptionButton682").OLEFormat.Object.LinkedCell = "Data!cx48"
ActiveSheet.Shapes("OptionButton683").OLEFormat.Object.LinkedCell = "Data!cx49"
ActiveSheet.Shapes("OptionButton684").OLEFormat.Object.LinkedCell = "Data!cx50"
ActiveSheet.Shapes("OptionButton685").OLEFormat.Object.LinkedCell = "Data!cx51"
ActiveSheet.Shapes("OptionButton686").OLEFormat.Object.LinkedCell = "Data!cx52"
ActiveSheet.Shapes("OptionButton687").OLEFormat.Object.LinkedCell = "Data!cx53"
ActiveSheet.Shapes("OptionButton688").OLEFormat.Object.LinkedCell = "Data!cx54"
ActiveSheet.Shapes("OptionButton689").OLEFormat.Object.LinkedCell = "Data!cx55"
ActiveSheet.Shapes("OptionButton690").OLEFormat.Object.LinkedCell = "Data!cx56"

End Sub
Hasi69
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 174
Registriert: 14. Mär 2013, 10:59

Re: OptionButton, LinkedCell per Schleife in VBA ändern

Beitragvon slowboarder » 15. Jul 2019, 17:46

HI
natürlich kann man das per schleife machen.
ob das sinnvoll ist, hängt davon ab ob es zwischen Optionbutton und LinkedCell einen regelmäßigen oder berechenbaren Zusammenhang gibt.
der kann beispielsweise über den Namen (wie in deinem Beispiel) oder auch über die Position des Optionbuttons bestehen.

in deinem Beispiel könnte man es so machen:

Code: Alles auswählen
for i = 0 to 14
    ActiveSheet.Shapes("OptionButton" & 676 + i).OLEFormat.Object.LinkedCell = "Data!cx" & 42 + i
Next




btw, das SelectionChange-Event ist das denkbar schlechteste Platz für so ein Makro.
willst du wirklich bei jeder neu selektierten Zelle LinkedCell neu festlegen? das wäre nur dann sinnvoll, wenn die LinkedCell auch in abhängigkeit der selektierten Zelle (Target) geändert werden müsste.

Gruß Daniel
slowboarder
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 26258
Registriert: 18. Apr 2009, 13:33

Re: OptionButton, LinkedCell per Schleife in VBA ändern

Beitragvon Gast » 16. Jul 2019, 06:33

Vielen Dank für deine Mühe.
Aber es klappt leider nicht.
Es erscheint der Fehler "Das Element mit dem angegebenen Namen wurde nicht gefunden".
Gast
 

Re: OptionButton, LinkedCell per Schleife in VBA ändern

Beitragvon RPP63 » 16. Jul 2019, 07:05

Moin und off topic!

Nur meine Meinung!
Wozu um Himmels Willen braucht man hunderte OptionButtons?
Die Dinger sind dafür da, um in einem Userform oder meinethalben auch in einem Formular-Tabellenblatt in überschaubarer Zahl Optionen zu setzen.
Imo keinesfalls jedoch taugen sie als Zeilenoption in einer umfangreichen Datenliste.
Dafür nehme ich z.B. "Buchstaben" aus der Wingdings-Schriftfamilie.
Das hält die Datei schlank und lässt sich später simpel an neue Gegebenheiten anpassen.
Das Manipulieren der Option steuere ich dann zum Beispiel per Rechts- oder Doppelklick.

Two Cents und Gruß
Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10343
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], HKindler, TommyDerWalker und 20 Gäste