Thema Datum  Von Nutzer Rating
Antwort
01.03.2018 10:14:36 Hans
NotSolved
01.03.2018 16:28:04 Hans
NotSolved
Rot Intelligentes vergleichen
03.03.2018 08:09:42 Gast54037
NotSolved

Ansicht des Beitrags:
Von:
Gast54037
Datum:
03.03.2018 08:09:42
Views:
584
Rating: Antwort:
  Ja
Thema:
Intelligentes vergleichen

Was ist ein "Teilstück"?


Vom Prinzip her braucht man beide Spalten nur in eine Liste packen: Deren Inhalte als Schlüssel (Key) + all deren Range-Objekten (=Sub-Liste).

Dann formatiert man alle Sub-Listen die nur ein einziges Element beinhalten mit Rot, den Rest mit Grün.

Die Zellen ohne Inhalt nimmt man gar nicht erst mit auf (formatiert sie gleich farblos).

 

Im Beispiel hier wird davon ausgegangen, dass beide Spalten auf einem Tabellenblatt und direkt nebeneinander liegen:

(man braucht dafür übrigens kein Scripting.Dictionary)

Option Explicit

Sub Example()
  
  Dim col As New VBA.Collection
  Dim colR As New VBA.Collection
  Dim rngCell As Excel.Range
  
  For Each rngCell In Worksheets("Tabelle1").Range("A1").CurrentRegion
    If Trim$(rngCell.Value) = "" Then
      'format empty cells (no color)
      rngCell.Interior.ColorIndex = XlColorIndex.xlColorIndexNone
    Else
      'create new item (if needed)
      If Not KeyExists(Trim$(rngCell.Value), col) Then Call col.Add(Key:=Trim$(rngCell.Value), Item:=New VBA.Collection)
      'add sub-item
      Call col(Trim$(rngCell.Value)).Add(Item:=rngCell)
    End If
  Next
  
  For Each colR In col
    If colR.Count > 1 Then
    'sub-item has more than one items -> multiple duplicates found
      For Each rngCell In colR
        rngCell.Interior.Color = rgbLightGreen
      Next
    Else
    'sub-item has more only one item -> no duplicates found
      colR(1).Interior.Color = rgbRed
    End If
  Next
  
End Sub

'# helper function
Private Function KeyExists(ByVal Key As String, ByVal Collection As VBA.Collection) As Boolean
  On Error Resume Next
  KeyExists = TypeName(Collection(Key)) <> ""
End Function

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
01.03.2018 10:14:36 Hans
NotSolved
01.03.2018 16:28:04 Hans
NotSolved
Rot Intelligentes vergleichen
03.03.2018 08:09:42 Gast54037
NotSolved