[Excel 2002] Macro zoeken en vervangen

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

Acties:
  • 0 Henk 'm!

  • Bastiaan
  • Registratie: November 2002
  • Nu online

Bastiaan

Bas·ti·aan (de, m)

Topicstarter
Ik ben in een sheet bezig een macro op te zetten. Hierop wordt een flinke lap data uit Acces gehaald en geplakt in Excel 2002. Daarop moeten een aantal bewerkingen worden uitgevoerd.

Deze bewerkingen staan in een macro en gaan zo goed als probleemloos. Het enige probleem waar ik tegenaanloop is het volgende:

code:
1
2
3
4
5
6
[...]
Cells.Select
Selection.Replace What:="#VERW!", Replacement:="0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
[...]


Bovenstaande code is voor het zoeken naar #VERW! in het hele blad door alle cellen te selecteren (CTRL+A) en dit te vervangen door 0.
Dit stuk lijkt Excel simpelweg over te slaan. De gegevens worden niet vervangen. Wanneer ik een nieuwe macro maak met alléén deze zoek/vervangfunctie gebeurt er ook niets. Een foutmelding kan er ook al niet eens van af :+

Iemand bekend met de oorzaak van dit probleem? Of nog beter, heeft er een oplossing voor? De search, Google en de Office Excel 2003 Bible bieden jammergenoeg geen oplossing...

Acties:
  • 0 Henk 'm!

Anoniem: 113297

Visual Basic:
1
Selection.SpecialCells(xlCellTypeFormulas, 16).value=0

Acties:
  • 0 Henk 'm!

  • Bastiaan
  • Registratie: November 2002
  • Nu online

Bastiaan

Bas·ti·aan (de, m)

Topicstarter
Ik heb de eerdergenoemde code vervangen door jouw lijntje, echter krijg ik nu de melding

Error 1004 tijdens uitvoering:
Er zijn geen cellen gevonden.

Acties:
  • 0 Henk 'm!

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 16:55
VERW! lijkt me iets van een Nederlandstalige versie van Excel. Onder water zou Excel een andere tekst oid kunnen gebruiken. Je zou eens kunnen proberen een klein stukje code te maken wat over wat cellen heen loopt in Excel en kijken wat er in een cel met VERW! staat tijdens de uitvoering van de code.

Hail to the king baby!


Acties:
  • 0 Henk 'm!

  • Bastiaan
  • Registratie: November 2002
  • Nu online

Bastiaan

Bas·ti·aan (de, m)

Topicstarter
Sorry; voor de volledigheid: ik copy-paste de info. In de "bestemmingssheet" worden de gegevens als platte tekst geplakt. #VERW! is dus niets meer dan platte tekst en er zit niets achter.

Acties:
  • 0 Henk 'm!

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 16:55
Nou als je #VERW! in Excel ziet is dat volgens mij geen platte tekst. Zojuist getest met een foutieve verwijzing in een Excel sheet. Als ik dan in de code kijk zie ik dat de Value van de cel "Fout 2023" bevat en in de Text property "#VERW!" staat. Als ik een replace uitvoer op 1 van beide wordt er niks gewijzigd.

Als in de .Value een tekstje zet wordt de formule gewist en werkt het.

[ Voor 10% gewijzigd door urk_forever op 29-10-2007 15:31 ]

Hail to the king baby!


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Inderdaad wordt ook simpelweg de tekst #VERW! als speciaal gezien (helaas). Probeer maar eens wat er gebeurd als je er een willekeurig karakter voor zet (dus geen #VERW! maar v#VERW!). Dan gaat het goed. Snelste: zoek en vervang met de hand., dat gaat goed.
offtopic:
Je wilt overigens nooit Select gebruiken, IMHO. Spreek de cellen liever direct aan.

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


Acties:
  • 0 Henk 'm!

  • Coffeemonster
  • Registratie: Juli 2000
  • Laatst online: 15:20
Je kan ook in een loop checken of de inhoud van de cel een errorcode is met IsError() (eventueel het errornummer van #VERW! of #REF! (Engels) controleren als het alleen om deze errorcode gaat), en dan de value van de cel op 0 zetten.

Look for something long enough and you will find it; look for something without understanding, and it will find you.
A normal day at the stock exchange


Acties:
  • 0 Henk 'm!

Anoniem: 113297

Bastiaan schreef op maandag 29 oktober 2007 @ 15:14:
Ik heb de eerdergenoemde code vervangen door jouw lijntje, echter krijg ik nu de melding

Error 1004 tijdens uitvoering:
Er zijn geen cellen gevonden.
dit moet gewoon werken. vergeet niet de cells.select uit te voeren, anders verwijst selectie uiteraard niet naar de juiste cellen.

en anders zoeken en vervangen met #REF! ipv #VERW!

Acties:
  • 0 Henk 'm!

  • Bastiaan
  • Registratie: November 2002
  • Nu online

Bastiaan

Bas·ti·aan (de, m)

Topicstarter
Anoniem: 113297 schreef op maandag 29 oktober 2007 @ 16:41:
[...]
dit moet gewoon werken. vergeet niet de cells.select uit te voeren, anders verwijst selectie uiteraard niet naar de juiste cellen.

en anders zoeken en vervangen met #REF! ipv #VERW!
Mooi manne. #VERW! vervangen door #REF! is de oplossing.

code:
1
2
3
4
Cells.Select
Selection.Replace What:="#REF!", Replacement:="0", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False


...is wat het nu is.
Thnx!
Pagina: 1