Avatar billede JanusHoi Praktikant
17. november 2006 - 18:41 Der er 3 kommentarer og
1 løsning

Eksterne værdier hentet i Word - Dropdown

Jeg har en word-fil jeg bruger til at låne playstationspil ud i en institution. Wordfilen er altså en 'lånekontrakt', hvor låneren skriver under på, at han har lånt netop det spil.

De spil der er på listen har indtil nu bare stået på sedlen, men der er efterhånden så mange, at jeg gerne vil gøre det smartere.

Jeg drømmer om at man kan lave en dropdown-liste med spillene.
De data der skal være i den liste, havde jeg forestillet mig skulle ligge i en ekstern tekst-fil og derfra blive 'hentet' over i word-filen, således at ved ændring af spiludvalg, kan man nøjes med at rette i tekst-filen.

Lød det lidt for langhåret? Jeg vil gerne forklare yderligere og endda sende lånekontrakten jeg bruger pr. mail, hvis nogen vil se hvad jeg mener.
Avatar billede supertekst Ekspert
19. november 2006 - 15:32 #1
Du er velkommen til at sende den til: pb@supertekst-it.dk
Avatar billede supertekst Ekspert
21. november 2006 - 13:42 #2
Koden i den til skabelonen tilknyttede Userform:
Dim sti, antalUdlån
Private Sub testFelter()
    If Me.CelleNr <> "" And _
        Me.Navn <> "" And _
            Me.Cpr <> "" And _
                Me.MaskineNr <> "" And _
                    Me.AntalController <> "" Then
                    Me.ListBox1.Enabled = True
                    Me.CommandButton1.Enabled = True
    Else
        Me.ListBox1.Enabled = False
        Me.CommandButton1.Enabled = False
    End If
End Sub
Private Sub CelleNr_Change()
    testFelter
End Sub
Private Sub Navn_Change()
    testFelter
End Sub
Private Sub Cpr_Change()
    testFelter
End Sub
Private Sub UdlåntAf_Change()
    testFelter
End Sub
Private Sub MaskineNr_Change()
    testFelter
End Sub
Private Sub AntalController_Change()
    testFelter
End Sub
Private Sub CommandButton1_Click()
Dim dokRække
    dokRække = 1
   
Rem Ophæv beskyttelsen
    ActiveDocument.Unprotect
   
Rem indsæt felterne CelleNr, Navn, Cpr, MaskineNr, Antal controller & UdlåntAf
    ActiveDocument.FormFields("tekst1").Result = Me.CelleNr
    ActiveDocument.FormFields("tekst2").Result = Me.Navn
    ActiveDocument.FormFields("tekst3").Result = Me.Cpr
    ActiveDocument.FormFields("rulleliste3").Result = Me.MaskineNr
    ActiveDocument.FormFields("rulleliste2").Result = Me.AntalController
    ActiveDocument.FormFields("tekst4").Result = Me.UdlåntAf
   
Rem Indsæt spil-titler
    For f = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(f) = True Then
            With ActiveDocument.Tables(1)
                .Rows(dokRække).Select
                Selection.TypeText Text:=ListBox1.List(f)
                dokRække = dokRække + 1
            End With
        End If
    Next f
    ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
   
    Unload UserForm1
End Sub
Private Sub CommandButton2_Click()
    Unload UserForm1
End Sub
Private Sub ListBox1_Change()
    If ListBox1.Selected(ListBox1.ListIndex) = True Then
        If antalUdlån < 2 Then
            antalUdlån = antalUdlån + 1
        Else
            MsgBox ("Der er nu udlånt 2 spil! - du må fravælge et, hvis du vil vælge et andet")
            ListBox1.Selected(ListBox1.ListIndex) = False
            antalUdlån = antalUdlån + 1
        End If
    Else
        If antalUdlån > 0 Then
            antalUdlån = antalUdlån - 1
        End If
    End If
End Sub
Private Sub UserForm_activate()
    findSti
    indlæsPS2spil
   
    Me.CommandButton1.Enabled = False
    Me.ListBox1.Enabled = False
    antalUdlån = 0
   
    For f = 1 To ActiveDocument.FormFields("rulleliste3").DropDown.ListEntries.Count
        Me.MaskineNr.AddItem f
    Next f
   
    For f = 1 To ActiveDocument.FormFields("rulleliste2").DropDown.ListEntries.Count
        Me.AntalController.AddItem f
    Next f
   
    Me.MaskineNr = ""
    Me.AntalController = ""
   
    Me.CelleNr.SetFocus
End Sub
Private Sub findSti()
    sti = ActiveDocument.AttachedTemplate.Path
    If Right(sti, 1) <> "\" Then
        sti = sti + "\"
    End If
End Sub
Private Sub indlæsPS2spil()
Dim titel As String
    Open sti + "ps2_spil.txt" For Input As #1
        While Not EOF(1)
            Input #1, titel
            Me.ListBox1.AddItem titel
        Wend
    Close #1
End Sub
Avatar billede JanusHoi Praktikant
21. november 2006 - 15:02 #3
Tak til supertekst for en afsindig fyldestgørende hjælp.

Jeg fik det som jeg gerne ville have det.
--
Janus
Avatar billede supertekst Ekspert
22. november 2006 - 10:25 #4
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