Endre flere hyperlinker samtidig i Excel med Makro

excelbilde

Endring av en enkel hyperkobling i excel utføres ved og høyreklikke linken og velge rediger hyperkobling.

Ved endring av flere hyperlinker samtidig kan man bruke en makro til dette.
La oss si at du har en en del hyperlinker som refererer til ett område på din harddisk.
(feks F:\help\fil som skal hentes opp fra excel hyperlink .jpg/png/pdf. osv.)
Om du flytter disse filene som skal hentes til en annen lokasjon feks harddisk D:
Eller over på en server eller minnepenn med tanke på at excel arket skal hente opp disse filene fra en mappe som du/dere kan nå.

Visma Document Center External Archive v2.0 er ett fint eksempel.
Den generer flere ark med linker til mapper som den skal hente opp bilag fra som feks tif filer.
Når den sendes med epost til en mottaker vil mottaker prøve og åpne hyperlinker som feiler.
Pga av den søker i mappen som er generert av systemet og blir feil i hierakiet.
(Hyperlink prøver og åpne mappe\arkfane mappe\filen)
Fjerner vi da mappe ved og redigere hyperlink og sitter igjen med \arkfane mappe\filen er alt ok.
Vel og greit men om man har mange hundre slike linker blir dette tungvint.

Eksempel under er for en visma generert excel utdrag fra database med mappenavn help.
Inne i mappen help ligger det en undermappe med tif filer som skal vises ved og trykke på hyperlinker.
Når man trykker på linken får man melding: kan ikke åpne den angitte filen.
Det som eksempelet viser er at den skal fjerne mappen help\ slik at den leter i undermappen i stedet.

For og lage en makro går man inn på visning i excel i arket men skal behandle hyperlinker på.

makro

1.Velg registrer makro og kall den noe du husker.
2.Velg stopp registrering.
3.Velg vis makroer
4.Velg rediger din opprettede makro
5. Overskriv alt som står i den med eksempel under.
pass på at det blir fjernet korrekte stier i  FindReplaceHLinks «help\», «»
Her står det rett frem finn og erstatt help\ med ingenting (altså fjern).

Sub FindReplaceHLinks(sFind As String, sReplace As String, _
Optional lStart As Long = 1, Optional lCount As Long = -1)

Dim rCell As Range
Dim hl As Hyperlink

For Each rCell In ActiveSheet.UsedRange.Cells
If rCell.Hyperlinks.Count > 0 Then
For Each hl In rCell.Hyperlinks
hl.Address = Replace(hl.Address, sFind, sReplace, lStart, lCount, vbTextCompare)
Next hl
End If
Next rCell
End Sub

Sub Navnformakrodulagetutenmellomrom()

FindReplaceHLinks "help\", ""

End Sub

6. Lagre makro og lagre excel.
7. Du kan nå stå i arket og velge første hyperlink (som gir feil) velg vis makro
8. Kjør din makro og lagre excel

Om alt er gjort riktig skal du nå få åpnet alle hyperlinkene riktig.
Husk og kjøre makro i alle ark som har samme fil stier som skal endres.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

Dette nettstedet bruker Akismet for å redusere spam. Lær om hvordan dine kommentar-data prosesseres.