• 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.

Excel, waarden in workbooks vergelijken

Status
Niet open voor verdere reacties.

IlonadeGroot

Gebruiker
Lid geworden
1 apr 2011
Berichten
167
Goedemorgen,

Ik ben op zoek naar een mogelijkheid voor het volgende:

Ik heb 2 Excel workbooks (Excel 2013 ENG).
In deze 2 worksbooks staan een aantal gelijke gegevens, echter zijn de headers van de kolomkoppen verschillend (het gaat ook om erg veel kolommen, en dit kan ook nog varieëren).
Ik wil graag weten of het mogelijk is om vanuit workbook 1 te vergelijken of er waarden zijn die ook ergens voorkomen in het andere workbook en dan b.v. een kleur te geven,
let wel, dat zullen niet dezelfde kolommen zijn en ook niet dezelfde headers. De waarden kunnen tekst of numeriek zijn.
Ik heb me gek gezocht op Google, maar vind daar alleen V-lookup (geen optie i.v.m. het aantal kolommen) of VBA maar dan dat in gelijke kolommen wordt gezocht.
Iemand die weet of dit mogelijk is?
Ik vind het ook geen probleem om het in 1 workbook te zetten en dan in verschillende sheets te vergelijken o.i.d.

Alvast bedankt :thumb:
 
Als je dat doet, dat samenvoegen in één werkboek, faciliteert een en ander natuurlijk aanzienlijk.

Staan de te zoeken waarden dubbel in het andere bestand?
Als dat niet zo is is het vrij makkelijk op te lossen.

Post eens een bestandje met op 2 bladen enkele regels, zodat we zien hoe het eruit ziet.
Schrijf er maar bij wat wanneer moet gebeuren.
 
In één werkboek is dat makkelijk zoals reeds gezegd.

Duw maar op de button 'Opzoeken'
 

Bijlagen

Laatst bewerkt:
Hoi Cobbe,

Ik heb geprobeerd deze aan te passen naar een grotere range, maar dat lukt helaas niet.
De GTIN zal n.l. niet altijd in kolom G staan en ik wil alle waarden in de regel juist met de andere sheet vergelijken a.d.h.v. de GTIN (ik weet niet of het mogelijk is om het via de header op te laten zoeken?).
Ik zal een screenshot bijvoegen wat ik heb aangepast.

Screenshot.png
 
Die .Range("A2:L") & .Range("A" & .Rows.Count).End(xlUp).Row)

zorgt ervoor dat je alle cellen doorloopt in het bereik A2:L100 indien er 100 rijen gevuld zijn in kolom A
Het is dus enkel 'A2:L' dat je moet aanpassen aan uw situatie.
 
Dat dacht ik dus ook, maar met deze aanpassing worden alleen regel 1 en 2 gedaan.
Toen dacht ik misschien ("A:L") maar dan krijg ik de debugger.
 
.Range("A2:L") & .Range("A" & .Rows.Count).End(xlUp).Row)'

bestrijkt het bereik A2:L & het aantal rijen dat gevuld is in kolom A

Als in kolom A de rijen A2 tot A100 gegevens bevat is het bereik met deze formule A2:L100
 
Ah het bleek dat ik mijn eigen tekst even weg moest halen, sorry ben nog een leek.
Ik zie nu alleen wel dat de lege velden ook gekleurd worden, kan ik deze nog uitsluiten?
En kan ik ook op regelniveau de vergelijking laten doen op GTIN? Ik heb nu wat regels toegevoegd en expres verschillende waarden ingevuld,
maar hij ziet ze toch als bestaand omdat het op een andere regel wel voorkomt.
 
Laatst bewerkt:
Nu loopt de code regel per regel na.
Je krijgt per regel een andere kleur.
 

Bijlagen

Met voorwaardelijke opmaak moet je toch al een eind (zelfs 100%) kunnen komen.
 

Bijlagen

Moeten de gezochte waarden op dezelfde regel staan als in Blad1 of niet?

Heb de gegevens van blad2 op dezelfde rijen gezet als in blad1.
 

Bijlagen

Laatst bewerkt:
Moeten de gezochte waarden op dezelfde regel staan als in Blad1 of niet?

Nee deze kunnen op verschillende regels staan, vandaar dat ik wil kijken of er een mogelijkheid is om op de GTIN code in een bepaalde regel te zoeken.
 
Maar ze moeten wel op dezelfde rij staan als het ID-nummer?

Code:
Sub cobbe()
Dim cl As Range
With Sheets(1)
lrij = .Range("A" & .Rows.Count).End(xlUp).Row
  For Each cl In .Range("A3:A" & lrij)
    Set gevonden = Sheets(2).Columns(1).Find(cl.Value)
     If Not gevonden Is Nothing Then
      For Each wr In .Range("A" & cl.Row & ":L" & cl.Row)
       If wr > "" Then
        Set tref = Sheets(2).Rows(cl.Row).Find(wr)
         If Not tref Is Nothing Then
           kleur = Sheets("kleuren").Cells(cl.Row + 11, 1)
            .Cells(cl.Row, wr.Column).Interior.Color = kleur
         End If
       End If
      Next
    End If
  Next
End With
End Sub
 
Hallo Cobbe,

Nu worden sommige velden wel gevonden en andere niet.
Ik probeer je code te snappen, maar kom er niet uit. (Als het goed is snap ik hier binnenkort veel meer van, net een mooi boek binnen gekregen 'Excel 2013 Power Programming with VBA van John Walkenbach' dus hoop ik dat ik het zo een beetje kan leren.)

Ik zal nog even mijn punten op een rij zetten.

- De GTIN is de enige unieke sleutel die in beide bestanden/sheets altijd aanwezig zal zijn, echter staan deze niet in dezelfde kolommen of rijen, en dit kan elke keer als ik deze bestanden/sheets binnenhaal ook weer een andere kolom/rij zijn.
- In beide bestanden/sheets zullen de artikelen niet op dezelfde regels staan, vandaar dat ik wil laten zoeken op de GTIN code die ingevuld is.
- A.d.h.v. de GTIN code wil ik dat er gezocht wordt in het andere bestand of sheet naar dezelfde code en wanneer dit een match is wil ik dat de waarden in die regel met elkaar vergeleken worden. Ook deze staan in verschillende kolommen.
- Als een waarde uit de eerste sheet ook voorkomt in de andere sheet (op de regels van de unieke GTIN) dan zou ik graag willen dat de cel een kleurtje krijgt.

Ik hoop dat het zo duidelijk is?

Bijgevoegd het bestandje waar ik jouw laatste code in heb gezet, je ziet hier dat niet alles met elkaar vergeleken wordt.


Bekijk bijlage Opzoeken(cobbe) (1).xlsm
 
Dan doet deze dat toch (als ik het goed heb begrepen).
Nu zoekt hij op GTIN nummer in je 2deblad, als dat nummer gevonden is vergelijkt hij de waarden van de rij in blad1 met de waarden in blad2 en kleurt de overeenkomsten.
 

Bijlagen

Hallo Cobbe,

Ik krijg een runtime error 13, Type mismatch, als ik het in mijn eigen bestand plaats en een paar verwijzigen aangepast heb:

Code.png
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan