online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon DerHans vom 06.10.2021, 10:44 Options

Tabellen vergleich

Hallo,

ich schreibe momentan ein Makro, welches zwei Tabellen miteinander vergleicht.

Ich möchte herrausfinden ob in einen der Beiden Tabellen Namen (erste Spalte) fehlen oder hinzugfügt wurden.
Falls ein Name fehlt soll die komplette Zellenreihe Orange markiert werden. (Also in der Tabelle, inder der zusätzliche Name steht)

Ich wäre über Hilfe wirklich sehr dankbar

MfG

Hans


Antwort schreiben

Antwort 1 von nighty vom 06.10.2021, 12:44 Options

hi hans ^^

ein beispiel

vergleich von worksheet 1 zu 2

gruss nighty

Option Explicit
Sub vergleich()
    Dim Wks1xAchse As Long, Wks2xAchse As Long, xAchse As Long, yAchse As Long
    Dim Wks1yAchse As Long, Wks2yAchse As Long, Zeilen As Long, Spalten As Long
    Dim QuellSuche, ZielSuche As Range
    Wks1xAchse = Worksheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Column
    Wks1yAchse = Worksheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
    Wks2xAchse = Worksheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Column
    Wks2yAchse = Worksheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
    If Wks1xAchse > Wks2xAchse Then
        xAchse = Wks1xAchse
    Else
        xAchse = Wks2xAchse
    End If
    If Wks1yAchse > Wks2yAchse Then
        yAchse = Wks1yAchse
    Else
        yAchse = Wks2yAchse
    End If
    ReDim excel1(yAchse, xAchse) As Variant
    ReDim excel2(yAchse, xAchse) As Variant
    Worksheets(2).Select
    excel2() = Range(Cells(1, 1), Cells(yAchse, xAchse))
    Worksheets(1).Select
    excel1() = Range(Cells(1, 1), Cells(yAchse, xAchse))
    For Zeilen = 2 To yAchse
        Set QuellSuche = Worksheets(2).Range("A1:A" & yAchse).Find(excel1(Zeilen, 1), Lookat:=xlWhole)
        Set ZielSuche = Worksheets(1).Range("A1:A" & yAchse).Find(excel2(Zeilen, 1), Lookat:=xlWhole)
        If Not QuellSuche Is Nothing Then
            For Spalten = 2 To xAchse
                If excel1(Zeilen, Spalten) <> "" And excel1(Zeilen, Spalten) <> excel2(QuellSuche.Row, Spalten) Then
                    Worksheets(1).Cells(Zeilen, Spalten).Interior.ColorIndex = 6
                End If
            Next Spalten
        Else
            Worksheets(1).Range(Worksheets(1).Cells(Zeilen, 1), Worksheets(1).Cells(Zeilen, xAchse)).Interior.ColorIndex = 3
        End If
        If Not ZielSuche Is Nothing Then
            For Spalten = 2 To xAchse
                If excel2(Zeilen, Spalten) <> "" And excel2(Zeilen, Spalten) <> excel1(ZielSuche.Row, Spalten) Then
                    Worksheets(2).Cells(Zeilen, Spalten).Interior.ColorIndex = 6
                End If
            Next Spalten
        Else
            Worksheets(2).Range(Worksheets(2).Cells(Zeilen, 1), Worksheets(2).Cells(Zeilen, xAchse)).Interior.ColorIndex = 3
        End If
    Next Zeilen
End Sub

Antwort 2 von nighty vom 06.10.2021, 12:50 Options

hi all ^^

rot war fehlende zeile mit index auf spalte a

gelb war abweichende mit index auf spalte a

gruss nighty

Antwort 3 von DerHans vom 06.10.2021, 12:53 Options

Das hast du jetzt doch nicht alles für mich geschrieben oder?!

Aufjedenfall sehr nett von dir danke. Es bringt mich schonmal weiter.

Lg

Antwort 4 von nighty vom 06.10.2021, 13:07 Options

hi hans ^^

sollte der speicher nicht ausreichen,muesste ich es umschreiben
jenachdem wie groß die tabellen sind :-))

gruss nighty

Ähnliche Themen

vergleich
helpmeplease1  30.03.2008 - 23 Hits - 1 Antwort

Vergleich von Herstellerpreisen
Semmelblitz  12.05.2008 - 7 Hits - 4 Antworten

Vergleich zweier Tabellen, herausfordernd individuell
maxS  11.07.2008 - 112 Hits - 4 Antworten

vergleich in excel
koethans  15.05.2009 - 192 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026