• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Vergelijken van twee werkbladen

Status
Niet open voor verdere reacties.

Christian Evers

Gebruiker
Lid geworden
29 okt 2001
Berichten
93
Ik zoek een manier om twee bestanden met elkaar te vergelijken. Ik heb hier al gezocht en een 'Dubbelganger' invoegfunctie gevonden maar die geeft niet het gewenste resultaat.

Ik heb twee werkbladen (A &B), die alleen wat betreft de eerste kolom overeenkomen. Deze kolom wil ik vergelijken. Werkblad A heeft de juiste kolomwaarden, deze wil ik ook in werkblad B hebben.

Een voorbeeldje:
A---B (werkblad, kolom a)
a---a
b---c
c---d
d---e
e---f
f
g


Werkblad A heeft dus meer waarden in de kolom. De waarden die niet in werkblad B zitten wil ik daarin toegevoegd hebben in een nieuwe regel.

De waarden die wel in werkblad B voorkomen, maar niet in Werkblad A moeten uit werkblad B verwijderd worden (de hele regel).

Ik hoop dat het probleem een beetje duidelijk is, zo niet dan hoor ik dat graag.

Kan iemand me hier een oplossing voor verschaffen?
 
Met andere woorden:
Je wil werkblad B identiek maken aan werkblad A?
Gewoon werkblad A kopiëren, en over werkblad B plakken.

Luc
 
Christian,

Dit programma kopieert de hele regel van Blad1 naar Blad2 ,als de kolommen A op beide Bladen niet overenkomen.
 

Bijlagen

Nee nee, was het maar zo makkelijk :)

werkblad B heeft een indeling die ik graag wil behouden, daar staan meer (en andere) kolommen achter dan bij werkblad A.

-edit- sorry LucB, onze posts overlapten elkaar, deze reactie was niet op jouw bericht, ik zal het eens bekijken, alvast bedankt!
 
LucB, de vervanging van de lijst is heel mooi, maar helaas wist hij ook alle gegevens van de kolommen die achter de eerste kolom in werkblad B stonden. Deze wil ik juist graag behouden.

De gegevens uit werkblad A zijn verder niet van belang. (met uitzondering dus natuurlijk van kolom A)
 
Laatst bewerkt:
Hoi Christian,

Even deze macro afspelen:

Sub Vergelijk()
Dim i As Integer
With Sheets("B")
For i = .Range("A65536").End(xlUp).Row To 1 Step -1
If Application.WorksheetFunction.CountIf _
(Sheets("A").Range("A:A"), .Cells(i, 1)) _
= 0 Then .Rows(i).Delete
Next
End With
With Sheets("A")
For i = 1 To .Range("A65536").End(xlUp).Row
If Application.WorksheetFunction.CountIf _
(Sheets("B").Range("A:A"), .Cells(i, 1)) = 0 Then
.Rows(i).Copy Sheets("B").Range("A65536") _
.End(xlUp).Offset(1, 0)
End If
Next
End With
End Sub

Luc
 
Luc,

Bedankt voor je macro, maar het doet niet datgene dat ik wil. Hij voegt wel de waarden toe die niet in in werkblad B staan, maar overschrijft ook de kolommen die daarna komen, dat wil ik juist niet.

Als er een waarde is in werkblad A die nog niet in werkblad B staat dan hoeft alleen maar de eerste kolom te worden ingevoegd. De kolommen daarachter moeten leeg blijven, die zal ik handmatig moeten invullen.

En volgens mij voorziet deze macro er ook niet in dat er waarden zijn in werkblad B die gewist moeten worden als ze niet in werkblad A voorkomen.

:o
 
Sub Vergelijk()
Dim i As Integer
With Sheets("B")
For i = .Range("A65536").End(xlUp).Row To 1 Step -1
If Application.WorksheetFunction.CountIf _
(Sheets("A").Range("A:A"), .Cells(i, 1)) _
= 0 Then .Rows(i).Delete
Next
End With
With Sheets("A")
For i = 1 To .Range("A65536").End(xlUp).Row
If Application.WorksheetFunction.CountIf _
(Sheets("B").Range("A:A"), .Cells(i, 1)) = 0 Then
.Cells(i, 1).Copy Sheets("B").Range("A65536") _
.End(xlUp).Offset(1, 0)
End If
Next
End With
End Sub

Succes,

Luc
 
Perfect Luc H!

Ik dacht nog even dat het niet klopte maar dat kwam doordat ik een dubbel nummer in werkblad B had, die moest ik eerst verwijderen. Maar nu na een sortering ziet het er prachtig uit! Heel erg bedankt!

LucB ook hartstikke bedankt voor de genomen moeite!

Groeten,
Christian
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan