Prüfen ob Hintergrundfarbe in VBA
 |
Betrifft: Prüfen ob Hintergrundfarbe in VBA
von: Christoph
Geschrieben am: 02.09.2003 22:20:17
Hallo bestes Forum,
ich knabber mal wieder an einem Problem bei VBA:
Wenn in einer Zeile in der Spalte K nichts eingetragen ist und in Spalte M (gleiche Zeile) ist ein Eintrag und die Hintergrundfarbe von der Zelle in Spalte M kommt in jeder einzelnen Zelle der Spalten A bis J (auch wieder nur diese Zeile) nicht vor, dann kopiere die Zelle aus Spalte M nach Spalte K. Nach diesem Schema werden alle Zeilen durchlaufen.
Mein Problem:
Wie formuliere ich das Thema: "Hintergrundfarbe von der Zelle in Spalte M kommt in jeder einzelnen Zelle der Spalten A bis J" nicht vor?
Sub kopiere_wenn_Farbe()
lRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = lRow + 1 To 3 Step -1
CIndex = Cells(i, 13).Interior.ColorIndex
If Cells(i, 11) = 0 And Cells(i, 13) <> 0 And ???<>CIndex Then
Cells(i, 13).Copy
Cells(i, 11).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= False, Transpose:=False
End If
Next i
...
End Sub
Ich benötige also für jede Zeile i einen Durchlauf mit Farbprüfung für die Spalten A bis J.
Ich könnte hierbei natürlich jede einzelne Spalte von A bis J ansprechen, aber das scheint mir viel zu umständlich.
schon vorab vielen Dank
Gruß
Christoph
Betrifft: AW: Prüfen ob Hintergrundfarbe in VBA
von: PeterW
Geschrieben am: 02.09.2003 22:46:21
Hallo Christoph
mal als Ansatz:
If Cells(i, 11) = 0 And Cells(i, 13) <> 0 Then
bolNichtCopy = false
For intcount = 1 To 10
If Cells(i, intcount).Interior.ColorIndex = Cells(i, 11).Interior.ColorIndex Then
bolNichtCopy = True
Exit For
End If
Next
End If
If Not (bolNichtCopy) Then
Cells(i, 13).Copy
Cells(i, 11).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Gruß
Peter
Betrifft: Das klingt gut
von: Christoph
Geschrieben am: 02.09.2003 23:05:26
Hi Peter,
die Prüfung mit dem Bolean gefällt mir. Alleine wäre ich nie darauf gekommen. Zumal meine VBA-Kenntnisse noch viel Raum zur Entwicklung haben (sprich: in meiner Birne ist noch nicht viel von dem Thema drin...)
Vielen herzlichen Dank, ich werd mich morgen mit deinem vielversprechenden Ansatz beschäftigen.
Vielleicht kannst du mir ja noch ne Frage am Rande beantworten.
Wieso schreibt man die Variable bei "If Not (bolNichtCopy) Then" in Klammern?
ich hab die sehr zu danken
Gruß
Christoph
Betrifft: AW: Das klingt gut
von: PeterW
Geschrieben am: 02.09.2003 23:13:51
Hallo Christoph,
die Klammern sind nicht nötig, hatte wohl gleichzeitig noch einen anderen Ansatz im Kopf. :-)
Der Ansatz ist nicht getestet und es funktioniert auch nur, wenn die Zellfarbe nicht durch eine bedingte Formatierung zugewiesen wurde.
Gruß
Peter
Betrifft: Merci o.T.
von: Christoph
Geschrieben am: 02.09.2003 23:23:03
Betrifft: AW: Das klingt gut
von: PeterW
Geschrieben am: 02.09.2003 23:42:11
Hallo Christoph,
da fällt mir gearde noch was auf: wenn in einer Zelle 0 steht ist sie nicht leer. Also die Prüfung auf leer mit Cells(Zeile, Spalte) = ""
Gruß
Peter
Beiträge aus den Excel-Beispielen zum Thema " Prüfen ob Hintergrundfarbe in VBA"