03. november 2010 - 00:01Der 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)
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
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
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.