Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
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

Leere Felder farbig einfärben

Leere Felder farbig einfärben
05.11.2019 12:15:51
schlu
Hallo zusammen,
ich habe folgenden sehr gut funktionierenden Code (auch dank der Hilfe des Forums hier :) ) und würde gerne noch eine Erweiterung vornehmen:
Es sollen zusätzlich bei Betätigen des CommandButtons alle leeren Felder farbig markiert oder umrandet werden (z.B. rot). wenn man dann das farbige Feld beschreibt und erneut den Command Button klickt, soll dann die Farbe wieder weggehen bzw. wie gehabt nur bei leeren Feldern erscheinen.
Dies ist mein Code, der die Ergänzung braucht:

Private Sub CommandButton22_Click()
Dim sFileName       As String
Dim myRange As Range, cel As Range
Set myRange = Tabelle1.Range("A1:BX26")
Dim objSh As Shape
Dim Leer As String, LeerCombo As String, msgText As String
'Überprüfen der Comboxen
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
If objSh.OLEFormat.Object.Object.ListIndex = -1 Then
If LeerCombo = "" Then
LeerCombo = objSh.Name
Else
LeerCombo = LeerCombo & ", " & objSh.Name
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
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\12_Test VBA Speicherort\X" & sFileName & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.DisplayAlerts = True
ActiveWorkbook.Close savechanges:=True 'Datei shliessen und ggf. speichern
Application.Quit 'Excel beenden ?
Else
If Leer  "" Then
Leer = Left(Leer, Len(Leer) - 2)
msgText = "Die Zellen " & Leer
End If
If LeerCombo  "" Then
msgText = msgText & IIf(Leer  "", vbLf & "und die", "Die") & " Comboboxen " &  _
LeerCombo
End If
msgText = msgText & vbLf & "müssen noch ausgefüllt werden."
MsgBox msgText
End If
End Sub

Als Farbcode hatte ich schonmal folgendes:

Private Sub CommandButton21_Click()
Dim myRange As Range, cel As Range
Set myRange = Tabelle1.Range("A1:BX26")
myRange.Interior.ColorIndex = xlNone
For Each cel In myRange
If Trim(cel.Value) = "" Then cel.Interior.ColorIndex = 3
Next cel
End Sub

Jedoch macht der Code alle anderen Zellen vorher weiß, was ich nicht will, weil dadurch das Layout verändert wird:
Ich freue mich über Eure Hilfe!
Danke
Lg Schlu

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Felder farbig einfärben
05.11.2019 13:40:59
schlu
Hallo nochmal,
ich habe es jetzt hingekriegt, dass die Zellen rot werden.
For Each cel In myRange
If Trim(cel.Value) = "" Then cel.Interior.ColorIndex = 3
Next cel
Jedoch möchte ich, dass wenn man dann die farbige Zelle beschreibt und erneut den CommandButton klickt, die nun nicht mehr leere Zelle ihre Ursprungsfarbe (sprich gar keine Farbe) erhält.
Das bekomme ich noch nicht hin. wer kann mir helfen?
Danke!
AW: Leere Felder farbig einfärben
05.11.2019 14:44:23
schlu
Ich habs geschafft :)
habe einfach vorher die farbe auf weiß gesetzt.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige