Avatar billede Hechno1983 Nybegynder
03. november 2010 - 00:01 Der er 6 kommentarer og
1 løsning

Dialogboks ved start af word dokument, hvor bruger angiver sti til Excel dokument som database for brevflet

Jeg har en Word (Word 2007) fil som henter data fra Excel via brevfletningsfunktionen, ingen problemer der.

Det er meningen at flere brugere skal kunne kopiere filerne ned fra et fælles netværksdrev og bruge dem lokalt på deres computer eller alternativt når de ikke arbejde med netværksadgang.

Mit problem er, at Word filen refererer til den Excel-fil som udgør database som ligger på netværksdrevet.

Jeg ville gerne have en dialogboks op når Word dokumentet blev startet hvor brugeren angiver stien til hvor den Excel-fil ligger som de har kopieret ned fra netværksdrevet

Eksempelvis tager de filerne ned fra F:\Exceldokumenter\ og lægger dem under C:\arbejdspairerjegskalbrugelokalt\

Jeg har brugt godt over 1 time på at søge efter lignende problemstilling herinde, men uden held. Derfor har jeg sat pointne lidt højt og håber derved at nogen kan komme med en løsning (VBA er meget velkomment)
Avatar billede supertekst Ekspert
03. november 2010 - 00:20 #1
Måske kan dette bruges:

Rem Reference til Microsoft Excel application 12.0 (office 2007) er sat
Rem Koden indsættes i Word - ThisDocument
Dim sti As String, xlsFil As Object
Private Sub Document_Open()
    Set xlsFil = CreateObject("Excel.Application")
    With xlsFil
        .Visible = True
        sti = .Application.GetOpenFilename
        .Application.Quit
    End With
    Set xlsFil = Nothing
End Sub
Avatar billede Hechno1983 Nybegynder
03. november 2010 - 09:01 #2
Tusind tak supertekst!

Det åbner ihvertfalt Excel, dog står den kun og blinker nede i taskbaren.

Jeg kunne måske også have udtrykt mig lidt mere klart.

En Userform, med en "gennemse" knap hvor man så skulle finde stien, ville være det mest optimale.

Alternativt hvis man kunne få den dialogboks der kommer op nu til at blive fremhævet mere end den blot blinker nede i taksbaren?
Avatar billede supertekst Ekspert
03. november 2010 - 09:23 #3
Selv tak..

Jeg vil i en ledig stund prøve at se på det..
Avatar billede Hechno1983 Nybegynder
03. november 2010 - 09:27 #4
Det er meget prisværdigt :)
Avatar billede supertekst Ekspert
03. november 2010 - 11:39 #5
Hvis du vil have hele dokumentet med Userform - så send en mail -@-adresse under min profil.

NB: Når en sti er valgt - gemmes den i dokumentet som dokumentvariabel.
Næste gang vises den så i userformen.

Rem Thisdocument
Rem ============
Private Sub Document_Open()
    Load UserForm1
    UserForm1.Show
End Sub

Rem Userform
Rem ========

Const varNavn = "datakilde"            'kan evt.justeres

Dim filSti As String
Private Sub Cb_gennemse_Click()
    filSti = valgAfSti
   
    If filSti <> "" Then
        sletGlsti varNavn
       
        Me.Lab_sti.Caption = filSti
    End If
End Sub
Private Sub Cb_luk_Click()
    Unload UserForm1
End Sub
Private Sub Cb_ok_Click()
    gemVariabel varNavn, filSti
    Unload UserForm1
End Sub
Private Sub UserForm_activate()
    If findVariabel("datakilde") = True Then
        Me.Lab_sti.Caption = hentVariabel(varNavn)
    End If
End Sub
Private Function findVariabel(vNavn)
Dim v As Variable
    For Each v In ActiveDocument.Variables
        If v.Name = vNavn Then
            findVariabel = True
            Exit Function
        End If
    Next v
    findVariabel = False
End Function
Private Function hentVariabel(vNavn)
    hentVariabel = ActiveDocument.Variables(vNavn).Value
End Function
Private Sub gemVariabel(vNavn, filSti)
    ActiveDocument.Variables.Add vNavn, filSti
End Sub
Private Sub sletGlsti(vNavn)
    ActiveDocument.Variables(varNavn).Delete
End Sub
Private Function valgAfSti()
    filSti = ""
    On Error GoTo fejl1
   
    With Dialogs(wdDialogFileOpen)
        .Name = "*.xls"                    '<-----------JUSTER
        .Display
       
        valgAfSti = CurDir
       
        If Right(valgAfSti, 1) <> "\" Then
            valgAfSti = valgAfSti + "\"
        End If
       
        valgAfSti = valgAfSti & .Name
       
        If InStr(valgAfSti, "*") > 0 Then
            valgAfSti = ""
        End If
       
    End With
    Exit Function
   
fejl1:
    valgAfSti = ""
End Function
Avatar billede Hechno1983 Nybegynder
03. november 2010 - 11:53 #6
Point givet og tak for svar! :)
Avatar billede supertekst Ekspert
03. november 2010 - 14:07 #7
Selv 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