Avatar billede LS-Falster Juniormester
24. juni 2010 - 13:33 Der er 8 kommentarer og
1 løsning

Hvordan overføres data fra Excel til Word

Jeg er ved at lave en Wordskabelon, hvor jeg ønsker at dokumentet skal kunne hente oplysninger fra Excel. For at anskueliggøre det, har jeg lavet et eksempel med 3 personer.

Eksempel:
Regnearkets indhold:

Initialer  Navn              telefon            mailadresse
PEHA        Per Hansen        50505050          peha@mail.dk
HAIB        Hans Ibsen        50505051          haib@mail.dk
IBNI        Ib Nielsen        50505052          ibni@mail.dk


(jeg starter med at indsætte et tekstfelt med bogmærkenavnet "Initialer"). På baggrund af initialerne skal dokumentet hente yderligere oplysninger fra regnearket.

Selve brevet:
Din sagsbehandler er (fletfelt som henter navn fra regneark)
tlf (fletfelt som henter telefon fra regneark)
mail (fletfelt som henter mailadresse fra regneark)
______

Mvh Lars
Avatar billede MathiasDue Nybegynder
24. juni 2010 - 13:56 #1
Til dette skal du bruge det såkaldte Brevfletning.

Hvilken version af Word drejer dette dig om?
Avatar billede LS-Falster Juniormester
24. juni 2010 - 14:13 #2
Det er Word 2003. Men jeg er da i tvivl om det er brevfletning, som skal bruges i dette eksempel.

Hvis jeg tager udgangspunkt i mit eksempel, så er der 3 forskellige sagsbehandlere. Hvis f.eks. Per Hansen skal sende et brev, behøver han kun at indtaste sine initialer, og så udfyldes resten automatisk.
Avatar billede MathiasDue Nybegynder
24. juni 2010 - 14:16 #3
hmm.. så skal der vist noget VBA kode til..
Avatar billede supertekst Ekspert
24. juni 2010 - 23:31 #4
VBA er absolut en mulighed. Er der lighed mellem medarbejdernes brugerinitialer (logOn) og initialerne? Hvis ja - så kan alle data automatisk hentes uden videre.
Avatar billede LS-Falster Juniormester
25. juni 2010 - 07:59 #5
Ja, de er ens.
Avatar billede supertekst Ekspert
25. juni 2010 - 14:57 #6
har en VBA-model klar, hvis du er interesseret. Send en mail og jeg returnerer den. @-adresse under min profil.
Avatar billede supertekst Ekspert
25. juni 2010 - 15:15 #7
VBA-kode i skabelonen er følgende:

Const stiTilxls = "C:\Documents and Settings\pb.KHNBPB\Skrivebord\brevSkabelon\2003-version\medarbejder.xls"    '<--- tilpasses

Dim userInit As String, navn As String, telefon As String, mail As String
Dim xlsDB As Object, xlsRække
Private Sub Document_New()
On Error GoTo fejl
    userInit = Application.UserInitials
    Set xlsDB = CreateObject("Excel.Application")
    With xlsDB
        .Workbooks.Open stiTilxls
       
        xlsRække = findMedarbejder(userInit)
        If xlsRække > 0 Then
            navn = .Range("B" & CStr(xlsRække))
            telefon = .Range("C" & CStr(xlsRække))
            mail = .Range("D" & CStr(xlsRække))
       
            indsætIword "navn", navn
            indsætIword "telefon", telefon
            indsætIword "mail", mail
           
            lukXls
        Else
            MsgBox ("Medarbejder: " & userInit & " kunne ikke findes")
            lukXls
            Exit Sub
        End If
       
        .Quit
    End With
    Exit Sub
   
fejl:
    Stop
    lukXls
End Sub
Private Function findMedarbejder(initialer)
Dim r
    With xlsDB.ActiveWorkbook.Sheets(1)
        For r = 2 To 65000
            If LCase(.Cells(r, 1)) = LCase(initialer) Then
                findMedarbejder = r
                Exit Function
            Else
                If .Cells(r, 1) = "" Then
                    Exit For
                End If
            End If
        Next r
    End With
    findMedarbejder = 0
End Function
Private Sub indsætIword(bm, tekst)
    ActiveDocument.Bookmarks(bm).Select
    Selection.TypeText Text:=tekst
End Sub
Private Sub lukXls()
    With xlsDB
        .Application.Quit
    End With
   
    Set xlsDB = Nothing
End Sub
Avatar billede LS-Falster Juniormester
01. juli 2010 - 10:39 #8
Jeg kan desværre ikke få det til at virke. Jeg har et problem med at indsætte den rette sti, da jeg har 3 forskellige stier til mit skrivebord, som jeg alle har afprøvet:

C:\Documents and Settings\laso\Skrivebord
C:\Documents and Settings\All Users\Skrivebord
C:\Documents and Settings\Administrator\Skrivebord

Jeg har lagt en kopi af "Medarbejdere.xls" i alle 3 stier, men når jeg afprøver skabelonen, kommer der en besked om, at medarbejderen ikke kan findes. Det passer dog ikke.

Dit stinavn ser jo noget anderledes ud. Jeg kan ikke blive klog på "pb.KHNBPB"-mappen, som jeg ikke har liggende. Er det noget som skal bruges? Jeg har prøvet at indkludere mappen i min sti, men så kommer der en fejl i VBS.

Jeg kan ikke gennemskue, hvordan VBA-koden finder ud af, hvilken sagsbehandler der er tale om, når man ikke indtaster initialer på forhånd i dokumentet.

Hvordan får jeg lagt de øvrige oplysninger fra regnearket ind i dokumentet? Sker det ved hjælp af bogmærker?
Avatar billede supertekst Ekspert
01. juli 2010 - 13:27 #9
Mit stinavn skal du ikke anvende - men tilpasse!

Det anvendes for at finde Excelfilen. Den enkelte medarbejders initialer hentes her:
    "userInit = Application.UserInitials"

der udføres et opslag i regnearket og data indsættes i dokumentet i bogmærker, der har samme navn som "etiketten" i Excel.

Har du fået mine filer? - ellers send en mail og jeg returnerer - @-adresse under profil.
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