Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Doppelte Werte markieren

Doppelte Werte markieren
22.11.2008 13:23:06
Markus
Hallo zusammen,
ich benutze folgendes Makro,um doppelte Werte zu markieren.

Sub zellen_mit_doppelten_einträgen_markieren()
On Error GoTo Fehlerbehandlung
Dim Spalten As Object
Dim zelle1 As Object
Dim zelle2 As Object
Dim f As Integer
Dim eing
f = 0
Set zelle1 = Selection.SpecialCells(xlLastCell).Offset(1, 1)
Set zelle2 = Selection.SpecialCells(xlLastCell)
Set Spalten = ActiveCell.CurrentRegion
eing = InputBox("Die Zelle eingeben, ab der geprüft werden soll," & (Chr(13)) & "z.B. A1 oder   _
_
F6.", "Zellenauswahl")
Range(eing).Select
eing = ""
Application.ScreenUpdating = False
zelle1 = ActiveCell
ActiveCell.Offset(1).Select
For x = 1 To Spalten.Rows.Count
If ActiveCell.Value = zelle1 Then
If ActiveCell  "" Then
ActiveCell.Interior.ColorIndex = 43
End If
End If
ActiveCell.Offset(1).Select
Next x
For i = 1 To Spalten.Rows.Count - 1
For z = 1 To Spalten.Rows.Count
ActiveCell.Offset(-1).Select
Next z
f = f + 1
zelle1.Clear
zelle2 = ActiveCell
ActiveCell.Offset(1).Select
For y = 1 To Spalten.Rows.Count
If ActiveCell.Value = zelle2 Then
If ActiveCell  "" And Selection.Interior.ColorIndex = xlNone Then
ActiveCell.Interior.ColorIndex = 43 + f
End If
End If
ActiveCell.Offset(1).Select
Next y
Next i
zelle2.Clear
Application.ScreenUpdating = True
Range("A1").Select
Fehlerbehandlung:
If Err = 1004 Then
MsgBox "Es wurde keine Zelle angegeben!", , "Fehler 1004"
Else
MsgBox Error(Err)
End If
End Sub


Bei diesem Makro wird allerdings immer erst der zweite Wert farbig markiert. Beisipiel:
5 keine Farbe
6 keine Farbe
5 Farbe
Es müsste aber auch die erste 5 mit der gleichen Farbe markiert werden.
Wie muss ich das anstellen? Vielen Dank!
Viele Grüße
Markus

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Werte markieren
22.11.2008 13:44:00
robert
hallo,
der erste suchbegriff ist ja noch nicht doppelt, daher keine farbe
gruß
rofu
AW: Doppelte Werte markieren
22.11.2008 13:45:00
Uwe
Hi Markus,
ich habe mich jetzt nicht in Dein Makro vertieft, aber wenn es wirklich nur doppelte Werte markiert, erreichst Du das auch mit einer bedingten Formatierung. Spalte A markieren, bedingte Formartierung, Formel ist:

=ZÄHLENWENN($A:$A;$A1)>1


Vielleicht ist das ja eine Lösung für Dich?
Gruß
Uwe
(:o)

Anzeige
AW: Doppelte Werte markieren
22.11.2008 13:57:48
Markus
Hallo Uwe,
bedingte Formatierung scheidet hier aus, da ich die farbige Zellen später in ein anderes Tabellenblatt kopieren muss und bei einer bedingten Formatierung klappt dieses Makro dann nicht mehr (es sind ja auch nicht die einzigen farbigen Zellen, so dass ich hier auf keinen Fall abweichen kann).
Hallo Robert,
Dich habe ich ehrlich gesagt nicht verstanden. Was muss ich denn ändern?
Viele Grüße
Markus
Anzeige
AW: Doppelte Werte markieren
22.11.2008 14:08:00
robert
hallo markus,
du musst nichts ändern:
die logik: du willst doppelte markieren-ok
der erste gefundene begriff ist ja noch nicht doppelt,
sondern erst der zweite, dritte usw....
klar?
gruß
rofu
AW: Doppelte Werte markieren
22.11.2008 14:15:41
Markus
Jetzt geschnallt. :-)
Ich muss aber beide Zellen farbig markieren, damit beide vor der eigentlichen Bearbeitung in ein anderes Tabellenblatt kopiert werden. Sonst kopiere ich nur den einen und den anderen bearbeite. Das wäre sehr schlecht.
Hat jemand eine Idee?
Anzeige
AW: Doppelte Werte markieren
22.11.2008 14:25:48
Daniel
Hi
erstmal 2 Grundstatzfehler, die du bereinigen solltest, bevor du hier weitermachst:
- du arbeitest nicht mit Option Explicit und die Variablen i, x,y,z sind nicht dimensioniert.
hierzu bitte das hier lesen: http://www.online-excel.de/excel/singsel_vba.php?f=4
- du arbeitest mit SELECT und ACTIVATE, auch das ist subotimal und macht den Code langsam und schwerer zu lesen, hierzu bitte das hier lesen: http://www.online-excel.de/excel/singsel_vba.php?f=78
des weiteren kannst du die Prüfung doch einfach über die Bedingte Formatierung erledigen, dh _ wenn du die Spalte A auf doppelte überprüfen willst, dann gibtst du unter FORMAT-BEDINGTE FORMATIERUNG-FORMEL folgendes ein:

