Avatar billede dr.martin Nybegynder
25. oktober 2010 - 08:36 Der er 4 kommentarer og
1 løsning

hjælp til vba i word

hej

Jeg skal lave en word skabelon. Når brugeren logger ind skal den tage oplysningerne fra et exel ark såsom telefon, navn o.s.v.

exel arket er oplysninger fra ad hvor alle burger er samlet.


Håber det er nogle der kan hjælpe mig
Avatar billede supertekst Ekspert
25. oktober 2010 - 08:51 #1
Hvordan er data i Excel organiseret?
Hvor skal data placeres i Word?
Avatar billede dr.martin Nybegynder
25. oktober 2010 - 10:27 #2
de er placeret sådanne at hver bruger har en række med forskellige oplysninger såsom username, telefon, navn o.s.v.

De skal placeres forsekllige steder i word. f.eks. at navn og telefonnummer kommer i bunden o.s.v. evt. via bogmærker.
Avatar billede supertekst Ekspert
25. oktober 2010 - 11:19 #3
Model kan returneres, hvis du sender en mail til min @-adresse (under min profil)


Const stiTilUserXls = "C:\Documents and Settings\pb.KHNBPB\Skrivebord\HenteDataFraXls\brugere.xlsx"
Dim userXls As Object, ræk As Integer


Dim brugerNavn As String, initialer, bruger As String

Dim navn As String, telefonNr As String
Private Sub Document_New()
'I tilfælde af skabelon
End Sub
Private Sub Document_Open()
On Error GoTo lukUserXls
    brugerNavn = Application.UserName
    initialer = Application.UserInitials
   
Rem een vælges - ander elimineres
    bruger = brugerNavn
    bruger = initialer
   
Rem Test
    bruger = "bb"
   
    Set userXls = CreateObject("Excel.application")
    With userXls
        .workbooks.Open stiTilUserXls
        ræk = findRække(bruger)
       
        If ræk = 0 Then
            MsgBox "Bruger: " & bruger & " kunne ikke findes"
        Else
            navn = .Range("B" & ræk)
            telefonNr = .Range("C" & ræk)
           
            sætIbogMærke "sagsbehandler", navn & " Tlf.: " & telefonNr
           
        End If
    End With
   
   
lukUserXls:
    userXls.Application.Quit
    Set userXls = Nothing

End Sub
Private Function findRække(user)
    For r = 2 To 65000
        If user = userXls.Range("A" & r) Then
            findRække = r
            Exit Function
        Else
            If userXls.Range("A" & r) = "" Then
                r = 0
                Exit Function
            End If
        End If
    Next r
    r = 0
End Function
Private Sub sætIbogMærke(bm, tekst)
    ActiveDocument.Bookmarks(bm).Select
    Selection.EndKey Unit:=wdLine
    Selection.TypeText Text:=tekst

End Sub
Avatar billede finb Ekspert
25. oktober 2010 - 11:46 #4
Følger tråden
Avatar billede supertekst Ekspert
26. oktober 2010 - 09:02 #5
Endelige udgave - VBA i Word skabelonen:

Const stiTilUserXls = "stinavn".xls"  '<---- tilpasses
Dim userXls As Object, ræk As Integer
Dim brugerNavn As String, initialer, bruger As String
Dim navn As String, telefonNr As String, emailAdr As String

Public Sub testSkabelon()
    Document_New
End Sub

Private Sub Document_New()
On Error GoTo lukUserXls
'    brugerNavn = Application.UserName
    initialer = Application.UserInitials
   
Rem een vælges - anden elimineres
'    bruger = brugerNavn
    bruger = initialer
       
    Set userXls = CreateObject("Excel.application")
    With userXls
        .workbooks.Open stiTilUserXls
        ræk = findRække(bruger)
       
        If ræk = 0 Then
            MsgBox "Bruger: " & bruger & " kunne ikke findes"
        Else
            telefonNr = .Range("G" & ræk)
            emailAdr = .Range("H" & ræk)
           
            sætIbogMærke "email", emailAdr
            sætIbogMærke "telefonnummer", telefonNr
        End If
    End With
   
lukUserXls:
    userXls.Application.Quit
    Set userXls = Nothing
End Sub

Private Function findRække(user)
    For r = 2 To 65000
        If user = userXls.Range("A" & r) Then
            findRække = r
            Exit Function
        Else
            If userXls.Range("A" & r) = "" Then
                r = 0
                Exit Function
            End If
        End If
    Next r
    r = 0
End Function

Private Sub sætIbogMærke(bm, tekst)
    ActiveDocument.Bookmarks(bm).Select
    Selection.EndKey Unit:=wdLine
    Selection.TypeText Text:=tekst

End Sub
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