Clever-Excel-Forum

Normale Version: VBA ToggleButton Teil 1 (Farbe ins Spiel bringen)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5
Hallo Jörg,

leider kann ich nichts Ungewöhnliches feststellen.
Fakt ist, dass sich ActiveX-Elemente in einem Tabellenblatt
nicht exakt so verhalten wie in einer Userform.
Was aber unbedingt noch gemacht werden sollte, ist das sofortige Deaktivieren
des Buttons nach dem Klick. Beim CommandButton gibt es dafür
die TakeFocusOnClick-Eigenschaft, welche aber bei bei den anderen Elementen fehlt.
Schreibe einfach in die letzte Zeile ActiveCell.Activate.

Gruß Uwe
Hi Uwe, das mit dem ActiveCell.Activate habe ich verstanden, aber das andere Problem bleibt... So sieht das Kacke aus. Und so werde ich wohl meine kleine Spielerei wohl anders lösen müssen...
Hallo zusammen, nachdem ich mit meiner ursprünglichen Idee komplett gescheitert bin, habe ich mir überlegt, ob man das nicht über eine Autoform oder einem Textfeld lösen könnte, das sich per Anklicken anders färbt...? Ist das wohl möglich..?
Hi Jörg,

ich hatte schon befürchtet, dass Du nicht nachfragst.

Hier ein Beispiel mit zwei Autoformen Rechteck.

[attachment=617]

Gruß Uwe
Hallo Uwe, kannst du Gedanken lesen..? Ich hatte schon angefangen ff. zu schreiben..:

Hallo, nur nochmal nachgehakt. Ich möchte nunmehr mehrere Autoformen die frei in der Tabelle "liegen" durch Anklicken eine Frabe zuweisen (später auch einen Bereich, aber da bin ich noch nicht)
Bild unten sollen die Zustände 1 und 2 zeigen - also ein Klick Zustand 1 (Farbe 1) nochmal Klick Zustand 2 (Farbe 2)

[URL=
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Den ersten Schritt denke ich, habe ich gefunden..:

Public Sub shape_2_BeiKlick()
With ActiveSheet
.Shapes("shape_2").Fill.ForeColor.SchemeColor = 3
End With
End Sub
Hallo Uwe, ich habe bislang keine Möglichkeit gefunden die RGB-Farben einzusetzen.. ;-(

Ich hätte nämlich gern diese beiden Farben vom Beitrag #15 ...
Hi Jörg,

statt .Fill.ForeColor.SchemeColor = 50
z.B. .Fill.ForeColor.RGB = RGB(0, 222, 0)

Gruß Uwe
Hallo Uwe mal sehen, wie weit ich komme... danke schon mal bis hierher...
Hi Uwe, okay, das Farbenspiel habe ich hinbekommen... Das war durch deine Vorarbeit nicht mehr wirklich schwierig. Jetzt möchte ich, wenn ich eingeschaltet habe (keine MessageBox, sondern) eine 1 in Zelle E1 geschrieben wird beim Auschalten soll dort eine 0 stehen... ... da beisse ich noch auf Granit... Kannst du mich bitte nochmal "anstoßen"..?
Hi Jörg,

jetzt wird es noch viel einfacher:

Code:
Sub Rechteck_BeiKlick()
  Dim oShape As Shape
  Dim rngV As Range
  Set oShape = ActiveSheet.Shapes(Application.Caller)
  With oShape
    'Verweis auf linke obere Zelle unter Button um eine Spalte nach rechts versetzt
    Set rngV = .TopLeftCell.Offset(0, 1)
    If rngV.Value <> 1 Then
      rngV.Value = 1
      .Fill.ForeColor.RGB = RGB(204, 204, 255)
    Else
      rngV.Value = 0
      .Fill.ForeColor.RGB = RGB(51, 153, 255)
    End If
  End With
End Sub

Gruß Uwe
Seiten: 1 2 3 4 5