=ZählenWenn(A:A;A1)>1


ein Makro dazu würde so aussehen (angepasst an deine Bedingungen mit Eingabe der Startzelle):


Sub Doppelte_Markieren()
Dim Eingabe As String
Dim Zelle As Range
Dim FormelText As String
Dim Bereich As Range
'--- Startzelle auswählen
Eingabe = InputBox("Die Zelle eingeben, ab der geprüft werden soll," & (Chr(13)) & "z.B. A1  _
oder F6.", "Zellenauswahl")
On Error Resume Next
Set Zelle = Range(Eingabe)
If Err = 0 Then
On Error GoTo 0
'--- Bereich definieren, der geprüft werden soll (alle Zellen unterhalb der Startzelle)
Set Bereich = Range(Zelle, Cells(Rows.Count, Zelle.Column).End(xlUp))
'--- Formeltext für Bedingte Formatierung
FormelText = "=Zählenwenn(" & Bereich.Address(1, 1, xlR1C1) & ";" & Zelle.Address(0, 0,  _
xlR1C1) & ")>1"
FormelText = Replace(FormelText, "R", "Z") 'Englische Zelladdrssen eindeutschen
FormelText = Replace(FormelText, "C", "S")
'--- Bedingte Formatierung eintragen
With Bereich
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:=FormelText
.FormatConditions(1).Interior.ColorIndex = 3
End With
Else
'--- Fehlermeldung
MsgBox "Die Zelladdresse wurde nicht richtig eingegeben"
End If
End Sub


Gruß Daniel

Anzeige
AW: Doppelte Werte markieren
22.11.2008 14:54:00
Markus
Vielen Dank!
AW: Doppelte Werte markieren
22.11.2008 15:04:00
Markus
Hallo Daniel,
danke für die Tipps und Ratschläge - auch für das Makro. Hast Du denn auch eine Idee, wie man ohne bedingte Formatierung hinbekommt? Wie gesagt, Farben durch bedingte Formatierung erkennt das rauskopier-Makro nicht. Die Werte sollten daher über den Interior.ColorIndex markiert werden.
Anzeige
AW: Doppelte Werte markieren
22.11.2008 15:22:00
Claudia
Hier eine Lösung:

Sub markiereDoppelte()
Dim rng As Range
Dim bereich As Range
Set bereich = Range("a1:a100")   'Bereich der durchsucht wird
For Each rng In bereich
If Application.CountIf(bereich, rng) > 1 Then _
rng.Interior.ColorIndex = 6
Next
End Sub


Anzeige
AW: Doppelte Werte markieren
22.11.2008 15:35:00
Daniel
Hi
wenn du die Markierung für ein Makro brauchst, dann würde ich einfach eine Hilfsspalte mit der Formel:
"=ZählenWenn(A:A;A1)" einfügen, dann kannst du die Doppelten Werte mit dem Autofilter filtern und die angezeigten Werte in ein neues Tabellenblatt kopieren.
Das dürfte einfacher und schneller gehen als mit einer Schleife die Werte einzeln zu färben und dann mit einer 2. Schleife zu kopieren.
Gruß, Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Doppelte Werte in Excel markieren


Schritt-für-Schritt-Anleitung

  1. Makro zur Markierung doppelter Werte: Du kannst ein VBA-Makro verwenden, um doppelte Werte in Excel zu markieren. Hier ist ein Beispiel:

    Sub Doppelte_Markieren()
       Dim Eingabe As String
       Dim Zelle As Range
       Dim Bereich As Range
       '--- Startzelle auswählen
       Eingabe = InputBox("Die Zelle eingeben, ab der geprüft werden soll," & Chr(13) & "z.B. A1 oder F6.", "Zellenauswahl")
       On Error Resume Next
       Set Zelle = Range(Eingabe)
       If Err = 0 Then
           On Error GoTo 0
           '--- Bereich definieren
           Set Bereich = Range(Zelle, Cells(Rows.Count, Zelle.Column).End(xlUp))
           '--- Bedingte Formatierung eintragen
           With Bereich
               .FormatConditions.Delete
               .FormatConditions.Add Type:=xlExpression, Formula1:="=ZählenWenn(" & Bereich.Address(1, 1, xlR1C1) & ";" & Zelle.Address(0, 0, xlR1C1) & ")>1"
               .FormatConditions(1).Interior.ColorIndex = 3
           End With
       Else
           MsgBox "Die Zelladresse wurde nicht richtig eingegeben"
       End If
    End Sub
  2. Ausführen des Makros: Um das Makro auszuführen, drücke ALT + F11, füge den Code in ein Modul ein und führe das Makro aus. Wähle die Zelle aus, ab der die doppelten Werte markiert werden sollen.


Häufige Fehler und Lösungen

  • Fehler: "Es wurde keine Zelle angegeben!"

    • Stelle sicher, dass du eine gültige Zelladresse eingegeben hast. Das Makro benötigt eine Startzelle.
  • Problem mit der ersten Markierung:

    • Wenn du nur den zweiten oder dritten doppelten Wert markiert siehst, könnte es daran liegen, dass die erste Instanz noch nicht als doppelt erkannt wird. Überprüfe die Logik in deinem Makro und passe die Bedingungen entsprechend an.

Alternative Methoden

  1. Bedingte Formatierung: Eine einfache Methode, um doppelte Werte zu markieren, ist die Verwendung von bedingter Formatierung. Wähle die Spalte aus und gehe zu:

    • Start > Bedingte Formatierung > Neue Regel > Formel zur Ermittlung der zu formatierenden Zellen verwenden. Gib die Formel ein:
      =ZÄHLENWENN($A:$A;$A1)>1
  2. Hilfsspalte: Du kannst auch eine Hilfsspalte mit der Formel =ZählenWenn(A:A;A1) verwenden. Dies zeigt dir die Anzahl der Vorkommen und hilft beim Filtern der doppelten Werte.


Praktische Beispiele

  1. Markierung doppelter Werte in einer bestimmten Spalte:

    • Wenn du die Werte in Spalte A auf Duplikate überprüfen möchtest, kannst du das obige Makro verwenden oder die bedingte Formatierung wie beschrieben anwenden.
  2. Farbliche Markierung von Duplikaten:

    • Verwende Interior.ColorIndex, um die doppelten Werte farblich hervorzuheben. Beispiel:
      If Application.CountIf(bereich, rng) > 1 Then _
      rng.Interior.ColorIndex = 6  ' Gelb

Tipps für Profis

  • Option Explicit verwenden: Stelle sicher, dass du Option Explicit am Anfang deines Moduls einfügst, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.

  • Vermeide SELECT und ACTIVATE: Diese Befehle machen den Code langsamer und weniger lesbar. Arbeite direkt mit Objekten.

  • VBA-Fehlerbehandlung: Implementiere eine robuste Fehlerbehandlung in deinem Makro, um unerwartete Fehler zu managen.


FAQ: Häufige Fragen

1. Wie kann ich doppelte Werte in Excel farblich markieren ohne bedingte Formatierung? Du kannst ein Makro verwenden, das die Interior.ColorIndex-Eigenschaft nutzt, um die Zellen farblich zu markieren.

2. Was ist der Vorteil der Verwendung eines Makros zum Markieren doppelter Werte? Ein Makro bietet dir mehr Flexibilität und Kontrolle über den Prozess, besonders wenn du die Werte später in ein anderes Tabellenblatt kopieren möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige