VBA code maken om "0" te vervangen niets ""

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Anoniem: 679196

Topicstarter
Ik ben al een tijdje bezig met een VBA code en ben nu praktisch klaar.
Het makkelijkste van alles kom ik nu helaas niet uit. De uitkomst uit sommige formules is 0 dit wil ik vervangen door niets, de cel wil ik dus leeg laten.

Nu wilde ik dit simpel doen door even een stukje op te nemen. Ik kom er alleen net achter dat bij Look In alleen "Formulas" staat (zie foto in de link). Hierdoor vervangt hij de nullen niet.

Het volgende stukje heb ik gebruikt, maar dit werkt dus niet:

Cells.Replace What:="0", Replacement:="", LookAt:=xlPart, MatchCase:=False

Als jullie een truck weten om dit te verhelpen hoor ik het graag :) :)

M.v.g. Luuk

https://www.dropbox.com/s...vgts/Printscreen.png?dl=0


Ps dit heb ik ook geprobeerd:

Cells.Replace What:="0", Replacement:="", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

werkte ook niet :(

[ Voor 12% gewijzigd door Anoniem: 679196 op 08-06-2017 16:39 ]

Alle reacties


Acties:
  • +1 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Post eens de rest van de relevante code met toelichting wat je (functioneel) wilt bereiken. Zoals het er nu staat schrijf je eerst een formule weg in een cel, en als die formule 0 als resultaat heeft wil je de hele formule wegknikkeren? Maar waarom zou je dan om te beginnen al een formule schrijven?

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


Acties:
  • +2 Henk 'm!

  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

Lustucru schreef op donderdag 8 juni 2017 @ 17:08:
... Maar waarom zou je dan om te beginnen al een formule schrijven?
Voor het geval de waarde niet 0 is.
Maar je poogt nu de originele formule te overschrijven, da's niet handig.
Voeg er een extra if-statement aan toe
Visual Basic:
1
if result = 0 then output = "" else output = result

QnJhaGlld2FoaWV3YQ==


Acties:
  • +1 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Brahiewahiewa schreef op donderdag 8 juni 2017 @ 18:07:
[...]

Voor het geval de waarde niet 0 is.
Dat snap ik maar het gaat me om het verschil tussen
Visual Basic:
1
2
3
4
5
If result <>0 then cell.value=result

if result <>0 then cell.fomula='=[de formule die result oplevert]

if result =0 then cell.value=""


Als je ene formule schrijft verwacht je dat de bronwaarden nog kunnen veranderen, en dan wil je dus nooit een "" wegschrijven, als de bronwaarden niet veranderen dan schrijf je geen formule weg maar het resultaat. :)

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: 679196

Topicstarter
Ik wil dit doen omdat ik een vba heb gemaakt die de dagelijks gewerkte uren uitrekent door de gegevens van een prikklok er in te plakken. Ik houdt dan alleen een lange rij met nullen over en als men een dag niet heeft gewerkt krijg ik als uitkomst "0". Dit is puur een visueel probleem, het zit niet echt in de weg maar dacht dat het probleem makkelijk was op te lossen.

Edit: Ik zie nu wat je bedoelt Lustucru met de fout die je krijgt bij:
if result =0 then cell.value=""

[ Voor 13% gewijzigd door Anoniem: 679196 op 09-06-2017 08:28 ]


Acties:
  • 0 Henk 'm!

  • heuveltje
  • Registratie: Februari 2000
  • Laatst online: 12-05 22:09

heuveltje

KoelkastFilosoof

Voor VBA/Excel is "" niet gelijk aan een leeg veld.
Dat gaat je opbreken als je dingen wilt tellen.

cell.clear werkt beter.

[ Voor 38% gewijzigd door heuveltje op 09-06-2017 09:15 ]

Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d


Acties:
  • 0 Henk 'm!

  • Sjeik
  • Registratie: Augustus 2001
  • Laatst online: 18-04 10:24
Is de optie om geen nullen weer te geven in de instellingen niet veel makkelijker voor jou? Dan hoef je niets te doen met VBA.

Was ik maar rijk en niet zo knap...


Acties:
  • 0 Henk 'm!

Anoniem: 679196

Topicstarter
Ik heb het nu eenvoudig opgelost door te kijken naar een andere kolom, als die leeg is geeft hij namelijk nul. het is nu dit stukje code geworden:

Range("C:C").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Gelukkig ben ik niet de enige met deze frustratie :):)

In ieder geval allemaal bedankt!!

Acties:
  • +1 Henk 'm!

  • loeberce
  • Registratie: Februari 2009
  • Nu online
Als de weergave van de 0 puur een visueel probleem is, pas ik altijd de celopmaak aan om een lege cel weer te geven bij 0. Het gebruik van "" is namelijk soms onwenselijk als je met die waarden wilt verder rekenen.

Je kan dit doen bij celopmaak en dan custom opmaak het volgende in te vullen: 0;-0;;@
Pagina: 1