Avatar billede h_s Forsker
08. januar 2006 - 17:41 Der er 5 kommentarer og
1 løsning

Makro - tekstfelt

Jeg skal bruge en makro, der ligger værdierne i to tekstfelter sammen.

Jeg har prøvet med:

ActiveDocument.FormFields("Saldo2") = ActiveDocument.FormFields("Bevaegelser2") + ActiveDocument.FormFields("Saldo1")

.. men det ser ud til der er fejl i den. Det er nok noget med benævnelsen efter ") på alle 3 felter?

Se evt. dette spørgsmål http://www.eksperten.dk/spm/677160. Da jeg ingen løsninger til dette spørgsmål har fået, må jeg jo prøve med noget andet, nemlig makroer.

Jeg vil gerne have at de felter, som jeg skal have beregninger i er spæret for indtastninger.
Avatar billede brynil Nybegynder
08. januar 2006 - 20:24 #1
Er ikke specielt inde i Word, men når denne makro køres med Tekst2 valgt, så laver den en beregning til Tekst3. Der opstår en fejl under kørslen, derfor On Error Resume.

Måske du selv ved mere om hvordan du får den til at fungere via en makro.

    Selection.NextField.Select
    With Selection.FormFields(1)
        On Error Resume Next
        With .TextInput
            .EditType Type:=wdCalculationText, Default:="=Tekst1+Tekst2", Format:=""
            .Width = 0
        End With
    End With
Avatar billede rvm Nybegynder
08. januar 2006 - 23:36 #2
Du behøver ingen programmering for at regne med/i formularfelter.

Indsæt dine 2 formularfelter og giv dem bogmærkenavne (som du vist allerede har gjort).
I formularfelternes egenskaber skal du sætte flueben i "Beregn ved afslutning".

Indsæt nu dit tredie formularfelt og vælg egenskaber.
Under "Type" vælger du beregning. I feltet ved siden af skriver du =Bevaegelser2 + Saldo1. Et felt der er beregnet kan der forøvrigt ikke tastes i.
Beskyt dokumentet og tast i de 2 første formularfeltet.
Avatar billede h_s Forsker
09. januar 2006 - 09:27 #3
rvm> det er også den løsning jeg helst vil frem til, men det kræver en hvis-sætning;
Hvis Bevaegelser2 er tom, så skal der ikke laves noget i formularfeltet:

i Excel ville man skrive det sådan: Hvis(Bevaegelser2 = "";"";Bevaegelser2+saldo1)

Hvordan gør man det i Word?
Avatar billede rvm Nybegynder
09. januar 2006 - 20:25 #4
Så må vi desværre tilbage til programmering eller fields.

Her er en løsning via programmering:

Sub Udregn()

    If ActiveDocument.FormFields("Bevaegelser2").Result <> "" Then
      ActiveDocument.FormFields("Tekst3").Result = Val(ActiveDocument.FormFields("Bevaegelser2").Result) + Val(ActiveDocument.FormFields("saldo1").Result)
      Else
      ActiveDocument.FormFields("Tekst3").Result = ""
    End If

End Sub

Indsæt denne makro på begge formularfelter (Bevaegelser2 og saldo1) som udgangsmakro
og fjern fluebenet i "Tillad udfyldning" på formularfeltet "Tekst3".
Avatar billede h_s Forsker
10. januar 2006 - 17:15 #5
Super din sidste løsning virker.

Hvad betyder "Beregn ved afslutning" i forhold til "Afspil makro ved udgang"?
Avatar billede rvm Nybegynder
10. januar 2006 - 19:54 #6
Beregn ved afslutning udfører beregninger, der skal ske automatisk uden brug af makroer - som i mit første svar. "Afspil makroer ved udgang" afspiller den valgte makro, når man hopper ud af formularfeltet.
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