Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1228to1232
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Doppelte Einträge in ganzer Mappe markieren

Doppelte Einträge in ganzer Mappe markieren
didi
Hallo Experten,
benötige Abhilfe zum Thema doppelte Einträge markieren.
Bis jetzt habe ich nirgends was brauchbares gefunden :(
Habe in der Testdatei zweierlei Sachen probiert:
a) mit bedingter Formatierung (funktioniert nur innerhalb eines Registerblattes)
b) mit VBA
Beides läuft nicht. Ich benötige die Prüfung nach Dubletten (Spalte B) über die gesamte Arbeitsmappe (also eigentlich Registerblattübergreifend und sogar Namenunabhängig - da die Registerblätter Täglich hinzugefügt werden).
Hat jemand eine Idee?
Mit dem VBA hat es komischerweise kurz funktioniert - später plötzlich nicht mehr (ohne dass ich was verstellt hätte - nur nach öfteren Versuchen hat es irgendwannmal nicht mehr funktioniert).
Das mit dem VBA habe ich aus dem Netz - selbst kenne ich mich nicht aus.
Vielen Dank im Voraus für eure Hilfeversuche!
https://www.herber.de/bbs/user/76577.xls
Gruß
Didi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
ganz kleiner Fehler?
13.09.2011 00:48:12
Erich
Hi Didi,
es könnte es sein, dass ziemlich vorn im Makro statt
For i = 19 To .Sheets.Count
das hier stehen sollte:
For i = 1 To .Sheets.Count
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: ganz kleiner Fehler?
13.09.2011 10:38:57
Didi
Hallo Erich,
danke für den Hinweis, dachte, dass auch bei I um den Zeilenanfang geht.
Nun es funktioniert noch nicht ganz richtig (siehe Link).
Die Zahl 125 und 126 wird nicht überall markiert und ist aber doppelt vorhanden.
Noch ne Idee?
https://www.herber.de/bbs/user/76587.xls
Gruß
Didi
Anzeige
falsches Goto
13.09.2011 13:49:15
Erich
Hi Didi,
solchen Code - ohne "Option Explicit" und Variablendeklarationen, dafür mit "... Goto xyz"-Anweisungen,
mag ich wirklich ganz besonders :-(
So sollte es gehen (immer noch ohne Option Explicit und nicht wirklich getestet,
aber mit übersichtlicheren Einrückungen):

' Option Explicit          ' Warum kein Option Explicit ?
Sub Dubletten()   ' Durchsucht eine Spalte in Tabellen der Mappe nach Mehrfacheinträgen
Spalte = 2     'Spalte die durchsucht werden soll
SpalteM = 10   'Spalte für Markierung der Mehrfacheinträge ("M" wird eingetragen)
Zeile1 = 19    'Zeile in der in jeder Tabelle mit dem Vergleich begonnen werden soll
Farbe = 3      'Colorindex für Füllfarbe bei Mehrfacheinträgen, 3 = Rot
With ActiveWorkbook
For i = 1 To .Sheets.Count
For ZeileI = Zeile1 To .Sheets(i).Cells(.Sheets(i).Rows.Count, Spalte).End(xlUp).Row
'Bereits markierte Zeile überspringen
If .Sheets(i).Cells(ZeileI, SpalteM)  "M" Then
wert = .Sheets(i).Cells(ZeileI, Spalte)
For j = i To .Sheets.Count              'Vergleich mit restlichen Zellen
'Startzeile für Vergleichstabelle setzen
If i = j Then
' steht Wert in letzter Zeile des Blattes i, wird ab nächstem Blatt gesucht
If ZeileI = _
.Sheets(i).Cells(.Sheets(i).Rows.Count, Spalte).End(xlUp).Row Then
ZeileJStart = 9 ^ 99
Else
ZeileJStart = ZeileI + 1
End If
Else
ZeileJStart = Zeile1
End If
For ZeileJ = ZeileJStart To _
.Sheets(j).Cells(.Sheets(j).Rows.Count, Spalte).End(xlUp).Row
'Prüfung ob Zeile bereits markiert als Mehrfacheintrag
If .Sheets(j).Cells(ZeileJ, SpalteM)  "M" Then
If wert = .Sheets(j).Cells(ZeileJ, Spalte) Then          'Wertevergleich
.Sheets(j).Cells(ZeileJ, SpalteM) = "M"
.Sheets(j).Rows(ZeileJ).Interior.ColorIndex = Farbe
Mehrfach = True
End If
End If
Next ZeileJ
Next j
If Mehrfach = True Then
.Sheets(i).Cells(ZeileI, SpalteM) = "M"   '1. Zeile mit Wert auch markieren
.Sheets(i).Rows(ZeileI).Interior.ColorIndex = Farbe
Mehrfach = False
End If
End If
Next ZeileI
Next i
End With
' Markierungen in SpalteM entfernen?
If MsgBox("Markierung 'M' in Spalte " & SpalteM & " entfernen?", _
vbYesNo + vbQuestion, "Mehrfacheinträge suchen") = vbYes Then
ActiveWorkbook.Sheets.Select
Columns(SpalteM).Select
Selection.ClearContents
Range("A1").Select
Sheets(1).Select
End If
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: falsches Goto
13.09.2011 14:45:59
Didi
Hallo Erch,
besten DANK!!
Alles läuft wie geschmiert....
Für die goto-anweisungen möchte ich mich entschuldigen - wie gesagt, bin im VBA eine (noch) NULL (Code übernommen - soll aber nicht als Entschuldigung aufgefasst werden).
Für mich nach wie vor "schwarze Magie".
Noch eine Frage hätte ich...
...lässt sich die Markierung mittels eines anderen Makros dann auch wieder löschen?
Teifste Verbeugung meinerseits... ;)
Grüße
Didi
Farbe wieder löschen
13.09.2011 16:36:30
Erich
Hi Didi,
nur so ein Gedanke: Was passiert, wenn du vorn im Makro
Farbe = xlColorIndexNone
statt
Farbe = 3
schreibst?
Dann brauchst du kein neues Makro. :-)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Farbe wieder löschen
13.09.2011 17:19:33
Didi
Hi Erich,
hm... im Prinzip könnte es funktionieren, doch wenn ich die Dubletten gefunden habe und entfernt habe, dann kann er mir das nicht mehr "zurücksetzen", denn die Dubletten fehlen ja.
Da müsste was hin, was alles was rot ist, einfach auf farblos stellt (über alle Blätter hinweg).
Danke dir für den guten Gedanken.
Gruß
Didi
Farbe löschen
13.09.2011 20:32:23
Erich
Hi Didi,
eine Möglichkeit (die auch manuell machbar wäre, einfach "Bearbeiten - Ersetzen", Formate festlegen):

Sub FarbeWeg()   ' Löscht (rote) Hintergrundfarbe
Dim wks As Worksheet
With Application.FindFormat
.Clear
With .Interior
.PatternColorIndex = xlAutomatic
.ColorIndex = 3
End With
End With
With Application.ReplaceFormat
.Clear
.Interior.Pattern = xlNone
For Each wks In Worksheets
wks.Cells.Replace What:="", Replacement:="", _
LookAt:=xlPart, SearchFormat:=True, ReplaceFormat:=True
Next wks
Application.FindFormat.Clear
.Clear
End With
End Sub
In der Beispielmappe gibt es auch bedingte Formatierungen. Die werden hiermit natürlich nicht bearbeitet.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

21 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige