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

VBA If mit Farb-Code

VBA If mit Farb-Code
15.12.2022 13:49:17
Christian
Hallo
Die Formel klappt super, bis auf auf den FarbCode.
Der Haken ist vermutlich, weil ich nach dem Namen in der Zeile suche ( in der Schleife ), ich aber dann nicht den Bezug zu der Zeile nicht habe um nach FarbCode zu vergleichen.
wenn ich das ausgeklammerte so lasse funktioniert es.
Ich hätte aber gerne, dass wenn in der Zeile ein Name in einer bestimmten Farbe geschrieben ist, dann ein anderer Buchstabe geschrieben wird.

Sub Fliegenschiess_Q1()
Dim Name As Long
Dim KWPlan As Long
EU = ThisWorkbook.Worksheets("EU - Plan").Cells(65, 4).Font.ColorIndex
ÜZL = ThisWorkbook.Worksheets("EU - Plan").Cells(66, 4).Font.ColorIndex
ELZ = ThisWorkbook.Worksheets("EU - Plan").Cells(67, 4).Font.ColorIndex
SV = ThisWorkbook.Worksheets("EU - Plan").Cells(66, 4).Font.ColorIndex
ThisWorkbook.Worksheets("Zusammenfassung").Range("J12:V200").ClearContents
For KWPlan = 7 To 18
For Name = 12 To 200
If WorksheetFunction.CountIf(ThisWorkbook.Worksheets("EU - Plan").Range(KWPlan & ":" & KWPlan), ThisWorkbook.Worksheets("Zusammenfassung").Cells(Name, 3)) > 0 Then
ThisWorkbook.Worksheets("Zusammenfassung").Cells(Name, KWPlan + 4) = "x"
'            If ThisWorkbook.Worksheets("EU - Plan").Range(KWPlan & ":" & KWPlan).Font.ColorIndex = EU Then
'                ThisWorkbook.Worksheets("Zusammenfassung").Cells(Name, KWPlan + 4) = "x"
'            ElseIf ThisWorkbook.Worksheets("EU - Plan").Range(KWPlan & ":" & KWPlan).Font.ColorIndex = ÜZL Then
'                ThisWorkbook.Worksheets("Zusammenfassung").Cells(Name, KWPlan + 4) = "ü"
'            ElseIf ThisWorkbook.Worksheets("EU - Plan").Range(KWPlan & ":" & KWPlan).Font.ColorIndex = ELZ Then
'                ThisWorkbook.Worksheets("Zusammenfassung").Cells(Name, KWPlan + 4) = "e"
'            ElseIf ThisWorkbook.Worksheets("EU - Plan").Range(KWPlan & ":" & KWPlan).Font.ColorIndex = SV Then
'                ThisWorkbook.Worksheets("Zusammenfassung").Cells(Name, KWPlan + 4) = "w"
'            End If
End If
Next Name
Next KWPlan
End Sub
Hoffentlich verständlich ausgedrückt.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA If mit Farb-Code
15.12.2022 14:12:50
onur
Du brauchst die Zeilennummer - die kannst du ermitteln mit Worksheetfunction.Match.
Aber was ist, wenn mehr als ein Eintrag vorhanden ist (auch noch mit verschiedenen Farben)?
AW: VBA If mit Farb-Code
15.12.2022 14:33:44
Christian
Hallo
Danke für die schnelle Antwort
Es sind mehrere Namen in der Zeile ( die werden abgedeckt über i und j ) das funktioniert
es kann auch sein dass verschiedene Namen in verschiedenen Farben stehen.
Ich kann auch für jede Farbe ein Makro machen und die if funktion erweitern?

if countif >0 und Farbcode gleich dem dann?

AW: VBA If mit Farb-Code
15.12.2022 14:36:08
onur
"es kann auch sein dass verschiedene Namen in verschiedenen Farben stehen. Ich kann auch für jede Farbe ein Makro machen und die if funktion erweitern?"
Du kannst doch nicht der gleichen Zelle mehrere Farben zuweisen - oder ?
Anzeige
AW: VBA If mit Farb-Code
15.12.2022 14:30:06
Daniel
Hi
.du fragst die Farbe der ganzen Zeile (mehrere Zellen) ab.
Wenn da nicht alle Zellen die selbe Farbe haben, ist das Ergebnis NULL, und das kann dann VBA nicht so richtig verarbeitet.
Wenn du Formate abfragst, dann verwende immer genau eine Zelle.
Wenn du weißt, in welcher Spalte der Name mit der Farbe steht, dann mach aus:
Range(KWPlan & ":" & KWPlan)
Das hier
Cells(KWPlan, Spalte)
Und gib für Spalte die Spaltennummer oder den Spaltenbuchstaben an.
Gruß Daniel
AW: VBA If mit Farb-Code
15.12.2022 14:45:49
Rudi
Hallo,
teste mal:

Sub Fliegenschiss_Q1()
Dim lngName As Long
Dim KWPlan As Long
Dim EU As Long, UZL As Long, ELZ As Long, SV As Long
Dim wksPlan As Worksheet, wksZus As Worksheet
Dim vntColumn
Set wksZus = Worksheets("Zusammenfassung")
Set wksPlan = Worksheets("EU - Plan")
With wksPlan
EU = .Cells(65, 4).Font.Color
UZL = .Cells(66, 4).Font.Color
ELZ = .Cells(67, 4).Font.Color
SV = .Cells(66, 4).Font.Color
End With
wksZus.Range("J12:V200").ClearContents
For KWPlan = 7 To 18
For lngName = 12 To 200
vntColumn = Application.Match(wksZus.Cells(lngName, 3), wksPlan.Rows(KWPlan), 0)
If Not IsError(vntColumn) Then
Select Case wksPlan.Cells(KWPlan, vntColumn).Font.Color
Case EU:  wksZus.Cells(lngName, KWPlan + 4) = "EU"
Case UZL: wksZus.Cells(lngName, KWPlan + 4) = "ÜZL"
Case ELZ: wksZus.Cells(lngName, KWPlan + 4) = "ELZ"
Case SV:  wksZus.Cells(lngName, KWPlan + 4) = "SV"
End Select
End If
Next lngName
Next KWPlan
End Sub
Verwende niemals VBA-Schlüsselwörter/ Objekte/ Eigenschaften als Variable (Name) und niemals Umlaute in Variablen-Bezeichnungen.
Gruß
Rudi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige