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

Nieuwe gegevens op apart werkblad zetten

Status
Niet open voor verdere reacties.

Phill

Verenigingslid
Lid geworden
2 jan 2012
Berichten
70
Een tijdje geleden heb ik de vraag gesteld om twee werkbladen te vergelijken en als de gegevens in blad 1 stonden, maar in blad 2 niet, dan moest de gehele regel in blad 3 gezet worden.
Onderstaande macro heb ik destijds ontvangen en die werkt prima.

Sub hsv()
Dim cl As Range, c As Range
For Each cl In Blad1.Columns(1).SpecialCells(2)
Set c = Blad2.Columns(1).Find(cl, , , xlWhole)
If c Is Nothing Then
Blad3.Cells(Rows.Count, 1).End(xlUp).Offset(1).EntireRow.Value = cl.EntireRow.Value
End If
Next cl
End Sub

Nu wil ik ook de vergelijking maken tussen blad 2 en blad 1 waarbij de zaken die in blad 2 staan en niet in blad 1 in blad 4 gezet worden.

Ik dacht dat ik derhalve gewoon de bladnummers maar hoefde te wijzigen in de macro en dat dit dan werkte. Helaas.

Kan iemand mij uitleggen waarom niet? en hoe werkt dit dan wel.

Bekijk bijlage Test(1).xls
 
bladnamen aanpassen

Code:
Sub hsv()
Dim cl As Range, c As Range
For Each cl In Blad2.Columns(1).SpecialCells(2)
Set c = Blad1.Columns(1).Find(cl, , , xlWhole)
If c Is Nothing Then
Blad4.Cells(Rows.Count, 1).End(xlUp).Offset(1).EntireRow.Value = cl.EntireRow.Value
End If
Next cl
End Sub

mvg
Leo
 
Bedankt voor je reactie. Dit had ik zelf ook al bedacht, maar het werkte niet in het bestand dat ik gebruikte.

Vreemd is dat deze macro wel werkt in het bestand dat ik heb meegezonden, maar ik kan deze niet gebruiken in een ander bestand.

Desondanks toch bedankt.
 
Laatst bewerkt:
Waarom maak je geen lijst met unieke waarden? Dan hoef je geen verschillende tabjes te onderhouden.

Bv zo.

Code:
Sub VenA()
With Sheets("Blad3")
    .Cells.Delete
    For Each sh In Sheets(Array("Blad1", "Blad2"))
        ar = sh.Cells(1).CurrentRegion
        .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(ar), UBound(ar, 2)) = ar
    Next sh
    .Rows(1).Delete
    .Cells(1).CurrentRegion.RemoveDuplicates Array(1)
    .Cells(1).CurrentRegion.Sort [A1]
End With
End Sub
 
Nee dat kan niet. Blad 1 zijn de openstaande zaken van dag 1. Blad 2 zijn de openstaande zaken van dag 2. Op dag 2 zijn zaken afgehandeld en komen er nieuwe zaken bij. Ik wil dus weten welke zaken zijn afgehandeld en welke nieuw zijn. Toch bedankt voor het meedenken.
 
probeer zo eens

Code:
Sub hsv()
Dim cl As Range, c As Range
For Each cl In Sheets("Blad2").Columns(1).SpecialCells(2)
Set c = Sheets("Blad1").Columns(1).Find(cl, , , xlWhole)
If c Is Nothing Then
Sheets("Blad4").Cells(Rows.Count, 1).End(xlUp).Offset(1).EntireRow.Value = cl.EntireRow.Value
End If
Next cl
End Sub

mvg
Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan