Acties:
  • 0 Henk 'm!

  • miicker
  • Registratie: Juni 2011
  • Niet online
Beste tweakers,

Ik ben bezig met Excel, op dit moment kopiëren ik een tabel in Excel In de eerste kolom staan telkens namen met erachter gegevens, bijvoorbeeld:
Jan - Blabl - 1 - 4
Jan - bla - 3 - 5
Piet - A - C - B
Piet - B - A - C

En het gaat zo door. Ik wil graag de rijen verwijderen als een naam hetzelfde is als zijn voorganger, dus in dit voorbeeld zouden de vetgedrukte rijen verwijderd moeten worden:
Jan - Blabl - 1 - 4
Jan - bla - 3 - 5
Piet - A - C - B
Piet - B - A - C

Ik weet vrijwel niets van VBA, ik gebruik meestal macro opnemen voor het genereren van VBA code.

Zou iemand me kunnen helpen? De tabel begint altijd op A3, dat is dan een header, op A4 beginnen de namen.

Met vriendelijke groet,
Miicker

I haven’t slept for three days, because that would be too long.


Acties:
  • 0 Henk 'm!

Anoniem: 586752

Dat kan bv. op onderstaande manier, ervan uitgaande dat Blad1 de naam is van het blad waarin je een en ander wil uitvoeren:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub macro1()
Dim x As Integer, y As Integer
With Sheets("Blad1")
x = .Range("A" & .Rows.Count).End(xlUp).Row
y = x
Do While y > 3
If WorksheetFunction.CountIf(.Range("A4:A" & y), .Range("A" & y).Value) > 1 Then
.Rows(y).EntireRow.Delete
End If
y = y - 1
Loop
End With
End Sub

Acties:
  • 0 Henk 'm!

  • miicker
  • Registratie: Juni 2011
  • Niet online
Anoniem: 586752 schreef op maandag 09 maart 2015 @ 10:16:
Dat kan bv. op onderstaande manier, ervan uitgaande dat Blad1 de naam is van het blad waarin je een en ander wil uitvoeren:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub macro1()
Dim x As Integer, y As Integer
With Sheets("Blad1")
x = .Range("A" & .Rows.Count).End(xlUp).Row
y = x
Do While y > 3
If WorksheetFunction.CountIf(.Range("A4:A" & y), .Range("A" & y).Value) > 1 Then
.Rows(y).EntireRow.Delete
End If
y = y - 1
Loop
End With
End Sub
Bedankt, ik ga het even proberen, kan ik Blad1 ook vervangen door er ActiveSheet van te maken?

I haven’t slept for three days, because that would be too long.


Acties:
  • 0 Henk 'm!

Anoniem: 586752

Ja dat kan.
Hopelijk voer je de code dan niet per ongeluk uit in een blad waarin je dat niet wil.

Acties:
  • 0 Henk 'm!

  • miicker
  • Registratie: Juni 2011
  • Niet online
Anoniem: 586752 schreef op maandag 09 maart 2015 @ 10:36:
Ja dat kan.
Hopelijk voer je de code dan niet per ongeluk uit in een blad waarin je dat niet wil.
Nee dat zal niet gebeuren, aangezien het Excel bestand maar één tabblad heeft, maar de naam van het tabblad is variërend.

I haven’t slept for three days, because that would be too long.


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Waarom vba als duplicaten verwijderen is ingebouwd? Ide plek in de tabel van belang?

offtopic:
Let ajb ook op je topictitel. 'Excel vba vraag' zegt niets over het onderwerp van de vraag.

[ Voor 57% gewijzigd door Lustucru op 09-03-2015 17:21 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

Anoniem: 586752

Met "Duplicaten verwijderen" in het Excelmenu kun je niet hele rijen verwijderen als niet alle kolommen daarvan gelijk zijn. De vragensteller wil rijen verwijderen als alleen de waarden in kolom A aan alkaar gelijk zijn, dan is "Duplicaten verwijderen" niet meteen de meest aangewezen optie.

Acties:
  • 0 Henk 'm!

  • miicker
  • Registratie: Juni 2011
  • Niet online
Lustucru schreef op maandag 09 maart 2015 @ 17:18:
Waarom vba als duplicaten verwijderen is ingebouwd? Ide plek in de tabel van belang?

offtopic:
Let ajb ook op je topictitel. 'Excel vba vraag' zegt niets over het onderwerp van de vraag.
Omdat het gebruikt wordt door gebruikers, een een knop die dat snel doet makkelijker is, ik heb het in ieder geval werkend met de gegeven code.

I haven’t slept for three days, because that would be too long.


Acties:
  • 0 Henk 'm!

  • Witte
  • Registratie: Februari 2000
  • Laatst online: 01-04 17:01
Ik gebruik voor dit soort acties meestal een hulpkolom met de vergelijking:

= ALS (A3=A2;"X";"")

Daarna filteren op X en rijen verwijderen maar...

Houdoe


Acties:
  • 0 Henk 'm!

Anoniem: 586752

Dat kan, mits de namen alfabetisch gesorteerd staan.

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Anoniem: 586752 schreef op dinsdag 10 maart 2015 @ 01:17:
Met "Duplicaten verwijderen" in het Excelmenu kun je niet hele rijen verwijderen als niet alle kolommen daarvan gelijk zijn.
Je vergist je. Je kunt selecteren welke kolommen Excel moet vergelijken om de hele rij te verwijderen.
miicker schreef op dinsdag 10 maart 2015 @ 09:38:
[...]
Omdat het gebruikt wordt door gebruikers, een een knop die dat snel doet makkelijker is, ik heb het in ieder geval werkend met de gegeven code.
Ik vraag me af wat op de lange termijn makkelijker is: mensen een universeel toepasbare methode aanleren die voor alle werkbladen geldt of ze leren een macro te starten?

[ Voor 39% gewijzigd door Lustucru op 10-03-2015 18:46 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

Anoniem: 586752

Lustucru schreef op dinsdag 10 maart 2015 @ 18:43:
Je vergist je. Je kunt selecteren welke kolommen Excel moet vergelijken om de hele rij te verwijderen.
Je hebt gelijk, ik vergiste mij; maar de vragensteller vroeg om een macro.

[ Voor 7% gewijzigd door Anoniem: 586752 op 11-03-2015 08:20 ]

Pagina: 1