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

Farbe aller CommandButtons änern

Farbe aller CommandButtons änern
mtremer
Moin,
und da habe ich schon wieder eine Frage. Diesmal lässt sich das deutlich einfacher formulieren.
Ich habe ca. 40 CommandButtons, die sich vom Namen her grundsätzlich unterscheiden. Es gibt bei der Namensvergabe keine Logik und keine Zahlenfolge.
Diese CommandButtons werden je nach Gebrauch eingefärbt. Am Ende will ich diese mit nur einem Code wieder zurücksetzen.
Wie ich das für die einzelnen Button mache, weiß ich:
Private Sub CommandButton_Farbe_zurücksetzen_Click()
With CommandButton_Hinz
.BackColor = RGB(216, 208, 200)
End With
With CommandButton_Kunz
.BackColor = RGB(216, 208, 200)
End With
End Sub
Ich habe auch schon aus älteren Beiträgen Schleifen herausgesucht, die allerdings alle nicht passen. Dadurch, dass ich die Farbe mit With ändern muss, komme ich mit den anderen Beiträgen leider nicht weiter.
Könnt Ihr mir bitte nochmal helfen?
Danke.
Viele Grüße
Marco

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Farbe aller CommandButtons änern
17.07.2012 14:44:03
Matze,Matthias
Hallo Marco,
benutz doch mal den Makrorecorder.
Den Entwurfsmodus in der Entwicklungsumgebung einschalten, alle Buttons markieren,rechte Maustaste Eigenschaften und dein Farbe wählen , Entwurfsmudos wieder aus.
Gruß Matze
AW: Farbe aller CommandButtons änern
17.07.2012 14:54:46
Helmut
Hallo,
habe verschiedene Controls in einer Userform die ich folgendermaßen anspreche
(kann dabei auf die unterschiedlichen Typen reagieren)
For i = 0 To UfObject.Controls.Count - 1
Select Case UCase(TypeName(UfObject.Controls(i)))
Case "TEXTBOX"
UfObject.Controls(i).BackColor = RGB(216, 208, 200)
Case "OPTIONBUTTON", "CHECKBOX"
UfObject.Controls.BackColor = RGB(216, 208, 200)
Case "COMBOBOX", "LISTBOX"
UfObject.Controls..BackColor = RGB(216, 208, 200)
End Select
Next i
UfObject ist bei mir die Userform könnte aber auch ein Worksheet sein.
Vielleicht kannst Du diese Vorlage für Deine Zwecke umbiegen.
Die Anzahl der Textboxen ist damit wegen der Schleife skalierbar.
Gruß
Helmut
Anzeige
Ooops, das macht der nicht mit...
17.07.2012 14:54:49
Matze,Matthias
Hallo Marco,
ok ich dachte er übernimmt die Eigenschaften , aber der Recorder zeichnet nur die Buttons auf.
Ich suche nach einer anderen Lösung. Lasse solange den Beitrag offen.
Matze
AW: Ooops, das macht der nicht mit...
17.07.2012 14:59:59
mtremer
da warst du schneller
OK, ich warte ;-)
AW: Farbe aller CommandButtons änern
17.07.2012 14:58:43
mtremer
Hi Matze,
das hatte ich auch schon. Leider klappt das nicht, da im aufgezeichneten Code leider aufgezeichneter Code angezeigt wurde ;-)
Ich hab Dir den nochmal rauskopiert:
Sub Makro21()
' Makro21 Makro
End Sub
Ich hatte mich letzte Woche schon über das Ergebnis geärgert. Ich wollte dadurch den Farbcode herausfinden. Das ging leider nicht. Über Google konnte ich immerhin einen Konverter finden, der mir den in den Eigenschaften HEX-Code in RGB übersetzt.
Gibt es nicht irgendeine Schleife, die sagt "With alle CommandButton - .BackColor - End With"?
Danke.
Viele Grüße
Marco
Anzeige
So , teste das mal,...
17.07.2012 15:13:36
Matze,Matthias
Hallo Marko,
Option Explicit
Public Sub machs_mit_Ole()
Dim I As Integer
'Anzahl deiner Commandbuttons ändern
For I = 1 To 3
'Farbe und Tabelle anpassen
With Tabelle1
.OLEObjects("CommandButton" & I).Object.BackColor = vbRed
End With
Next I
End Sub
Gruß Matze
AW: So , teste das mal,...
17.07.2012 15:23:28
mtremer
Hi Matze,
den Code hatte ich vonhin auch schon. Er funktioniert leider nur teilweise, und zwar nur bei den Buttons, die durchnummeriert sind.
Bei CommandButton1 bis CommandButton10 funktioniert das einwandfrei. Aber leider haben die anderen Buttons Namen, die keiner Logik unterliegen. Mal Hinz mal Kunz ;-)
Hast Du noch eine Idee?
Helmut hatte auch schon etwas vorgeschlagen, da komme ich leider mit meinem bescheidenen VBA-Wissen nicht mit...
Danke.
Viele Grüße
Marco
Anzeige
AW: So , teste das mal,...
17.07.2012 15:38:20
Matze,Matthias
Hallo Marko,
da habe ich leider keinen Lösungsansatz.
Da müssen mal die Profies ran.Lasse offen .
Kannst du denn nicht den Buttons Nummern vergeben? Eigenschaft / Name
Die Caption(Beschriftung) eines einzelnen Buttons ist doch Eindeutig oder?
Gruß Matze
AW: So , teste das mal,...
17.07.2012 15:57:18
mtremer
richtig, die Namen sind eindeutig. Allerdings keine fortlaufende Zahl. Daher musste ich den Code vorhin leider auch schon aussortieren. Gibt es keinen Befehl "alle CommandButtons"?
Und jetzt gibt es noch ein weiteres Problem: die im Eigenschaften angezeigte HEX-Zahl (&H8000000F&) ist gar nicht so leicht umzurechnen. Ich habe nur ein Annäherungswert in RGB(212, 208, 200). Aber das scheint je nach Rechner anders zu sein...
Kennst Du die Bezeichnung für VBA für die Farbei "Schaltfläche"?
Danke.
Viele Grüße
Marco
Anzeige
AW: Farbe aller CommandButtons änern
17.07.2012 16:10:47
Helmut
Hallo,
hab das Ganze nochmal in einem Sheet getestet
Sub test()
Dim x As OLEObject, sh   As Worksheet, i As Long
Set sh = ActiveSheet
For Each x In sh.OLEObjects
If x.progID = "Forms.CommandButton.1" Then x.Object.BackColor = vbRed
Next x
End Sub
Damit konnte ich die Farben aller Command Buttons im Sheet ändern
progID gibt den Namen des Objects zurück. Hier erwarte ich den "Forms.CommandButton.1"
So heißen die, die ich zumindest in meinem Sheet angelegt habe (O2010)
Das ist der allgemeine Name der Active-X Steuerelemente und hat nichts mit dem Namen auf dem Sheet zu tun. Möglicherweise haben Deine eine andere progID
Gruß
Helmut
Anzeige
AW: Farbe aller CommandButtons änern
17.07.2012 16:18:25
mtremer
WOW, das hat auf Anhieb funktioniert!
Da bleibt nur noch die Frage, wie die Farbe "Schaltfläche" bei VBA heißt. Der Umrechnungswert aus einem bei Google gefundenen Konverter gibt mir vom HEX-Code &H00C8D0D4& den RBG-Wert RGB(212, 208, 200). Dieser passt leider nicht ganz...
Danke.
Viele Grüße
Marco
AW: Farbe aller CommandButtons änern
17.07.2012 16:36:48
Helmut
Hallo,
so hineinschreiben
If x.progID = "Forms.CommandButton.1" Then x.Object.BackColor = &HC8D0D4
super, es klappt
17.07.2012 16:39:35
mtremer
Helmut, ich danke Dir!
Sorry, dass ich nicht schon auf Deinen Vorschlag von vorhin geantwortet hab.
Viele Grüße
Marco

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige