Excel VBA duplikate finden und markieren in 2 verschiedenen spreadsheets, wie lautet der code?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Färben ist nicht gut, wenn mehrere übereinstimmen können: Du kommst schnell in einen Urwald gefärbter Zellen.

Das Blatt heisse in beiden Dateien Blatt1

Setze in Data2 in M2 diese Formel:

=Wennfehler(Vergleich(G2;[Data1]Blatt1!F:F;0);"☻")

Diese Formel liefert die Zeile, in der das Original in Data1 steht. Runterziehen. (nehmen wir an es handle sich um Produktnummern, recht unanschaulich. Aber in Data1 Spalte A stehe der Name des Produkts. Dann in Spalte Data2 N2:

=Wennfehler(index([Data1]Blatt1!A:A;Vergleich(F2;[Data2]Blatt1!G:G;0);"☻")

oder kürzer mit Bezug auf die schon errechnete Spalte M:

=Wennfehler(index([Data1]Blatt1!A:A;M2;0);"☻")

und Du weißt sofort, um was es sich handelt.

Rückwärts geht das auch (beantwortet: wo steht denn das Doppel in Data2?):

in [Data1]Blatt1!P2: =Wennfehler(Vergleich(Zeile();[Data2]Blatt1!M:M;0);"✗")

auch das runterziehen.

Es kann nur jeweils EIN Doppel erkannt werden, die Formel findet immer nur das erste.

Hab das jetzt nicht getestet, wenn Du damit nicht klarkommst melde Dich nochmal.

Iamiam  20.11.2015, 00:23

Die zweite Formel stimmt nicht. Formel in Data2, N2 muss heissen:

=Wennfehler(index([Data1]Blatt1!A:A;Vergleich(G2;[Data1]Blatt1!F:F;0));"☻")

die kürzere Formel stimmt dann wieder, ebenso die letzte

1
Iamiam  21.11.2015, 12:06
@Iamiam

wenn Du das ausprobierst, musst Du Data1 natürlich mit Erweiterung schreiben, also Data1.xls, .xlsx oder .xlsm. Ebenso mit Data2

Egal, obs funktioniert, eine Rückmeldung wäre hilfreich! 

Wenn ich ein Kreuzworträtsel löse, weiß ich am Ende, obs aufgeht. Hier weiß ich ohne Rückmeldung gar nichts. Also Leute, gebt Rückmeldung! (am liebsten natürlich mit einer Hilfreichsten!)

0
Bierkoenig92 
Fragesteller
 30.11.2015, 16:02
@Iamiam

Danke dir viiielmals! Wollte es mit einem Makro loesen damit es "bequemer" ist nach dem man es einmal erstellt hat.

Diese Loesung jedoch funktioniert genau so gut und nimmt mir arbeit von mehreren Stunden weg - vielen dank dafuer nochmal!

0
Iamiam  30.11.2015, 16:13
@Bierkoenig92

gern geschehen und danke für den ★ ! (ist das einzige, was zur Erhaltung des xpert-Status hilft!)

0

Ich habe ein bisschen herumgetüftelt. Es ist mit VBA schon umsetzbar, auch die Angabe der zu vergleichenden Spalten. Etwas tricky allerdings schon, weil beim Zugriff auf die andere Datei einige normalerweise unproblematische Funktionen wie range Ärger machen. (warum weiß ich noch nicht)
Mein Fazit: Wenn es sich um eine einmalige Aktion handelt, sind die beschriebenen Tipps mit normalen Formel wesentlich einfacher als extra ein Makro zu stricken. Wenn es flexibles Makro sein soll, macht es eigentlich keinen Sinn, das dann fest mit den beiden Dateien zu verdrahten. Man müsste sich eher die Arbeit machen und eine Art Addin schreiben, komplett mit Auswahldialogen, welche Dateien und welche Spalten geprüft werden sollen und auch, was mit den Duplikaten passieren soll. Das ist dann aber richtig Arbeit.

Bierkoenig92 
Fragesteller
 30.11.2015, 16:05

Genau das wollte ich eigentlich aber habe auch mit einem Kollegen gesprochen der in Sachen Makros fitter ist als ich (nicht sonderlich schwer) und auch er meinte es waere eine MENGE Arbeit.
Da es nicht einmalig waere probiere ich es dennoch mal von Zeit zu Zeit irgendwie ein Makro zu schreiben aber es klappt fuers erste auch super mit euren Tipps danke euch!!!

0

Soll es wirklich unbedingt in VBA sein?
Geht doch direkt in EXCEL auch ganz einfach mit der Funktion ZÄHLENWENN.

maximilianus7  19.11.2015, 20:51

echt ganz einfach? dann zeigs uns mal.

mit VBA ist es zwar nicht sehr schwer - wenn mans kann - aber doch ein bisserl arbeit.

0
Iamiam  19.11.2015, 23:12
@maximilianus7

Die Idee ist nicht schlecht, nur mit Zählenwenn kann man halt nicht sagen, wo und deshalb nicht markieren.

0
Rubezahl2000  19.11.2015, 23:16
@maximilianus7

Ich arbeite viel mit zählenwenn, deshalb finde ich es einfach ;-)

1. Hilfsspalte einfügen neben deiner Spalte F.
In der Hilfsspalte, Zeile2 diese Formel eingeben: =ZÄHLENWENN(Data2!G:G;F2)
Ergebnis ist die Anzahl, wie oft F2 in Tabelle Data2, Spalte G vorkommt. Ergebnis 0 heißt, F2 kommt da nicht vor.
Diese Formel runterkopieren (Doppelklick auf die rechte untere Ecke) und neuberechnen.
Jetzt steht in der Hilfsspalte für jeden Wert aus Spalte F, ob der auch Spalte G vorkommt.

2. Dasselbe in Tabelle Data2 mit Spalte G machen: =ZÄHLENWENN(Data1!F:F;G2)

3. Mit bedingter Formatierung die Zellen gelb färben, wo der Wert in der Hilfsspalte >0 ist

Viel Erfolg!

2
Ninombre  20.11.2015, 08:47
@Rubezahl2000

Ich hatte es so verstanden, dass es zwei getrennte Dateien nicht, nicht nur unterschiedliche Tabellenblätter. Trotzdem würde das Vorgehen auch bei getrennten Dateien funktionieren, solange beide gleichzeitig geöffnet sind. Dann müsste man die Hilfsspalte allerdings kopieren und als Werte einfügen, um die Ergebnisse beizubehalten.

0
Bierkoenig92 
Fragesteller
 30.11.2015, 16:07
@Ninombre

Ich danke euch allen vielmals fuer eure Muehe!! Es nimmt mir eine Menge Arbeit ab mit den "normalen" Formeln. Wie oben schon kommentiert wollte ich es noch bequemer (allerdings kann man nicht alles haben und etwas muss ich ja auch alleine machen :)) ich probiere mich einfach mal nebenher in meiner Freizeit da rum mit dem Makro aber fuer meinen Hauptzweck habt ihr mir wirklich sehr geholfen danke euch!!

0