Avatar billede moller2567 Nybegynder
19. juli 2004 - 11:49 Der er 7 kommentarer og
2 løsninger

Værdi af afkrydsningsfelt

Jeg har et word-dokument med en formular.

I denne formular er der en tabel med en række spørgsmål, med en checkbox for OK og en for IKKE OK.

I bunden ville jeg gerne automatisk kunne tælle sammen, hvor mange der er krydset af, og hvor mange, der ikke er.

Jeg havde tænkt mig at lave en ny kolonne, og heri sætte en formel, men hvordan får kontrollerer man værdien af et afkrydsningsfelt ?

Jeg har prøvet

{ IF { Kontrol1.value } = { TRUE } "1" "2" }

og

{ IF { Kontrol1.Checked } = { TRUE } "1" "2" }

men det virker ikke !
Avatar billede rvm Nybegynder
22. juli 2004 - 23:37 #1
Formlen vil ikke blive opdateret automatisk, så jeg vil forslå en anden metode:


1. Indsæt et formularfelt, der hvor du vil have resultatet
2. Kald formularfeltet Tekst1
3. Sæt egenskaben på formmularfeltet, så det ikke kan udfyldes (af brugeren)
4. Indsæt følgende kode i et module i normal.dot (spørg videre, hvis du ikke har prøvet at programmere før)

Sub Optæl()
antal = 0
For Each fr In ActiveDocument.FormFields
    If fr.CheckBox = True Then
        If fr.CheckBox.Value = True Then
            antal = antal + 1
        End If
    End If
Next
ActiveDocument.FormFields("Tekst1").Result = antal
End Sub

5. Sæt koden på alle checkbox'ene som en udgangsmakro

Nu skulle det virke - der gør det hos mig *S*
Avatar billede moller2567 Nybegynder
24. juli 2004 - 23:24 #2
Tak for dit svar, og det ser ud til, at der er lige det jeg skal bruge. Men word og VBA har aldrig været nogle spil, der har haft min store interesse :-)

Jeg har prøvet, at indsætte den kode du har skrevet (bortset fra, at jeg har sat den ind i dokumentet og ikke normal.dot, da det en formular, der skal ud til andre), og det virker til dels. Men optællingen virker ikke helt efter hensigten.

Jeg har lavet to checkboxe, og et formularfelt. Når jeg sætter det første hak, kommer der ikke nogen talværdi i checkboxen, men når jeg sætter hak i det andet felt også, så giver sammentællingen 1 ? og ved at klikke videre, kan jeg få det til at give to, når der kun er et afkrydset felt, men ikke hver gang ?

Har du en ide om, hvad der er galt ?

Yderligere, så tæller din funktion summen af alle afkrydsede checkboxe, kan man evt. angive checkboksene ved navn, da jeg har to kolonner med checkboxe, hvor jeg gerne vil have sammentalt hver enkelt kolonne ?

Jeg er på ferie de næste 6 dage, bare så du ikke undrer dig over, at jeg er lidt længe om at vende tilbage.
Avatar billede rvm Nybegynder
13. august 2004 - 15:02 #3
Det virke fint hos mig - hmm

Angående forskellige kolonner eller grupper, så kan det sagtens laves:

1. Navngiv checkbokse, så de kommer til at høre sammen:
      Gruppe 1: A_1, A_2, A_3 osv
      Gruppe 2: B_1, B_2, B_3 osv
      Gruppe 2: C_1, C_2, C_3 osv

2. Navngiv resultat-formularfelterne til:
      For gruppe 1: A
      For gruppe 2: B

3. Sæt nedenstående makro på alle checkboksene som udgangsmakro

Sub Optæl()

antal_A = 0
antal_B = 0
antal_C = 0

For Each fr In ActiveDocument.FormFields
    If fr.CheckBox = True Then
        If fr.CheckBox.Value = True Then
           
            Svar = Mid(fr.Name, 1, 1)
           
            Select Case Svar
                Case "A"
                    antal_A = antal_A + 1
                Case "B"
                    antal_B = antal_B + 1
                Case "C"
                    antal_C = antal_C + 1
            End Select
           
        End If
    End If
Next

If ActiveDocument.Bookmarks.Exists("A") = True Then
    ActiveDocument.FormFields("A").Result = antal_A
End If

If ActiveDocument.Bookmarks.Exists("B") = True Then
    ActiveDocument.FormFields("B").Result = antal_B
End If

If ActiveDocument.Bookmarks.Exists("C") = True Then
    ActiveDocument.FormFields("C").Result = antal_C
End If

End Sub
Avatar billede moller2567 Nybegynder
17. august 2004 - 23:25 #4
Jeg har nu prøvet den nye kode du skriver, og problemet er det samme. Der bliver lavet en sammentælling, men sammentællingen er ikke korrekt, og jeg ved ikke hvad der går galt, men det ser ud som om, at sammentællingen hele tiden er 1 bagud.

Jeg har lagt mit dokument ud på en hjemmeside, så kan du selv hente det, og se, hvad der går galt. Adressen er :

http://users.cybercity.dk/~dsl60688/

Hvis du kan se, hvad der går galt, vil jeg meget gerne vide det. Min mail adresse er også på ovennævnte link, så du er også velkommen til at maile mig dit dokument, så kan jeg prøve, at lave mit derudfra.

De 30 point er dine som tak for indsatsen.
Avatar billede rvm Nybegynder
02. september 2004 - 13:00 #5
Din kode er helt rigtigt. men husk at koden først aktiveres, når feltet forlades.
Avatar billede moller2567 Nybegynder
02. september 2004 - 13:11 #6
Åhrrr for pokker. Ja selvfølgelig. Men det vil jo sige, at hvis dokumentet bliver gemt, uden at et af felterne forlades, så er sammentællingen jo ikke korrekt.
Avatar billede rvm Nybegynder
02. september 2004 - 13:15 #7
Så må du lige lave en ekstra makro, der ser således ud:

Sub AutoClose()
  Call Optæl
End sub

Makroen kører, når dokumentet lukkes.
Avatar billede moller2567 Nybegynder
02. september 2004 - 13:30 #8
Sådan, jeg takker mange gange.
Avatar billede rvm Nybegynder
02. september 2004 - 13:34 #9
:-)
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