Macroteil funktioniert nicht

Bild

Betrifft: Macroteil funktioniert nicht
von: Thomas
Geschrieben am: 25.10.2015 19:49:31

Hallo Excelfreunde,
ich versuche gerade eine benutzte Zeile
mit
For lngI = lngUeberschriftRow To lngLastRow
.Rows(lngI).Font.Bold = .Cells(lngI, lngNameCol).Value Like "*Ergebnis*"
.Rows(lngI).ColorIndex(3) = .Cells(lngI, lngNameCol).Value Like "*Ergebnis*"

Next
zu formatieren
.Rows(lngI).Font.Bold = .Cells(lngI, lngNameCol).Value Like "*Ergebnis*"
diese Zeile funktioniert tadellos und macht die Schriftart fett.
aber wenn ich die Zeile mit
Rows(lngI).ColorIndex(3) = .Cells(lngI, lngNameCol).Value Like "*Ergebnis*"
rot färben möchte bekomme ich den Fehler " objekt wird nicht unterstützt.
Eigentlich möchte ich gern:
Suche die zeilen in denen ergebnis (wortteil )vorkommt und formatiere diese zeilen jeweils bis zur letzten benutzten spalte dieser zeile fett und mitroten hintergrund.
weiss jemand wie ich es besser machen kann?
liebe grüsse thomas

Bild

Betrifft: AW: Macroteil funktioniert nicht
von: Nepumuk
Geschrieben am: 25.10.2015 20:17:36
Hallo,
teste mal:

.Rows(lngI).ColorIndex = IIf(.Cells(lngI, lngNameCol).Value Like "*Ergebnis*", 3, xlColorIndexNone)

Gruß
Nepumuk

Bild

Betrifft: AW: Macroteil funktioniert nicht
von: Thomas
Geschrieben am: 25.10.2015 20:28:42
hallo Nepumuk,
besten dank das Du dir dies mal anschaust.
leider bekomme ich eine Fehlermeldung.
" Objekt unterstützt diese Eigenschaft nicht"
Ich hänge mal lieber mein ganzes Macro noch mit ran nicht das da schon der wurm drinn ist.

Sub endversion()
Dim lngUeberschriftRow As Long, lngLastRow As Long, lngFirstRow As Long
Dim lngSpesenCol As Long, lngNameCol As Long, lngI As Long
Dim strQuellueberschrift As String, strSpesen As String, strTabelle As String
Dim vntList() As Variant
strQuellueberschrift = "Namen"
strSpesen = "Spesen"
strTabelle = "Teilergebnis"
With Sheets(strTabelle)
  lngUeberschriftRow = .Cells.Find(strQuellueberschrift, Lookat:=xlWhole).Row
  lngNameCol = .Rows(lngUeberschriftRow).Find(strQuellueberschrift, Lookat:=xlWhole).Column
  lngSpesenCol = .Rows(lngUeberschriftRow).Find(strSpesen, Lookat:=xlWhole).Column
  lngFirstRow = .Cells(lngUeberschriftRow, lngNameCol).Row
  
  ReDim Preserve vntList(1 To lngSpesenCol - lngNameCol + 1)
  
  For lngI = 1 To UBound(vntList)
    vntList(lngI) = lngI
  Next
  
  With .Cells(lngUeberschriftRow, lngNameCol)
    .Subtotal GroupBy:=lngNameCol - .Column + 1, Function:=xlSum, TotalList:=Array(lngSpesenCol  _
- lngNameCol + 1), _
      Replace:=True, PageBreaks:=False, SummaryBelowData:=True
    .ClearOutline
  End With
  
  lngLastRow = .Cells(Rows.Count, lngNameCol).End(xlUp).Row
  
   
  
  For lngI = lngUeberschriftRow To lngLastRow
    .Rows(lngI).Font.Bold = .Cells(lngI, lngNameCol).Value Like "*Ergebnis*"
    .Rows(lngI).ColorIndex = IIf(.Cells(lngI, lngNameCol).Value Like "*Ergebnis*", 3,  _
xlColorIndexNone)
    
   
  Next
  
  
End With
End Sub

liebe grüsse thomas

Bild

Betrifft: AW: Macroteil funktioniert nicht
von: Daniel
Geschrieben am: 25.10.2015 20:45:25
Hi
da fehlt noch die Angabe, was du überhaupt färben willst.
du könntest ja den Zellhintergrund, die Schrift, oder den Rahmen rot machen wollen:
für die Schrift:
.Rows(lngI).Font.ColorIndex = IIF(...
für dein Hintergrund
.Rows(lngI).Interior.ColorIndex = IIF(...
Gruss Daniel

Bild

Betrifft: AW: Macroteil funktioniert nicht
von: Thomas
Geschrieben am: 25.10.2015 21:02:22
Hallo Daniel,
die Fehlermeldung ist verschwunden und die zeilen werden gefärbt. Super. Nur irgendetwas habe ich noch falsch. Es wird immer die ganze betroffene Zeile gefärbt. das fiel mir beim fett machen gar nicht auf. Ich möchte gern nur den zeilenbereich von Spalte "Namen" bis spalte "Spesen" färben.
könnt ihr nochmal schauen was ich falsch habe?
liebe grüsse thomas

Bild

Betrifft: AW: Macroteil funktioniert nicht
von: Daniel
Geschrieben am: 25.10.2015 21:07:36
HI
nunja, .Rows(lngI) ist nunmal die ganze Zeile.
müsste im Prinzip so funktioneren:
.Range(.Cells(lngI, SpaltenNummer_Name), .Cells(lngI, Spaltennummer_Spesen)).Interior.ColorIndex =
die Spaltennummern für Namen und Spesen hast du dir ja in irgendwelchen Variablen ablegt und kannst sie dort einsetzen.
gruss Daniel

Bild

Betrifft: AW: Macroteil funktioniert nicht
von: Gerd L
Geschrieben am: 25.10.2015 21:12:44
Hallo Thomas!

.Range(.Cells(lngI,lngNameCol), .Cells(lngI, lngSpesenCol).Interior.ColorIndex = .......
Gruß Gerd

Bild

Betrifft: Es klappt habt alle recht vielen dank
von: Thomas
Geschrieben am: 25.10.2015 21:20:35
hallo an alle helfer,
so klappt es habt recht vielen dank für die schnelle hilfe.
liebe grüsse thomas

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Wenn Spalte "etwas enthält" dann..neue Zelle "