[Excel 2003/2004] Hyperlinks snel wijzigen

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

  • Maximus
  • Registratie: Mei 2002
  • Laatst online: 21:47
Ik heb op dit moment een excel database met daarin zo'n 9000 records. Deze records verwijzen naast hun data gevende functie ook door naar een plaatje in een map. Deze map wordt samen met de database op een DVD gebrand. Echter als ik deze nu in een andere computer druk dan kan hij het pad niet lezen omdat ik, deels in onhandigheid, een absolute link heb gegeven naar het bestand. Nu ben ik er al uit dat het relatief moet zijn.

Alle 9000 links moeten van /Users/*gebruikersnaam*/DVD/Fotos/*.jpg naar Fotos/*.jpg. Echter hoe kan ik deze verandering snel doorvoeren voor alle 9000 records. In alle gevallen moet het voorste gedeelte eraf ( /Users/*gebruikersnaam*/DVD/ ).

Ik heb zelf al getracht mijn Excel boeken door te zoeken naar een oplossing hier kwam niets uit, ook de search van GoT mocht niets baten en ook de database van Microsoft, lichtelijk chaotisch als hij is, bracht niet iets zinnigs.

Weten jullie mogelijk nog iets?

You know what, Stewie, if you don’t like it, go on the Internet and complain.


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

VBscriptje (+ regexp) al geprobeerd?

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

SA --> OFF :Y)

Simpelweg zoek&vervang? Maak anders even een VBA macrootje. De combinatie 'macro opnemen' + F1 zou gezien de info die je geeft zat moeten zijn.

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


  • Maximus
  • Registratie: Mei 2002
  • Laatst online: 21:47
Mijn macro ervaring op dit moment is erg weinig. Ik weet niet of iemand mij dat duidelijk kan maken?
Macro opnemen + F1 en hoe moet ik dan dingen gaan naamgeven.

in cell A1 staat in foto1 met een linkje als je er op klikt naar foto1.jpg deze moet relatief worden, dat kan via het find and replace ?

You know what, Stewie, if you don’t like it, go on the Internet and complain.


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

http://www.google.nl/sear...+macro+find+replace&meta=
2e link bijv.: http://www.funduc.com/excel_sr.htm

Misschien overbodig, maar maak eerst even een backup ;)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Weinig ervaring is genoeg reden om het een beetje te leren :P
Ik denk even hardop wat ik doe:

Extra -> macro -> macro opnemen. Dan met de hand je ding doen (verander een enkele link). Druk op stop en ga met Extra -> macro -> VB editor naar de editor. Je ziet dan dat je met {object}.Hyperlinks(1).Address de hyperlink te pakken hebt. Druk op het woord Address en dan op F1 om een uitleg te krijgen van dat ding.

Dan kan je met FOR een loopje bouwen van 1 t/m xx om het voor alle cellen te doen. (Zoek onder F1 naar 'For... Next').

Het kan handiger en mooier, deze quick & dirty manier laat ik voor je als vingeroefening staan ;)

Nu je weet dat het om Hyperlinks gaat, ga je natuurlijk [google=excel all hyperlinks]
Dan zie je http://sniptools.com/tips...microsoft-office-document dat
code:
1
2
3
4
5
6
Sub RemoveHyperLinksGLobally()
    Dim i As Integer
    For i = ActiveDocument.Hyperlinks.Count To 1 Step -1
          ActiveDocument.Hyperlinks(i).Delete
    Next i
End Sub

noemt om ze te verwijderen. Maar wij verwijderen niet, wij passen aan.
code:
1
2
3
4
5
6
7
8
9
Sub ReplaceHyperLinksGLobally()
    Dim i As Integer
    Dim s As String
    For i = ActiveDocument.Hyperlinks.Count To 1 Step -1
          s = ActiveDocument.Hyperlinks(i).Address
          ' doe iets met s
          ActiveDocument.Hyperlinks(i).Address = s
    Next i
End Sub

dus. Dat "iets" is nieuw voor me, maar ik gok op "replace" dus ik type ondr F1, replace in en bekijk wat er staat.
Gezien F1 geeft
code:
1
Replace("dit is de originele tekst", "originele", "nieuwe")

dus "dit is de nieuwe tekst". Combineer dit met de eerdere code en hoppa, klaar :Y)

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

Pagina: 1