Clever-Excel-Forum

Normale Version: Doppelte Zellen einfärben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen
 
Ich bin in VBA eher unerfahren und komme bei einem Problem nicht weiter - benutze Office 2016 unter Win10
 
Ich möchte beim Öffnen der Tabelle aber auch unmittelbar bei der Eingabe en Inhalt der Zelle mit anderen Inhalten der reihe vergleichen und falls es ein Duplikat ist oder gibt alle identischen Zellen farbig hervor heben - leere Zellen sollen nicht berücksichtigt werden und wenn das Duplikat gelöscht ist sollen die farbigen Zellen wieder unformatiert sein.
 
Nun ich habe mich schon ein bisschen damit auseinandergesetzt und das zusammen gefummelt.


Code:
Sub DoppelteMarkieren()

Dim lngX As Long
Dim rngAktuellX As Range
       Set rngAktuellX = Selection
           Range("M10").Resize(lngX).Select 'SELECT der ersten Zelle ist bei Bedingter Formatierung notwendig !
              Selection.FormatConditions.Delete
              Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
           "=ZÄHLENWENN(M:M;M10)>1"
           Selection.FormatConditions(1).Interior.ColorIndex = 45   'Zellenfarbe formatieren
   rngAktuellX.Select           'Alte Markierung wieder herstellen
   Set rngAktuellX = Nothing

End Sub

Leider bekomme ich immer eine Fehlermeldung
 
Kann mir bitte jemand behilflich sein
 
Vielen dank Peter
Hallo,

das würde ich mit der bedingten Formatierung lösen.
Hallo,

Zitat:Leider bekomme ich immer eine Fehlermeldung

... und die lautet wie?
Hallo,

wer lesen kann ist im Vorteil. Hatte übersehen, dass du die bed. Formatierung per Makro setzen willst, warum das?
Hallo und vielen Dank für die raschen Antworten
 
@Käpt'n Blaubär
 
Die Fehlermeldung lautet:
 
Laufzeitfehler '1004':
Anwendungs- oder objektdefinierter Fehler
 
 
@Klaus-Dieter
 
Sorry aber ich weis nicht was du meinst - bin wirklich nicht besonders gut in vba und den Code habe ich mir aus mehreren Foren Informationen zusammengestellt so das er, von meinem Verständnis passen sollte - leider ist mein Verständnis nicht ganz richtig wie der Fehler zeigt :16:
Hallo,

es ist doch kein Problem, eine bedingte Formatierung über die Menüleiste zu definieren. So oft macht man das doch nicht, dass es sich lohnt, dafür ein Makro zu schreiben.
nun ich habe ein e fertige Tabelle mit ~10000 Einträgen die Kontinuierlich erweitert wird - leider gibt es bereits einige Doppelte Einträge und neue Einträge sollten auch nicht doppelt sein. darum der versuch dies über ein Makro zu machen.
Hallo,

die Spalte M soll auf Dubletten geprüft werden?
Sorry für die etwas verspätete Antwort - war beim Zahnarzt :22:


Ja genau - Spalte M soll nach doppelten Einträgen durchsucht werden - in bereits vorhandenen Einträgen aber auch in neuen, die gerade eingegeben werden.
Hallöchen,

ich vermute, der Fehler kommt hier:

Range("M10").Resize(lngX).Select

??

lngx ist an der Stelle eine Variable ohne Inhalt. Du müsstest die mal mit irgendeinem Wert füllen, z.B. ~10000.