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

Gegevens uit kolom excel document 1 vergelijken met document 2

Status
Niet open voor verdere reacties.

Luna08

Gebruiker
Lid geworden
14 apr 2009
Berichten
28
Hallo,

Ik heb een excel document dat gegenereerd wordt uit een ander programma.
Na het genereren gaan diverse mensen aan het werk met het document en vullen data aan in de bestaande rijen.

Als er in het hoofdprogramma wijzigingen komen wordt het excel document opnieuw gegenereerd, uiteraard zitten hier de wijzigingen welke de diverse mensen toegevoegd hebben er dan niet meer bij.

De waarde welke wijzigt (een reeks cijfers) staat altijd in kolom b.
De toevoeging welke men in het document zet altijd in kolom a.

Nu zoek ik een macro code om vanuit het nieuwe bestand een controle te doen:
Kijk in de 1ste cel van kolom B (nieuw document, zoek deze waarde in kolom B (oude document). Als de waarde overeenkomt kopieer data van kolom A uit die rij naar het nieuwe document, ook kolom A. Bestaat de waarde niet in het oude document dan wijzigt er niets.

Daarna rij 2, 3,4 enz.

Omdat me dit nogal lastig leek ben ik klein begonnen (2 tabbladen ipv 2 documenten).

Na wat proberen kom ik op:
Code:
Public Sub IMPORT()
i = 1
For i = 1 To 10
    If Cells.Find(What:=Sheets(2).Cells(i, 2), After:=Range("B1"), LookIn:=xlFormulas, lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) = True Then
        
        BRON = Cells.Find(What:=Sheets(2).Cells(i, 2), After:=Range("B1"), LookIn:=xlFormulas, lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
    
        If Cells.Find(What:=Sheets(2).Cells(i, 2), After:=Range("B1"), LookIn:=xlFormulas, lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Value <> "" Then
            Sheets(1).Activate
            RijNR = (Cells.Find(What:=Sheets(2).Cells(i, 2), After:=Range("B1"), LookIn:=xlFormulas, lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Row)
            Sheets(2).Cells(i, 1) = Sheets(1).Cells(RijNR, 1)
        Else
        End If
    Else
   
    End If
Next
End Sub

Dit werkt echter niet als er een waarde is die niet in beide documenten zit, en ik geloof niet dat dit de meest efficiënte code is.

Iemand die me wat verder kan helpen?
Alle hulp wordt gewaardeerd!
 
Voor twee werkbladen.
Code:
Sub HSV()
  Dim sq As Variant, i As Integer, bld1row As Integer
   With Sheets("Blad2")
  sq = .Range("B2:B" & .Cells(.Rows.Count, 2).End(xlUp).Row)
    For i = 1 To UBound(sq)
   On Error GoTo einde
 With Sheets("Blad1")
   bld1row = .Columns(2).Find(sq(i, 1), , xlValues, xlWhole).Row
   Sheets("Blad2").Cells(i + 1, 1) = .Cells(bld1row, 1)
   End With
einde:   bld1row = 0
   Next
  End With
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan