Supportnet / Forum / Tabellenkalkulation
2 Tabellenblätter vergleichen
Frage
Hallöchen,
ich hab mal wieder ein Problemchen mit Excel.
Ich habe 2 Tabellenblätter die auf gleiche Einträge (=Namen) verglichen werden sollen und falls möglich, in ein neues 3. Tabellenblatt eingefügt werden sollen. In den alten Tabellenblättern sollen die übereinstimmenden Namen farblich markiert werden.
Ich hoffe, ich habe das verständlich ausgedrückt... ;-)
Kann mir jemand helfen?
Grüßle
Diskshut
Antwort 1 von coros
Hi Diskshut,
was ich nicht verstehe, Du stellst hier doch nicht zum 1. mal eine Frage und müsstest somit schon mal mitbekommen haben, dasss man für Lösungen ein paar mehr Angaben benötigt, als Du sie gibst. Welche Spalten sollen denn durchsucht werden? Na Egal, dann kommt hier halt auch nur ein ziemlich allgemein gehaltenenes Makro. Kopiere nachfolgendes Makro in ein StandardModul und weise es einer Befehlsschaltfläche zu.
Bei dem Makro wird Spalte A aus dem Blatt mit dem Namen "Namensliste 1" mit Spalte A aus dem Blatt "Namensliste 2" verglichen. Bei Übereinstimmung werden die Hintergründe der Namen grün gefärbt und die Namen werden in das Blatt "Auswertung" in die erste freie Zeile kopiert.
Wie Du Dir sicherlich denken kannst, musst Du die Blattnamen und auch die zu durchsuchende Spalte noch auf Deine Bedürfnisse abstimmen.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
was ich nicht verstehe, Du stellst hier doch nicht zum 1. mal eine Frage und müsstest somit schon mal mitbekommen haben, dasss man für Lösungen ein paar mehr Angaben benötigt, als Du sie gibst. Welche Spalten sollen denn durchsucht werden? Na Egal, dann kommt hier halt auch nur ein ziemlich allgemein gehaltenenes Makro. Kopiere nachfolgendes Makro in ein StandardModul und weise es einer Befehlsschaltfläche zu.
Option Explicit
Sub Daten_vergleichen()
Dim Suchname As String, Fundname As Range, letzte_Zeile_Tab1 As Long, _
letzte_Zeile_Tab2 As Long, Wiederholungen As Long, Addresse As String, _
gefundene_Zeile As Long
Application.ScreenUpdating = False
letzte_Zeile_Tab1 = Sheets("Namensliste 1").Range("A65536").End(xlUp).Row
letzte_Zeile_Tab2 = Sheets("Namensliste 2").Range("A65536").End(xlUp).Row
For Wiederholungen = 2 To letzte_Zeile_Tab1
Suchname = Sheets("Namensliste 1").Cells(Wiederholungen, 1)
With Sheets("Namensliste 2").Range("A2:A" & letzte_Zeile_Tab2)
Set Fundname = .Find(What:=Suchname, LookIn:=xlValues)
If Not Fundname Is Nothing Then
Addresse = Fundname.Address
gefundene_Zeile = Fundname.Row
Sheets("Namensliste 1").Cells(Wiederholungen, 1).Interior.ColorIndex = 4
Sheets("Namensliste 2").Cells(gefundene_Zeile, 1).Interior.ColorIndex = 4
Sheets("Namensliste 2").Cells(gefundene_Zeile, 1).Copy
Sheets("Auswertung").Cells(Sheets("Auswertung").Range("A65536").End(xlUp). _
Offset(1, 0).Row, 1).PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Do
Set Fundname = .FindNext(Fundname)
Loop While Not Fundname Is Nothing And Fundname.Address <> Addresse
End If
End With
Next
End Sub
Bei dem Makro wird Spalte A aus dem Blatt mit dem Namen "Namensliste 1" mit Spalte A aus dem Blatt "Namensliste 2" verglichen. Bei Übereinstimmung werden die Hintergründe der Namen grün gefärbt und die Namen werden in das Blatt "Auswertung" in die erste freie Zeile kopiert.
Wie Du Dir sicherlich denken kannst, musst Du die Blattnamen und auch die zu durchsuchende Spalte noch auf Deine Bedürfnisse abstimmen.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Diskshut
Hi Coros,
vielen Dank für das Makro.
Sorry, dass schon wieder Angaben gefehlt haben, war gestern etwas in Zeitnot. ;-) Gelobe Besserung...
Das Makro ist aber schon das, was ich brauche. Hab die Änderungen vorgenommen und es funzt...
Super...
Grüße
Diskshut
vielen Dank für das Makro.
Sorry, dass schon wieder Angaben gefehlt haben, war gestern etwas in Zeitnot. ;-) Gelobe Besserung...
Das Makro ist aber schon das, was ich brauche. Hab die Änderungen vorgenommen und es funzt...
Super...
Grüße
Diskshut
Antwort 3 von zickentaxi
Hallo,
möchte mich als newbee hier gerne anhängen.
Das Makro ist verdammt gut. Hat mir sehr geholfen.
Bis zu einem Punkt der mir ein wenig Kopfzerbrechen verursacht.
Wenn der Wert den ich vergleichen möchte "10" ist und in beiden Tabellen vorhanden ist, funktioniert das gut.
Aber wenn der eine Wert in dem Tabellenblatt "10" ist und im anderen Tabellenblatt "10010" ist, wird der Wert "10010" im Tabellenblatt grün markiert, obwohl der Wert "10010" nicht doppelt vorkommt.
Vermute mal das in diesem Makro nur zwei Ziffern verglichen werden. Wie kann ich denn in diesem Makro die Stellenanzahl erweitern?
Also ich möchte gerne Werte vergleichen die aus mehr als zwei Ziffern bestehen. Meine Werte sind 6 stellig.
Ein riesen Danke, wenn mir da jemand weiter helfen kann.
Gruss
Zickentaxi
möchte mich als newbee hier gerne anhängen.
Das Makro ist verdammt gut. Hat mir sehr geholfen.
Bis zu einem Punkt der mir ein wenig Kopfzerbrechen verursacht.
Wenn der Wert den ich vergleichen möchte "10" ist und in beiden Tabellen vorhanden ist, funktioniert das gut.
Aber wenn der eine Wert in dem Tabellenblatt "10" ist und im anderen Tabellenblatt "10010" ist, wird der Wert "10010" im Tabellenblatt grün markiert, obwohl der Wert "10010" nicht doppelt vorkommt.
Vermute mal das in diesem Makro nur zwei Ziffern verglichen werden. Wie kann ich denn in diesem Makro die Stellenanzahl erweitern?
Also ich möchte gerne Werte vergleichen die aus mehr als zwei Ziffern bestehen. Meine Werte sind 6 stellig.
Ein riesen Danke, wenn mir da jemand weiter helfen kann.
Gruss
Zickentaxi
Antwort 4 von coros
Hi Z/ickentaxi,
dann versuche mal nachfolgendes Makro. Kopiere es ebenfalls in ein StandardModul und weise es einer Befehlsschaltfläche zu. Die Funktionsweise des Makros ist gleich dem aus Antwort 1.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
dann versuche mal nachfolgendes Makro. Kopiere es ebenfalls in ein StandardModul und weise es einer Befehlsschaltfläche zu. Die Funktionsweise des Makros ist gleich dem aus Antwort 1.
Option Explicit
Sub Daten_vergleichen()
Dim Suchname As String, Fundname As Range, letzte_Zeile_Tab1 As Long, _
letzte_Zeile_Tab2 As Long, Wiederholungen As Long, Addresse As String, _
gefundene_Zeile As Long, Wiederholungen1 As Long
Application.ScreenUpdating = False
letzte_Zeile_Tab1 = Sheets("Namensliste 1").Range("A65536").End(xlUp).Row
letzte_Zeile_Tab2 = Sheets("Namensliste 2").Range("A65536").End(xlUp).Row
For Wiederholungen = 2 To letzte_Zeile_Tab1
For Wiederholungen1 = 2 To letzte_Zeile_Tab2
If Sheets("Namensliste 1").Cells(Wiederholungen, 1) = _
Sheets("Namensliste 2").Cells(Wiederholungen1, 1) Then
Sheets("Namensliste 1").Cells(Wiederholungen, 1).Interior.ColorIndex = 4
Sheets("Namensliste 2").Cells(Wiederholungen1, 1).Interior.ColorIndex = 4
Sheets("Namensliste 2").Cells(Wiederholungen1, 1).Copy
Sheets("Auswertung").Cells(Sheets("Auswertung").Range("A65536").End(xlUp). _
Offset(1, 0).Row, 1).PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Next
Next
End Sub
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von zickentaxi
Hi coros,
danke, aber leider funktioniert es nicht.
Beschreibe mal kurz um was es geht.
Im Tabellenblatt Namensliste 1 gibt es den Wert 10020
Im Tabellenblatt Namensliste 2 gibt es den Wert 20
Wenn ich das Makro laufen lasse werden beide Werte,
also 10020 und der Wert 20 grün markiert und der Wert 10020
wird auf dem Tabellenblatt Auswertung übertrgaen.
Das ist aber leider komplett falsch, da der Wert 10020 nicht gleich 20 ist.
Vielleicht nochmal ein Versuch?
Vermute das im Makro nur die Stellenanzahl angegeben werden muss. Aber wie und wo?
Gruss
Zickentaxi
danke, aber leider funktioniert es nicht.
Beschreibe mal kurz um was es geht.
Im Tabellenblatt Namensliste 1 gibt es den Wert 10020
Im Tabellenblatt Namensliste 2 gibt es den Wert 20
Wenn ich das Makro laufen lasse werden beide Werte,
also 10020 und der Wert 20 grün markiert und der Wert 10020
wird auf dem Tabellenblatt Auswertung übertrgaen.
Das ist aber leider komplett falsch, da der Wert 10020 nicht gleich 20 ist.
Vielleicht nochmal ein Versuch?
Vermute das im Makro nur die Stellenanzahl angegeben werden muss. Aber wie und wo?
Gruss
Zickentaxi
Antwort 6 von zickentaxi
Hi coros,
mein Fehler. Tschuldigung...
Es funzt!!!!!!
Gruss
Zickentaxi
mein Fehler. Tschuldigung...
Es funzt!!!!!!
Gruss
Zickentaxi

