Clever-Excel-Forum

Normale Version: Liest View zell oder Schrift Färben mit Bedingung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo ich bin es  wider!
 
Ich habe ein anliegen zum Thema Liest View und zwar suche ich eine Brauchbare Seite zum Nachlesen und informieren.
Und Zwar möchte ich in meiner Liest View die Zell- oder auch Schrift Farbe an Hand einer Bedingung Färben sobald ich doppelte Angaben in der Ersten oder zweiten Spalte habe.
 
Ich würde mich freuen wen einer ein gut Internetseite kennt
Hallöchen,

Textfarben bekommst Du pro Objekt nur eine. Deine Frage zielt doch darauf, nur die entsprechenden Zeilen zu färben und nicht den kompletten LV?
In Zellen kannst Du Texten mehrere Farben zuordnen.
Hi.

Du hast doch schon viele Links bekommen. Allein aus der Videoreihe wäre dein Wunsch mit etwas VBA Kenntnisse her leitbar. Und eine Seite die genau auf dein Problem zugeschnitten ist wird es nicht immer geben. Lesen, Kombinieren, Probieren und Lernen. Und ja das dauert auch mal.

Gruß Elex
Hallo,

mal das alte Beispiel mit farbiger Zuordnung zur Zeit.

Code:
.ListItems(.ListItems.Count).ListSubItems(1).ForeColor = RGB(255, 0, 0)
Um an die korrekte Schreibweise zu kommen, schreibe den Namen der Listview - setzte einen Punkt. Wähle was du benötigst, aus den Vorgaben aus - setzte wieder einen Punkt ....
Da kann man, falls die Vokabel unklar ist, sich recherchierend vortasten, um eine Selbstumsetzung hinzubekommen. So lernt man recht effizient.
[attachment=44474]

Gruß Uwe
ich möchte nur Die werte in der 1 und 2 Spalte Farblich her­vor­he­ben ,wenn Doppelte angaben vorhanden sind .Ich möchte Nichte die ganze Zeile Färben !!

Ja hatte von Egon12 eine gute Seite bekommen aber darin kein Ansatz gefunden  für die Prozedur um doppelte angaben in einer List view anzuzeigen
Hallo,

da muss man den Teil nur aus der j Schleife rausnehmen:

dann so:

Code:
Private Sub ListViewLaden()
    Dim arrTab(), arrList(), i As Long, j As Long
    If dynTab.DataBodyRange Is Nothing Then
        ListView1.ListItems.Clear
        Me.Width = (ListView1.Left * 2) + lvBreite + 27
        Me.Height = 337
        Exit Sub
    End If
    arrTab = dynTab.DataBodyRange.Value
    ReDim arrList(1 To UBound(arrTab, 1), 1 To UBound(arrTab, 2) + 1)
    For i = 1 To UBound(arrTab, 1)
        For j = 2 To UBound(arrTab, 2) + 1
            arrList(i, 1) = i
            arrList(i, j) = arrTab(i, j - 1)
            arrList(i, SpNrPLZ + 1) = Format(arrTab(i, SpNrPLZ), "00000")
        Next j
        arrList(i, 8) = Format(CDate(arrTab(i, 7)), "hh:mm")
    Next i
    With ListView1
        ListView1.ListItems.Clear
        .AllowColumnReorder = True
        .Width = lvBreite + 13
        For i = 1 To UBound(arrList, 1)
            .ListItems.Add , , Format(arrList(i, 1), "00000")
            For j = 2 To UBound(arrList, 2)
                .ListItems(.ListItems.Count).SubItems(j - 1) = arrList(i, j)
            Next j
            If CDate(arrList(i, 8)) < CDate(Tabelle1.Cells(9, 10)) Then
                .ListItems(.ListItems.Count).ListSubItems(1).ForeColor = RGB(255, 0, 0)
                .ListItems(.ListItems.Count).ListSubItems(2).ForeColor = RGB(255, 0, 0)
            End If
            If CDate(arrList(i, 8)) > CDate(Tabelle1.Cells(9, 10)) And CDate(arrList(i, 8)) < CDate(Tabelle1.Cells(9, 12)) Then
                .ListItems(.ListItems.Count).ListSubItems(1).ForeColor = RGB(205, 173, 0)
                .ListItems(.ListItems.Count).ListSubItems(2).ForeColor = RGB(205, 173, 0)
            End If
            If CDate(arrList(i, 8)) > CDate(Tabelle1.Cells(9, 12)) Then
                .ListItems(.ListItems.Count).ListSubItems(1).ForeColor = RGB(34, 139, 34)
                .ListItems(.ListItems.Count).ListSubItems(2).ForeColor = RGB(34, 139, 34)
            End If
        Next i
        .ListItems(1).Selected = False
        .Font = "Arial"
        .Font.Size = 10
    End With
    Me.Width = (ListView1.Left * 2) + lvBreite + 27
    Me.Height = 337
End Sub
Den Link zum VBA Tanker Video habe ich nicht reingesetzt.

Gruß Uwe
Ich hab es damit mal versucht Duplikate in meiner ListView  farblich anzeigen zu lassen aber irgendwas mach ich falsch 

If Application.WorksheetFunction.CountIf(zelle, Range("Tabelle1!A3:A100")) > 1 Then ListView1 "Duplikat"
Hallo,

da du keine Beispieldatei hochgeladen hast und ich keine Lust habe den Quelltext meiner Beispieldatei umzuschreiben und der Worksheetfunction anzupassen, habe ich nach dem Prinzip des Bubblesort die gefundenen Doppelten in Spalte 9 der arrList als Wert 1 für Treffer und 0 für Unikat auswertbar für die Farbzuweisung der Zeile übergeben.
Setze dazu ein Stopmarke (F9 Taste) in ListViewLaden() und schau im Lokalfenster was Step by Step mittels F8 Taste passiert.
[attachment=44494]

Gruß Uwe
Ok dann hier mal meine Datei im Anhang. Ich Hofe das ist ausreichend
Hallo,

ich habe mal die farbliche Kennzeichnung eingebaut. Über die 2-spaltige Combobox kannst du die Spalte per Namen auswählen. Es werden dann Doppelte Werte dieser Spalte über die komplette Zeile umgefäbt. Falls es dich stört, ändere es so, wie ich es im https://www.clever-excel-forum.de/Thread...#pid255004 beschrieben habe.

Du musst wissen, dass Listview nur Textformat kann. Alle anderen erforderlichen Formate musst du der Listview erklären(formatieren). Wenn du jetzt auf- oder abwärts sortierst, kommt es ohne voran gesetzte Nullen zu unsinnigen Zahlenfolgen - deshalb die voran gesetzten Nullen.

Zum Schluss noch ein Wort zu formatierten Tabellen: Vermeide leere Zeilen - es führt zu Fehlern.
[attachment=44497]

Gruß Uwe
Seiten: 1 2