Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1404to1408
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 Zellen prüfen auch wenn Formel vorhanden

Leere Zellen prüfen auch wenn Formel vorhanden
02.02.2015 10:06:46
Thomas
Hallo Leute ich habe hier am 14.1 diesen Vorschlag bekommen, klappt alles super.
https://3c.gmx.net/mail/client/dereferrer?redirectUrl=http%3A%2F%2Fwww.herber.de%2Fforum%2Farchiv%2F1400to1404%2Ft1402771.htm
Meine Frage ist in der letzten Spalte AG steht eine Formel jedoch kein Wert. Mit If IsEmpty spuckt er mir ein Fehler aus, da er bestimmt die Formel dazu erkennt.
Wie kann ich prüfen ob nur der Wert leer ist obwohl eine Formel (im Hintergrund) drin steht.
Ich glaube das sollte mit Range().Value ="" gehen? wo muss ich das einbauen in angegebenen Code?
Ich danke für jede Hilfe
Lg
Thomas
'Erstellt unter Excel 2010 deutsch

Sub Leere_in_Lenkrad_Rot_neu()
Dim wks As Worksheet, rngRow As Range, rngZelle As Range, Farbe As Long
Set wks = ActiveWorkbook.Worksheets("Lenkrad")
Farbe = 255 'Colorwert der Markierfarbe 255 = rot
Application.ScreenUpdating = False
With wks.Range("C19:AG43") 'Bereich ggf. anpassen
.Interior.ColorIndex = -4142 'xlColorIndexNone
For Each rngRow In .Rows
If Application.WorksheetFunction.CountA(rngRow) > 0 Then
For Each rngZelle In rngRow.Cells
Select Case rngZelle.Column
Case 13 'Spalte M
If IsEmpty(rngZelle) Then
If fncCheckLeer(wks, rngZelle.Row, Array(16, 17, 18, 32)) = True Then
'alles ok
Else
'Zelle ist leer - mindestens eine der abhängigen Zellen ist ausgefüllt
rngZelle.Interior.Color = Farbe
End If
End If
Case 16, 17, 18, 32 'Spalte P. Q, R und AF
If Not IsEmpty(wks.Cells(rngZelle.Row, 13)) And IsEmpty(rngZelle) Then
rngZelle.Interior.Color = Farbe
End If
Case 14 'Spalte N
If IsEmpty(rngZelle) Then
If fncCheckLeer(wks, rngZelle.Row, Array(19, 20, 21)) = True Then
'alles ok
Else
rngZelle.Interior.Color = Farbe
End If
End If
Case 19, 20, 21 'Spalte S, T und V
If Not IsEmpty(wks.Cells(rngZelle.Row, 14)) And IsEmpty(rngZelle) Then
rngZelle.Interior.Color = Farbe
End If
Case 15 'Spalte O
If IsEmpty(rngZelle) Then
If fncCheckLeer(wks, rngZelle.Row, Array(22, 23, 24, 33)) = True Then
'alles ok
Else
rngZelle.Interior.Color = Farbe
End If
End If
Case 22, 23, 24, 33 'Spalte W, X, Y und AG
If Not IsEmpty(wks.Cells(rngZelle.Row, 15)) And IsEmpty(rngZelle) Then
rngZelle.Interior.Color = Farbe
End If
Case Else
If IsEmpty(rngZelle) Then
rngZelle.Interior.Color = Farbe
End If
End Select
Next
End If
Next rngRow
End With
Application.ScreenUpdating = True
End Sub
Function fncCheckLeer(wks As Worksheet, ByVal Zeile As Long, arrSpalten As Variant) As Boolean
'Prüft, ob alle Spalten im Array in der Zeile leer sind
Dim intSpalte As Integer
fncCheckLeer = True
For intSpalte = LBound(arrSpalten) To UBound(arrSpalten)
If Not IsEmpty(wks.Cells(Zeile, arrSpalten(intSpalte))) Then
fncCheckLeer = False
Exit For
End If
Next
End Function

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Was spuckt denn deine Formel
02.02.2015 10:41:46
Jack_d
für einen Wert aus? Also wenn "kein Wert" erreicht wird?
"0" " " ?
Ansonsten da würde ich es vermutlich einbauen
Case 22, 23, 24, 33 'Spalte W, X, Y und AG
If Not IsEmpty(wks.Cells(rngZelle.Row, 15)) And IsEmpty(rngZelle) And rngZelle   _
"" Then
rngZelle.Interior.Color = Farbe
End If
Grüße
Anzeige

352 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige