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

Dubbele waarden verwijderen

Status
Niet open voor verdere reacties.

frank1985

Gebruiker
Lid geworden
7 aug 2009
Berichten
39
Hallo,

Een aantal gegevens van gemaakte facturen worden weggeschreven naar dit document. Facturen die aangepast worden komen hier dubbel in te staan. Graag zou ik de nieuwste facturen behouden en de oude verwijderen uit de lijst. Het gaat om de data in kolom O waarop geselecteerd moet worden naar nieuwste facturen.

Bekijk bijlage Dubbele waarden verwijderen.xlsx

Alvast hartelijk dank!
 
Het lijkt me handiger als de procedure die het in dat document wegschrijft erop controleert.
 
Ik zou ook gaan voor de suggestie van edmoor.

als je hier niet voor kiest kun je het ook als volgt oplossen.

b1=ALS(AANTAL.ALS($E$7:$E7;$E7)=AANTAL.ALS($E$7:$E$1000;$E7);"";"verwijder deze rij") en trek deze door naar beneden.

Daarna filter je op verwijder deze rij en vervolgens verwijder je deze rij.
 
Bedankt voor jullie reactie.
Ik wil het graag in dit document doen. Het komt maar 1x per kwartaal voor dat de (eventuele) dubbele waarden verwijderd moeten worden en dat gebeurt handmatig.

Helaas staat in het oude bestand de code nog niet... EXCUUS!
Hierbij:

Code:
Private Sub Image01_Click()
'Dubbele waarden verwijderen
Hide
    Dim i As Long
    Dim Br
    Dim Br2 As String
    Dim Rn As String
    
    Br = Sheets("[COLOR="#FF0000"]Debiteur Facturen[/COLOR]").Range("D5:D" & Cells(Rows.Count, 2).End(xlUp).Row)
    With CreateObject("Scripting.Dictionary")
        For i = 1 To UBound(Br)
            If .exists(Br(i, 1)) Then
                If Cells(.Item(Br(i, 1)), 7) < Cells(12 + i, 7) Then .Item(Br(i, 1)) = 12 + i
            Else
                .Item(Br(i, 1)) = 2 + i
            End If
        Next
        Br2 = "|" & Join(.items, "|") & "|"
    End With
    For i = 5 To UBound(Br) + 2
        If InStr(Br2, "|" & i & "|") = 0 Then Rn = Rn & "," & i & ":" & i
    Next
    If Rn <> "" Then Range(Mid(Rn, 2)).Delete shift:=xlUp

    
End Sub

Uit een oud bestand heb ik deze code, maar ik krijg heb niet werkend helaas. Waar ligt dit aan?
Deze code gaat mijn 'VBA pet' te boven...

Groet Frank
 
Als je de gegevens sorteert op datum (van oud naar recent) gaat er niets mis met de dictionary
 
en heb je mijn oplossing in #3 geprobeerd en zo ja, wat was je conclusie.
 
@Excelamateur: bij mij werkt hij niet
@snb: dat was het probleem, hij werkt uitstekend!
Allen bedankt voor jullie medewerking!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan