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

Combobox färben

Combobox färben
05.11.2019 14:42:59
schlu
Hallo zusammen,
ich hätte noch eine Frage:
Wie kann ich alle Comboboxen (alle sind Drop-Down) einfärben (z.B. rot), wenn sie leer sind?
Danke!
Lg schlu

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox färben
05.11.2019 14:46:03
Werner
Hallo,
und wo sind diese Comboboxen? In einer Userform? Auf einem Tabellenblatt? Wenn auf Tabellenblatt Combobox aus den Steuerelementen oder ActiveX?
Gruß Werner
AW: Combobox färben
05.11.2019 15:17:17
schlu
Hi,
Tabellenblatt und ActiveX
:)
AW: Combobox färben
05.11.2019 15:51:50
schlu
ach ja, wichtig ist mir, dass ich nicht jede einzelne Combobox anreden muss, sonndern dass ich durch eine Funktion alle 30 Boxen gleichzeitig überprüfen kann.
Wenn eine oder mehrere der 30 Boxen leer ist, soll die oder diese rot (oder andersfarbig) gefärbt werden.
Vielen Dank!
AW: Combobox färben
05.11.2019 16:19:34
Werner
Hallo,
so:
Public Sub Prüfung()
Dim ole As OLEObject
'Blättname anpassen
With Worksheets("Tabelle1")
For Each ole In .OLEObjects
If TypeName(ole.Object) = "ComboBox" Then
ole.Object.BackColor = IIf(ole.Object.Value = "", &HFF&, &H80000005)
End If
Next ole
End With
End Sub
Gruß Werner
Anzeige
AW: Combobox färben
06.11.2019 08:44:24
schlu
Hallo Werner,
vielen Dank!
Geht das wohl auch, innerhalb eines Commandbuttons, der bereits andere Felder auf "leer" überprüft und eine Messagebox ausgibt?
Hier ist mein Code, der bereits für die Prüfung der leeren Felder und Generation einer Msgbox etc gut funktioniert und wo deine obige Prüfung mitintegriert werden sollte.
Private Sub CommandButton22_Click()
Dim sFileName       As String
Dim myRange As Range, cel As Range
Set myRange = Tabelle1.Range("A1:CC16")
Dim objSh As Shape
Dim Leer As String, LeerCombo As String, msgText As String
' rote Zellen weiß färben und leere Zellen rot färben
For Each cel In myRange
If cel.Interior.ColorIndex = 3 Then cel.Interior.ColorIndex = 2
If Trim(cel.Value) = "" Then cel.Interior.ColorIndex = 3
Next cel
'Überprüfen der Comboxen, Steuerelemente sind msoOLEconrolobjects
For Each objSh In Tabelle1.Shapes
With objSh
If .Type = msoOLEControlObject Then
'Überprüfen der Active-X Comboboxen
If InStr(LCase(.OLEFormat.progID), "combobox") > 0 Then  ' combobox ist als  _
Wort enthalten
If objSh.OLEFormat.Object.Object.ListIndex = -1 Then   'gleich minus 1  _
bedeutet leer und größer minus 1 /0 bedeutet gefüllt
If LeerCombo = "" Then
LeerCombo = objSh.Name   'Der Name des Object Shapes, sprich hier Combo  _
box
Else
LeerCombo = LeerCombo & ", " & objSh.Name   'Aufreihung
End If
End If
End If
ElseIf .Type = msoFormControl Then
'Überprüfen der FormControl-Comboboxen (DropDowns)
If .FormControlType = xlDropDown Then
If objSh.ControlFormat.ListIndex = 0 Then
If LeerCombo = "" Then
LeerCombo = objSh.Name
Else
LeerCombo = LeerCombo & ", " & objSh.Name  'Aufreihung
End If
End If
End If
End If
End With
Next
For Each cel In myRange
If cel.Address = cel.MergeArea(1).Address And cel.Value = "" Then _
Leer = Leer & cel.Address & ", "
Next
If Len(Leer & LeerCombo) = 0 Then 'alle Zellen sind ausgefüllt
'Dateiname aus Combobox holen
sFileName = Format(Date, "yyyy/mm/dd_") & "Verpackung Produktionslinie_" & "Linie " & _
ComboBox21.Value
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\SchluetO\Desktop\OliviaSchlüter\12_Test VBA Speicherort\BDE_Verpackung  _
Produktionslinie\" & sFileName & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.DisplayAlerts = True
Application.Quit
Else
If Leer  "" Then
Leer = Left(Leer, Len(Leer) - 2)
msgText = "Die roten Felder "
End If
If LeerCombo  "" Then
msgText = msgText & IIf(Leer  "", vbLf & "und die", "Die") & " Drop-Down-Felder " _
End If
msgText = msgText & vbLf & "müssen noch ausgefüllt werden."
MsgBox msgText
End If
End Sub

Vielen Dank!
Anzeige
AW: Combobox färben
06.11.2019 10:34:21
Werner
Hallo,
was soll das den jetzt? Erst ging es um ActiveX Comboboxen und jetzt gibt es da ja wohl noch Comboboxen aus den Formularsteuerelementen.
Gruß Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige