Avatar billede mp67533 Nybegynder
25. januar 2007 - 09:25 Der er 8 kommentarer og
1 løsning

Kæde mellem word & Excel skal angives som relativ sti

Hej

Jeg har et word document som indeholder en lang række kæder til et Excel document, som er placeret i samme mappe. Jeg kører så en makro fra Excel som udarbejder en masse dokumenter på baggrund af word filen. Så langt så godt.

Da det er meningen at samlingen skal bruges på flere computere og flere forskellige sammenhænge ville jeg gerne, hvis jeg kunne angive stien i kæderne som relative stier.

Da det ikke at brugeren aktivt skal åbne word dokumentet - skal evt. makroer til at afhjælpe problemet kunne aktiveres via Excel. Jeg har selv været ved at lege med at ændre på stien i word via alt+f9 funktionen:

{LINK Excel.Sheet.8 "c:\\Mappe\\document.xls" "ark!r2d2" \t\*mergeformat }

Denne ønsker jeg at kunne "fjerne" "c:\\mappe\\" fra...

På forhånd tak for hjælpen...
Avatar billede supertekst Ekspert
26. januar 2007 - 14:42 #1
Her er lidt inspiration:
Sub testLink()
Dim afield As Field
    For Each afield In ActiveDocument.Fields
        kilde = afield.Parent
        kode = afield.Code
       
        If InStr(kode, " LINK Excel.Sheet.8") = 1 Then
            LinkMod = Left(kode, 20) + kilde
        End If
    Next afield
End Sub
Avatar billede mp67533 Nybegynder
28. januar 2007 - 20:19 #2
Hej Supertekst,

Jeg har prøvet at lege lidt med koden - men kan ikke rigtig få den til at virke. Jeg skal jo køre den fra Excel - og den del der omhandler opdateringer af kæder ser sådan ud:

Set Word = CreateObject("word.application")
Set doc = Word.documents.Open(ThisWorkbook.Path & "\Leadership Equity Assessment.doc")

doc.Activate
With doc.Activate
For Each afield In doc.Fields
  kilde = afield.Parent
  kode = afield.Code
       
  If InStr(kode, " LINK Excel.Sheet.8") = 1 Then
      LinkMod = Left(kode, 20) + kilde
  End If
 
  If afield.LinkFormat.AutoUpdate = False _
      Then afield.LinkFormat.Update
      afield.LinkFormat.BreakLink
  End If
Next afield

Jeg ved ikke rigtig hvad det er jeg gør galt i denne sammenhæng - og ville virkelig sætte pris på at få lidt hjælp...
Avatar billede supertekst Ekspert
29. januar 2007 - 09:26 #3
Jeg skal se på det...
Avatar billede supertekst Ekspert
29. januar 2007 - 17:24 #4
Her er der så lidt nyt:

Dim wrd As Object, aField As Field
Const kædeId = " LINK Excel.Sheet.8 "
Const nySti = "D:\"                                'ny sti
Const kildeXls = "Master.xls"                      'fil, der linkes til
Sub testKæder()
On Error GoTo afslut
    Set wrd = CreateObject("word.application")
    With wrd
        .Documents.Open Filename:=(ThisWorkbook.Path & "\Leadership Equity Assessment.doc")
       
        For x = 1 To .ActiveDocument.Fields.Count
            kode = .ActiveDocument.Fields(x).Code
       
            If InStr(kode, kædeId) = 1 Then
                .ActiveDocument.Fields(x).LinkFormat.SourceFullName = nySti + kildeXls
            End If
        Next x
    End With

afslut:
    wrd.ActiveDocument.Save
    wrd.Application.Quit
    Set wrd = Nothing
End Sub
Avatar billede mp67533 Nybegynder
29. januar 2007 - 20:38 #5
Yes,

Med et par enkelte rettelser fik jeg den til at virke helt perfekt...

Takker - smider du et svar!
Avatar billede supertekst Ekspert
30. januar 2007 - 09:33 #6
Fint - selv tak - en fornøjelse...
Avatar billede mp67533 Nybegynder
31. januar 2007 - 18:20 #7
Du skulle tilfældigvis ikke også have styr på om man kan bruge en .code i forbindelse med et diagram?

Jeg har forsøgt at omskrive funktionen til også at kunne ændre diagrammer dog uden held.

Det ville være super fedt hvis du lige kunne sige om man kan bruge .code på andet end fields?

Bare sig' til hvis du skal have nogle point.
Avatar billede supertekst Ekspert
31. januar 2007 - 18:45 #8
Kan du ikke prøve at beskrive det du vil og/eller sende en kopi af filen til: pb@supertekst-it.dk
Avatar billede mp67533 Nybegynder
01. februar 2007 - 18:50 #9
Nu sidder jeg lig ved en computer hvor filen ikke ligger på... Så det må vente.

Det jeg skal er, at jeg fra en Excelfil skal autogenerere nogle rapporter i word - og måske senere power point.

Måden hvorpå jeg ønsker at gøre det er via nogle kæder mellem word og Excel, hvor der er en "skabelon", hvor kæder opdateres, fjernes og derefter gemmes i et nyt navn. Det virker også ganske fint, det eneste problem er dog, at jeg filen skal kunne køre uafhængigt af hvor de ligger. Derfor vil jeg gerne, at jeg ligesom med kæder bestående af tekst kunne ændre den sti diagrammerne benytter.

Det handler altså om, at jeg har diagram mv. som er kæder - og derved ønsker at tilpasse stien den henviser til afhængigt af filernes placering.

Håber du igen kan hjælpe mig... På forhånd tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester