Vraag & Antwoord

Programmeren

Rij verwijderen als er een W in kolom 7 staat

7 antwoorden
  • Hallo, het gaat over exel, hier heb ik informatie staan in ongeveer 5000 rijen en 8 kolommen. Als er in kolom 7 een W staat moet deze rij verwijdert worden. Hier gebruik ik onderstaande macro voor. Het probleem is echter dat als ik onderstaande macro toepas het nog voorkomt dat er rijen met een W erin blijven staan. Pas als ik de macro 5 a 6 keer toepas zijn alle rijen waar er in kolom 7 een W staat verdwenen. Op zich nietzo erg natuurlijk, maar ik vroeg me af of dit nu een bug is of dat mijn macro niet geheel perfect is. Weten jullie dat?? Macro: [code:1:cd461a7e52]Range("G2").Select Do Cells.Find(What:="W", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, Searchdirection:=xlNext, MatchCase:=False).Activate If ActiveCell.Column <> 7 Then Exit Do Rows(ActiveCell.Row).Delete Loop[/code:1:cd461a7e52] Groeten Wouter
  • Het lijkt erop dat hij maar 1 keer de "w" eruit haalt omdat bij de eerste keer "w" de besturing uit de loop gaat.
  • :roll: sorry, het vorige klopt niet. Ik bedoel, bereikt deze macro wel kolom 7 omdat hij start in G2 ?
  • Ja, "G" is namelijk kolom 7, dan gaat hij vanuit die kolom naar beneden zoeken, dat werkt allemaal goed, het rare is alleen dat hij sommige overslaat.
  • Oh ja stom. Staan alle cellen in die kolom op hetzelfde formaat ? Zijn de cellen uit een tekstbestand geimporteerd of geexporteerd ? Excel wil dan nog wel eens een niet afgetrimde 'w' zien zoals " w" of "w ". Is die formule kleine- of hoofdletter afhankelijk ?
  • Nee, dat is allemaal niet het geval, maar in de trein kreeg ik een briljante :P ingeving... Ik denk namelijk dat het volgende het geval is. Als er een w staat in desbetreffende kolom, wordt die rij verwijdert. Nu wordt automatisch de actieve cel een rij lager. Nou gaat hij in de loop weer verder kijken naar een volgende w, maar dat is pas een cel later dan de actieve cel! Als er dus drie w's onder elkaar staan slaat hij de 2de over! Het probleem zal opgelost moeten zijn als ik de cel die een rij hoger staat actief maak alvorens verder te gaan met zoeken. Ik ga vanavond wel even kijken of dat inderdaad zo is. Ik heb trouwens nog een probleem gehad met het zoeken in een macro. Als je in plaats van bijvoorbeeld de w op zoek gaat naar datums, welke in mijn werkblad als volgt staan: 1-2-2002 (d-m-jjjj) en je typ dit exact zo in dan krijg je een foutmelding. Wat bleek na een uur lang prutsen, dat je de amerikaanse datumnotatie moet gebruiken in de zoekfunctie: 2/1/2002 (m/d/jjjj) Dit vond ik wel heel apart, moet je maar net weten! Ook omdat als je met de hand gaat zoeken in plaats van in een macro het wel allemaal werkt in de normale notatie. Groeten, Wouter
  • Jahh! Het is gelukt. Met onderstaande code werkt het perfect: [code:1:88fe8f41b6]Cells(1, 7).select Do Cells.Find(What:="W", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate If ActiveCell.Column <> 7 Then Exit Do Rows(ActiveCell.Row).Delete Cells(ActiveCell.Row - 1, 7).Select Loop[/code:1:88fe8f41b6] Dijkele, nog bedankt voor het meedenken. Groeten, Wouter

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.