Toon posts:

Cellen leegmaken met Macro in Excel

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

Verwijderd

Topicstarter
Hoi,

ik wil in Excel in het bereik A7:A9 met een Macro de lege cellen en cellen met een nul leegmaken. Nu heb ik het op Google proberen op te zoeken, maar ik kom er niet uit. Weet iemand hier een VBA-code voor?

Groetjes
Jan

Verwijderd

cellen die al leeg zijn, moeten niet opnieuw leeggemaakt worden. onderstaande code zal formules in het bereik die 0 als resultaat hebben ook wissen. dat laat ik aan jou over om aan te passen (hint:hasformula)
Visual Basic:
1
2
3
4
5
6
7
sub CellenLeegmaken
for each HuidigeCel in range("a7:a9")
  if (val(huidigecel.value)=0 and isnumeric(huidigecel.value)) then
    huidigecel.value=""
  end if
next
end sub

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

offtopic:
Als je VBA-code vermoed nodig te hebben, waag dan ook een poging dit zelf te maken :)


Vraag je ook af of je wel VBA wilt gebruiken. Dit l ijkt me iets dat ook goed met een formule is af te vangen. Bijv. met IsBlank(), zie ook F1 -> Information functions.

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


  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 09-07 19:01
Verwijderd schreef op vrijdag 03 augustus 2007 @ 12:30:
Visual Basic:
1
2
3
4
5
6
7
sub CellenLeegmaken
for each HuidigeCel in range("a7:a9")
  if (val(huidigecel.value)=0 and isnumeric(huidigecel.value)) then
    huidigecel.value=""
  end if
next
end sub
Om het leeg te maken kun je ook ClearContents gebruiken:
Visual Basic:
1
    huidigecel.ClearContents

Verwijderd

Topicstarter
Bedankt hoor de (halve) oplossing!! Werkt perfect voor de nul-cellen. Ik heb het geprobeerd om de code aan te passen voor de lege cellen, maar dit lukt me niet. Dus mocht iemand in een goede vrijdagmiddagbui zijn.... Heel graag!!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Wat bedoel je met aanpassen voor de lege cellen, welke code gebruik je dan en waar loop je dan vast? Ik snap niet helemaal waar je strandt :)

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


Verwijderd

Topicstarter
Als ik deze code gebruik, krijg ik een error:

sub CellenLeegmaken
for each HuidigeCel in range("a7:a9")
if (val(huidigecel.value)="" and isnumeric(huidigecel.value)) then
huidigecel.value=""
end if
next
end sub

Ik heb weinig tot geen ervaring met VBA, dus misschien is het heel gemakkelijk, maar ik weet het niet....

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 23:31

TrailBlazer

Karnemelk FTW

Ik heb mezelf VBA geleerd door macros op te nemen en die vervolgens te bewereken/begrijpen. Het is echt niet zo moeilijk.

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 16:05

Maasluip

Kabbelend watertje

Wat voor error krijg je? Ik krijg helemaal geen error.

Dat het niet klopt is wat anders. val(huidigecel.value)="" zal altijd FALSE terugleveren. Je komt dus nooit in de if-clause van die test.
VAL levert namelijk de numerieke waarde terug of 0 als er geen numerieke waarde is.

Waarom je die test doet snap ik niet, want als huidigecel.value = "", dan hoef je huidigecel.value niet meer te veranderen.
Dat is geen VBA-kwestie, dat is een algemene progammeerkwestie.

_heretic_ zijn oplossing werkt ook niet, want hij maakt cellen met een alpha waarde ook leeg.
De enige test die je moet doen is isnumeric(huidigecel.value)

[ Voor 34% gewijzigd door Maasluip op 06-08-2007 08:56 ]

Signatures zijn voor boomers.


Verwijderd

Maasluip schreef op maandag 06 augustus 2007 @ 08:53:
_heretic_ zijn oplossing werkt ook niet, want hij maakt cellen met een alpha waarde ook leeg.
De enige test die je moet doen is isnumeric(huidigecel.value)
wat, durf jij de goede werking van mijn ongeteste oplossing betwisten? :)
alle gekheid op een stokje, die code zou wel moeten werken want de test levert de waarde false op als er tekst staat in de geteste cel. getallen niet gelijk aan 0 blijven bewaard. lege cellen worden ook nog eens gewist want deze zijn blijkbaar numeriek en gelijk aan nul. precies zoals SportNation vroeg.

  • Maasluip
  • Registratie: April 2002
  • Laatst online: 16:05

Maasluip

Kabbelend watertje

Ach ja, natuurlijk, die IsNumeric zorgt daar voor.
Maar dan is de val()=0 overbodig. IsNumeric() alleen doet de job, en die heeft als buggy bijeffect dat een IsNumeric() van een lege cel ook TRUE is. Lege cellen worden dan nog een keer leeg gemaakt.

Dat is dus exact zoals het moet zijn ;)

Signatures zijn voor boomers.

Pagina: 1