• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Macro verwijder #WAARDE! werkt niet

Status
Niet open voor verdere reacties.

peter59

Terugkerende gebruiker
Lid geworden
21 mei 2007
Berichten
1.731
Besturingssysteem
Windows 11
Office versie
Office versie 365
Hallo,

Een macro welke is opgenomen met de macrorecorder werkt niet.
Zie onderstaande code en de bijlage.
Wat gaat er niet goed?

Code:
Sub Macro1()
    Columns("A:O").Select
    Selection.Replace What:="#WAARDE!", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("A1").Select
End Sub

Mvg.
Peter
 

Bijlagen

  • Test verwijder macro #WAARDE!.xlsm
    13,5 KB · Weergaven: 46
#waarde = #value
 
Hallo HSV

Heel hartelijk dank.
Het is opgelost.
M.aw. dient alles in een macro vertaald te worden in het Engels ook al is deze opgenomen met de recorder.
Weer iets geleerd.

Mvg
Peter
 
Waarschijnlijk iets sneller
Code:
Sub VenA()
  On Error Resume Next
  Range("A:O").SpecialCells(2, 16) = ""
End Sub

Al is voorkomen beter dan genezen.;)
 
Laatst bewerkt:
@VenA, daarmee verwijder je niet alleen de cellen met #WAARDE!, maar alle cellen met fouten. ;)

Code:
Columns("A:O").Replace "#VALUE!","", 2
 
Hallo VenA

Jouw code in het origineel geplaatst en wat blijkt?
Deze is idd sneller.
Maar euhh, ik krijg hem helaas niet "vertaald" oftewel ik snap de code niet.
Maar nu is mijn kennis van VBA abominabel slecht.
Ik kan een klein beetje uit de voeten met de recorder en probeer het opgenomen resultaat een beetje te begrijpen.
Maar daar gaat het ook al vaak mis oftewel wat staat er allemaal.

Nogmaals dank.

Mvg.
Peter
 
Hallo HSV

Dank voor respons.
In mijn geval kan dat alleen maar gunstig zijn.
In het origineel dienen eigenlijk alle fouten verwijderd te worden.
Tot nu toe was "#WAARDE!" welke verwijderd moest worden.
Maar ik kan mij voorstellen dat dit niet bij iedereen hoeft te gebeuren.

Mvg.
Peter
 
Je kan het ook zonder macro snel voor elkaar krijgen:
- Selecteer de kolommen A:O;
- Druk op <Ctrl> + g en klik op Special (Of in het lint in de tab Home Find & Select en vervolgens Goto Special);
- Slecteer hier Constants;
- Vink Numbers, Text en Logicals uit;
- Druk op <Delete>

De range.specialcells methode is zo snel omdat er alleen naar de cellen gekeken wordt die aan de voorwaarde voldoen. Een klein nadeel in het gebruik van een macro is dat er een foutmelding komt als er geen cel gevonden wordt vandaar de On Error Resume Next. Via de help of via dit linkje kan je er meer over vinden.
 
VenA,

Hele goede tip.
Hier kan ik iets mee.
En zo zie je maar weer dat er ontzettend veel wegen naar Rome leiden.
Ik ga mij hier eens in verdiepen.

Mvg.
Peter
 
VBA kent niet voor niets constanten voor dit soort dingen:
Code:
Range("A:O").SpecialCells(xlCellTypeFormulas, xlErrors) = ""
hoef je niet te gaan graven waar 2 en 16 voor staan :)
 
Hoe ontstaan die fouten?
Normaliter kun je beter de fout bij de bron aanpassen, dan achteraf wegpoetsen/maskeren
 
Hallo jkpieterse

Dank.
Ook deze doet zijn werk.

Mvg.
Peter
 
Hallo EvR

Daar heb je een punt.
Ik ga eens kijken of dit idd bij de born kan aanpakken.

Mvg.
Peter
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan