robert123321
Gebruiker
- Lid geworden
- 5 okt 2007
- Berichten
- 46
Hallo,
Ik probeer met een macro de dubbele rijen te verwijderen. Zo lang ik de macro stap voor stap door loop gaat alles goed. Echter wanneer ik de macro zelf laat runnen crashed excel :shocked:
Er is vast een veel effectievere en betere manier om deze opdracht uit te voeren.
Wat ik wil is dat wanneer er duplicaten worden gevonden dat deze gehele rijen verwijderd worden. Per rij moet kolom A t/m L dus vergeleken worden met de overige rijen (ook A t/m L). Wanneer er een duplicaat wordt gevonden, maar deze een waarde heeft staan in kolom M dan moet deze niet verwijderd worden.
Het klinkt simpel maar het heeft even geduurd voor ik het voor elkaar kreeg en dus helaas alleen als ik het stap voor stap doe.
Ik probeer met een macro de dubbele rijen te verwijderen. Zo lang ik de macro stap voor stap door loop gaat alles goed. Echter wanneer ik de macro zelf laat runnen crashed excel :shocked:
Er is vast een veel effectievere en betere manier om deze opdracht uit te voeren.
Wat ik wil is dat wanneer er duplicaten worden gevonden dat deze gehele rijen verwijderd worden. Per rij moet kolom A t/m L dus vergeleken worden met de overige rijen (ook A t/m L). Wanneer er een duplicaat wordt gevonden, maar deze een waarde heeft staan in kolom M dan moet deze niet verwijderd worden.
Het klinkt simpel maar het heeft even geduurd voor ik het voor elkaar kreeg en dus helaas alleen als ik het stap voor stap doe.
Code:
Dim cRow As Integer
Dim cRow2 As Integer
Dim cCol As Integer
Dim foundDuplicate As Boolean
cRow = 2
Do While IsEmpty(Worksheets("Verstreken").Cells(cRow, 1)) = False
cRow2 = cRow + 1
Do While IsEmpty(Worksheets("Verstreken").Cells(cRow2, 1)) = False
foundDuplicate = True
For cCol = 1 To 12
If Worksheets("Verstreken").Cells(cRow, cCol).Value <> Worksheets("Verstreken").Cells(cRow2, cCol).Value Then
foundDuplicate = False
Exit For
End If
Next
If foundDuplicate = True Then
Rows(cRow2).Select
If Selection.Columns("M") = "" Then
Worksheets("Verstreken").Rows(cRow2).Delete xlShiftUp
Else
cRow2 = cRow2 + 1
End If
End If
Loop
cRow = cRow + 1
Loop