Dubbele rij verwijderen

  • Onderwerp starter Onderwerp starter sz8
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

sz8

Gebruiker
Lid geworden
15 sep 2013
Berichten
6
Wie kan mij helpen, ben echt een leek op VBA gebied..
Ik heb deze data:(datum en tijd staat in 1 kolom)
28-08-2013 1:08 0 0 244 242 479 479 5 4 4
28-08-2013 1:09 0 0 244 242 479 479 5 4 4
28-08-2013 1:10 0 1 244 242 479 479 5 4 4
28-08-2013 1:11 0 1 244 242 479 479 5 4 4
28-08-2013 1:12 1 0 244 241 479 479 5 5 4
En wil deze filteren op kolom 3 waarde 1 en heb deze macro hiervoor gebruikt

Code:
Sub Macro1()
  Application.ScreenUpdating = False
  With Sheets("data")
  For Each Cel In .Range("c1:C100000")
    If Cel = "1" Then
               Cel.EntireRow.Copy
            With Sheets("resultaat")
                .Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row) _
                        .Offset(1).PasteSpecial xlValues
            End With
        End If
      Next
  End With
  With Application
    .CutCopyMode = False
    .ScreenUpdating = True
End With
End Sub
Ik heb dan alle regels op blad 2:
28-08-13 1:35 0 1 252 242 479 479 6 5
28-08-13 1:36 0 1 253 242 479 479 6 5
28-08-13 2:01 0 1 254 252 479 479 7 6
28-08-13 2:02 0 1 254 251 479 479 7 6
28-08-13 2:26 0 1 250 253 479 479 8 7

Maar er zitten regels bij met dezelfde data ik kolom E en H, ik wil 1 van de regels verwijderen en heb dit gevonden:

Code:
X = activeCell.Row
Y = x + 1
Do while Cells (x, 7). value <> “”
Do while Cells (y, 7).value <> “”
If (Cells(x, 7).Value = Cells (y, 7). Value) And (Cells(x,9).Value  = Cells(y,9).Value) Then Cells(y, 7).EntireRow.Delete
Else
y  = y + 1
End if
Loop
x  = x + 1
y = x + 1
Loop
End sub
Krijg bij Else de fout melding: else without if.

Wie weet wat de fout is of kunnen deze 2 opdrachten misschien ook in 1 macro verwerkt worden?

Alvast bedankt!
 
Laatst bewerkt:
Ik heb echt totaal geen idee wat dit is en waar het over gaat, maar probeer eens 'else if' in plaats van alleen else bij de laatste code.
 
geneste lus

Ik heb het voorbeeld van microsoft gebruikt; zie link maar krijg de melding else without if.

http://office.microsoft.com/nl-nl/training/een-voorbeeld-van-een-geneste-lus-waarmee-u-dubbele-rijen-kunt-verwijderen-RZ001150634.aspx?section=19

Code:
x = ActiveCell.Row
y = x + 1
Do While Cells(x, 7).Value <> ""
Do While Cells(y, 7).Value <> ""
If (Cells(x, 7).Value = Cells(y, 7).Value) And (Cells(x, 9).Value = Cells(y, 9).Value) Then Cells(y, 7).EntireRow.Delete
Else
y = y + 1
End If
Loop
x = x + 1
y = x + 1
Loop
End Sub
 
Je syntax is niet juist. Als je de opdracht op dezelfde regel als Then zet, mag je geen else op deze manier gebruiken.
Code:
        If Cells(x, 7).Value = Cells(y, 7).Value And Cells(x, 9).Value = Cells(y, 9).Value Then
            Cells(y, 7).EntireRow.Delete
        Else
            y = y + 1
        End If
Netjes programmeren is ook een kunst ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan