Toon posts:

[Excel] Macro aanmaken verwijder gelijke kolom

Pagina: 1
Acties:
  • 234 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo allemaal

Ik hoop dat iemand mij kan helpen want zelf kom ik er niet meer uit...

Mijn probleem:
Ik moet in een tabal in excel van 20.000 rijen en 20 kolommen alle dubbele rijen erwijderen....
Nu is het probleem dat er een hele rij verwijderd moet worden als er in één kolom al twee gelijke cellen onder elkaar staan..
Ik moet dus een of ander programmatje (macro tje ofzo) hebben die een cel bv A1 vergelijkt met die daaronder B1. Als die hetzelfe zijn moet het een waarschuwing geven en mij de mogelijkheid geven te kiezen welke ik wil verwijderen
Maar dan wil ik niet alleen die ene cel verwijderen, ik wil dan de hele rij verwijderen...

Ik hoop dat iemand mijn probleem snapt en er een oplossing voor heeft..

Alvast bedank..

Groeten Wouter

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Welkom op GoT! :)

Een hele rij verwijderen als in 1 kolom op die rij twee cellen gelijk zijn? Daar klopt iets niet ;)

Maar inderdaad is dit (als ik het goed begrijp) heel goed te doen met een VBA macro; met een simpel FOR loopje kan je alle kolommen en vervolgens alle rijen afgaan, en als (i,j).value = (i+1,j) kan je kolom j verwijderen:
code:
1
2
3
If ActiveSheet.Cells(i, j).Value = ActiveSheet.Cells(i + 1, j).Value Then
    Columns(j).Delete
End If


Als je nog niet precies weet hoe en wat mogelijk is met VBA: er zijn vele vele tutorials te vinden op het web (en onder F1 in Excel) en 'spelen' met de macro-opneemknop en wat zelf doen geeft ook veel tips.

offtopic:
Ik maak je topictitel even af; zo kunnen we niet zien over welk programma je vraag gaat ;)
Zie ook het SA Policy + dit
:)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Brothar
  • Registratie: Oktober 2000
  • Laatst online: 04-02 09:14

Brothar

meester

Een rij is toch aleen dubbel als alle 20 kolommen in die 2 rijen identiek zijn ?
Wil alle rijen verwijderen als:
1. er ook maar 1 kolom in die 2 rijen is die gelijk is aan de kolom erboven, of
2. alle kolommenin die 2 rijen identiek zijn, of
3. alleen de waarde in kolom 1 (die gebruik je namelijk vaak voor een naam, of voor een volgnummer) van die 2 rijen identiek is ?
En mag dit alleen als die 2 rijen in de tabel onder elkaar staan, of mag er een willekeurig aantal rijen tussen zitten ?

De wijze waarop je dan de loops moet bouwen verandert dan nogal.

eagle


Verwijderd

Topicstarter
Het is de bedoeling dat het macrotje een combinatie van veschillende kolommen in 2 opeenvolgende rijen controleerd. Zodra deze combinatie hetzelde is moet het me waarschuwen.
De rijen die helzelde zijn bevinden zich altijd onder elkaar, dus vandaar dat het om opeenvolgende rijen gaat. Maar als er een oplossing is dat het macrotje ze in willekeurige volgorde bekijkt houd ik me aanbevolen..

Ik denk dat ik het op deze manier beter heb beschreven. En hoop dat er zodoende een oplossing voor mijn probleem kan worden gevonden.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Ik denk dat ik het op deze manier beter heb beschreven.
Niet echt, ik snap er nu nog minder van ;)
Een voorbeeld of twee werkt wellicht beter.
En hoop dat er zodoende een oplossing voor mijn probleem kan worden gevonden.
Maar het lijkt me dat je dit zo zelf wel kan maken? Lijkt vrij simpel - zeker ls je even kijkt wat FOR en het voorbeeldje dat ik gaf precies doen :)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
Een voorbeeldje:
code:
1
2
3
4
5
Naam    Adres   Huisnummer  Telefoonnummer
Piet    staat   2       56
Jan laan    3       78
Jan laan    3       78
Klaas   plein   5       23

Ik heb ongeveer z'n tabel. Nu wil ik dat de macro de kolommen Naam en Adres samen bekijkt. Zodra bijde kolommen in de volgende rij dezelfde inhoud hebben als de voorgaande rij moet de macro de laatste verwijderen. Maar niet de inhoud van deze twee kolommen, maar de gehele rij moet uit de tabel worden verwijderd.

Khoop dat het zo wel duidelijk is wat ik bedoel. :)

[ Voor 2% gewijzigd door F_J_K op 23-08-2003 01:32 . Reden: F_J_K past even de opmaak aan O-) ]


Verwijderd

Topicstarter
jammer de opmak blijft niet hetzelfde... Khoop dat er nog een tabel uitgehaald kan worden!!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Verwijderd schreef op 22 August 2003 @ 23:40:
jammer de opmak blijft niet hetzelfde... Khoop dat er nog een tabel uitgehaald kan worden!!
Ik heb het voor je aangepast O-)
Onderaan de http://gathering.tweakers.net/forum/faq staat trouwens hoe: met [code] tags :)

* F_J_K strijkt even heel erg over z'n hart en doet het voor:
code:
1
2
3
4
5
6
For i = 1 To 5
    If ActiveSheet.Cells(i, 1).Value = ActiveSheet.Cells(i + 1, 1).Value _
     And ActiveSheet.Cells(i, 2).Value = ActiveSheet.Cells(i + 1, 2).Value Then
        Rows(i).Delete
    End If
Next i

Aanpassen naar smaak.

Maar dat is niet de bedoeling van GoT, je hoort toch echt zelf je werk te doen en dus de macro af te maken ;)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
Ok hartstikke bedankt voor dit voorzetje. Ik kon er zelf geen oplossing voor bedenken, kwas al bijna die hele tabel zelf doorgelopen :)...
Ik zal um verder naar mijn eigen smaak aanpassen en verder afronden.
Pagina: 1