tabellen vergelijken

Status
Niet open voor verdere reacties.

kohltje

Gebruiker
Lid geworden
17 sep 2010
Berichten
45
Beste helpers,

ik heb een document met 2 tabellen die ik wil vergelijken. Ik wil weten welke nummers er niet bij elkaar voorkomen en wel kruislings. Als de gegevens uit tabel A niet in tabel B voorkomen of de gegevens van tabel B niet in tabel A wil ik dit graag zichtbaar hebben door een kleur of een tekst? :o

Zie bijlage...

iemand een idee?

Bedankt!Bekijk bijlage macro voor vergelijken tabellen V1.1.xls
 
Volgens mij is dit een beetje wat je bedoelt...

Wat jij wilt kan ook met formules en voorwaardelijke opmaak.

Maar als je het toch als macro wilt hebben dan zou ik het bijgevoegde doen, waarschijnlijk kan dit wel beter, maar het doet wel wat je wilt...
 

Bijlagen

de code en uitleg was ik even vergeten bij te voegen.

Code:
'---------------------------------------------------------------------------------------
' Module    : modHelpmij
' Author    : Interface
' Date      : 12-1-2012
' Purpose   : Compare
'---------------------------------------------------------------------------------------

Option Explicit

Sub Interface()

Dim i               As Long

Application.ScreenUpdating = False

With Sheets("tbTable")
    For i = 2 To .UsedRange.Rows.Count
        Select Case WorksheetFunction.CountIf(.UsedRange.Columns(1), .Cells(i, 1))
            Case Is >= 1
                Select Case WorksheetFunction.CountIf(.UsedRange.Columns(3), .Cells(i, 1))
                    Case Is >= 1
                        .Cells(i, 1).Interior.Color = vbRed
                    Case Is = 0
                        .Cells(i, 1).Interior.Color = vbGreen
                End Select
            End Select
        Select Case WorksheetFunction.CountIf(.UsedRange.Columns(3), .Cells(i, 3))
            Case Is >= 1
                Select Case WorksheetFunction.CountIf(.UsedRange.Columns(1), .Cells(i, 3))
                    Case Is >= 1
                        .Cells(i, 3).Interior.Color = vbRed
                    Case Is = 0
                        .Cells(i, 3).Interior.Color = vbGreen
                End Select
            Case Is = 0
        End Select
    Next i
End With

Application.ScreenUpdating = True

End Sub
 
ja dit kan sneller...

Ik was vergeten dat op het moment dat er met een zoekwaarde wordt gewerkt, ik natuurlijk niet meer een logische test hoef te doen, om te controleren of de zoekwaarde in z'n eigen actieve kolom voorkomt, dit is altijd true....:$

Ik ga er even vanuit dat de kolom waar de waarde in staat waarmee we vergelijken aanspreken als A is en de kolom waar de zoekwaarde niet uit wordt opgehaald aanspreken als B is.

Dan heb je twee scenario's die er toedoen(de waarde kom in ieder geval voor in A): B wel(cel wordt rood) of B niet(cel wordt groen). A is namelijk altijd True en B is dus variabel...


Code:
'---------------------------------------------------------------------------------------
' Module    : modHelpmij
' Author    : Interface
' Date      : 12-1-2012
' Purpose   : Compare
'---------------------------------------------------------------------------------------

Option Explicit

Sub Interface()

Dim i               As Long

Application.ScreenUpdating = False

With Sheets("tbTable")
    For i = 2 To .UsedRange.Rows.Count
        Select Case WorksheetFunction.CountIf(.UsedRange.Columns(3), .Cells(i, 1))
            Case Is >= 1
                .Cells(i, 1).Interior.Color = vbRed
            Case Is = 0
                .Cells(i, 1).Interior.Color = vbGreen
        End Select
        Select Case WorksheetFunction.CountIf(.UsedRange.Columns(1), .Cells(i, 3))
            Case Is >= 1
                .Cells(i, 3).Interior.Color = vbRed
            Case Is = 0
                .Cells(i, 3).Interior.Color = vbGreen
        End Select
    Next i
End With

Application.ScreenUpdating = True

End Sub
 
Laatst bewerkt:
of

Code:
Sub snb()
  sn = Blad1.Columns(1).SpecialCells(2)
  sp = Blad1.Columns(3).SpecialCells(2)
    
  For j = 2 To UBound(sn)
    If InStr("|" & Join(Application.Transpose(sp), "|") & "|", "|" & sn(j, 1) & "|") = 0 Then Cells(j, 1).Interior.Color = vbRed
  Next
    
  For j = 2 To UBound(sp)
    If InStr("|" & Join(Application.Transpose(sn), "|") & "|", "|" & sp(j, 1) & "|") = 0 Then Cells(j, 3).Interior.Color = vbRed
  Next
End Sub
 
Laatst bewerkt:
haha

Je bent de beste Interface!!!
Thanx!!!

Nee zeker niet, ik denk dat SNB en Mark XL toch wel net ietsjes beter zijn, hun code ziet er meestal wat cleaner uit. Ik concentreer me vooral op snelheid, maar dat zullen hun ook wel doen denk ik...

Iig You're welcome
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan