Tips & tricks: Excel

Excel: Meerdere hyperlinks aanpassen (VBA)

In Excel kan je hyperlinks invoegen naar externe locaties. Dit kan zowel naar websites als naar lokale bestanden. Heel erg handig, maar wat als je op een bepaald moment die hyperlinks wil wijzigen?

Onlangs had ik een bestand met enkele honderden hyperlinks. Na een crash van Excel, had ik de herstelde versie van mijn bestand opgeslagen. Gevolg: de hyperlinks waren allemaal gewijzigd naar een vreemd pad:

Het oude pad was:
C:\BESK\excel\tips\*****.pdf

maar nu was het pad plots gewijzigd naar:
C:\Users\nameuser\Application Data\Microsoft\BESK\excel\tips\*****.pdf

Op de plaats van de jokertekens stond een unieke code, die bij elke hyperlink verschillend was.

Zoeken en vervangen (CTRL+H)? Dat had je gedacht. Excel gaat niet zoeken in de locatie van je hyperlinks.

Natuurlijk had ik wel een back-up, maar ik had inmiddels weeral andere wijzigingen gemaakt in de laatst opgeslagen versie. Dat was dus al niet de ideale oplossing.

Gelukkig is er nog VBA...

Wil je weten wat er mis is gelopen, ga dan te werk zoals hieronder beschreven.

BESKFindReplaceHyperlink

Het is heel eenvoudig. We schrijven gewoon een stukje code vergelijkbaar aan de functie zoeken/vervangen, maar dan voor hyperlinks.

Je kan onderstaande code gewoon plakken in een VBA module. Ga naar je werkblad waar de hyperlinks zich bevinden. Druk op ALT+F8, kies de macro en druk vervolgens op “uitvoeren”.

Er verschijnt een pop-up voor de te zoeken waarde. In mijn voorbeeld zou ik hier dan invullen:

C:\Users\erikservaes\Application Data\Microsoft\BESK\excel\tips\

Druk vervolgens op “OK”

Er verschijnt een pop-up voor waarde die je in de plaats wil zetten. In mijn voorbeeld zou ik hier dan invullen:

C:\BESK\excel\tips\

Druk vervolgens op “OK”

Onze macro zal nu de hyperlinks aanpassen, en je achteraf een bericht geven van het aantal aanpassingen dat gebeurd is.

TIP! Je kan zowel een volledige hyperlink als een stuk van een hyperlink invullen.

ECT BVBA - Oosterveldlaan 211 (2610 Wilrijk) - Tel: +32 (0)3 239 54 67 - Fax: +32 (0)3 281 62 11 -

Erkenningsnummer KMO-Portefeuille: DV.O100387

BTW-nummer: BE 0456.352.435