Avatar billede oy-nyb Nybegynder
19. februar 2009 - 09:38 Der er 3 kommentarer og
1 løsning

Makro - opdate og slet link til ekstern dataområde

Hej alle..

Jeg sidder med et lille problem

Jeg har en excel mappe fra excel 2003 som består 5 ark.
fra ark 2-5 hentes data via "importer ekstern data" fra en anden excel mappe.

På ark 1 vil jeg så gerne lave 2 knapper
knap 1 = opdater alle ark (ark 2-5's data område)
knap 2 = slet de eksterne link på ark 2-5

Knap og almen makro kan jeg godt lave, men kun via record mode. VB er ikke min stærke side, og jeg formoder det er den vej rundt min svar findes.

Mappen bruges til tilbudsgivning med link til div. prislister.
Når tilbudet er udregnet skal priserne jo bibeholdes og ikke opdateres med evt. opdatering af globalt prisark. Da jeg så mister det aktuelle priser jeg har sendt til kunden.

På forhånd tak

OY-NYB
Avatar billede kabbak Professor
19. februar 2009 - 10:37 #1
prøv med:

Sub OpdaterAlle()
    ActiveWorkbook.RefreshAll
End Sub

Public Sub SletQueryTabels()
    Dim SH As Worksheet, QT As Object
    For Each SH In ActiveWorkbook.Sheets
        For Each QT In SH.QueryTables
            QT.Delete
        Next
    Next
End Sub
Avatar billede jkrons Professor
19. februar 2009 - 10:50 #2
Du kan finde en makro til opdatering af alle links her:

' Macro created 26/10/01 by Doug Robbins to update links in a document
'
Dim alink As Field, linktype As Range, linkfile As Range
Dim linklocation As Range, i As Integer, j As Integer, linkcode As Range
Dim Message, Title, Default, Newfile
Dim counter As Integer


counter = 0
For Each alink In ActiveDocument.Fields
    If alink.Type = wdFieldLink Then


        Set linkcode = alink.Code
        i = InStr(linkcode, Chr(34))
        Set linktype = alink.Code
        linktype.End = linktype.Start + i
        j = InStr(Mid(linkcode, i + 1), Chr(34))
        Set linklocation = alink.Code
        linklocation.Start = linklocation.Start + i + j - 1
        If counter = 0 Then
            Set linkfile = alink.Code
            linkfile.End = linkfile.Start + i + j - 1
            linkfile.Start = linkfile.Start + i
            Message = "Enter the modified path and filename following this
Format " & linkfile
            Title = "Update Link"
            Default = linkfile
            Newfile = InputBox(Message, Title, Default)
        End If
        linkcode.Text = linktype & Newfile & linklocation
        counter = counter + 1
    End If
Next alink


og til sletning:

aLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
    For i = 1 To UBound(aLinks)
        lnam = aLinks(i)
        ActiveWorkbook.BreakLink Name:=lnam, Type:=xlExcelLinks
    Next i
End If
Avatar billede oy-nyb Nybegynder
19. februar 2009 - 11:39 #3
Hej Igen

Mange tak for de hurtige svar.

Jeg valgte at bruge kabbak's indlæg.
Det virker som var det skabt til det.

Mange tak for hjælpen begge to.

Mvh
OY-NYB
Avatar billede kabbak Professor
19. februar 2009 - 12:38 #4
et svar ;-))
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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