Avatar billede naviairsuperbruger Nybegynder
09. december 2002 - 17:14 Der er 9 kommentarer og
1 løsning

oprettelse af en skabelon med formular felter

Hej Eksperter

Jeg har oprettet en skabelon med formular felter, hvor man kan hoppe fra felt til felt.

Mit problem er: Skabelonen har ret par rullelister, når man vælge f.eks. Oprettelse af ny stilling, så skal cursoren hoppe til næste felt,"stillingsbetegnelse", som brugeren udfylder. Næste felt, "stillingsnr.", springes over så cursoren hopper til feltet "Org. Enhed", som brugeren udfylder. Næste felt springes over, osv osv....
Jeg ville indspille et par macroer til dette formål, men det kan jeg ikke i en låst skabelon. Er der nogen der har forslag/løsning?"
Avatar billede rvm Nybegynder
09. december 2002 - 20:50 #1
Jep *S*

Her er koden til at hoppe til bogmærker

Sub GåTil()
Application.FormFields("Navnet på bogmærket").select
End sub

Her er koden til at låse et formularfelt, så brugerne hopper over det

Sub Lås()
Selection.FormFields("Bogmærkenavn").Enabled = False
End sub

Og her er så den avancerede *S*

Hvis der skal ske noget på bagrund af at der er valget noget bestemt på rullelisten:

If ActiveDocument.FormFields("Rulleliste1").Result = "valgt" Then
    MsgBox ActiveDocument.FormFields("Rulleliste1").Result
End If

Jeg har massere af kodestumper - håber disse kan være til hjælp *S*

P.s. Husk at når du arbejder med formularfelter skal nu nogle gange låse dokumentet op, før du får adgang til den fulde funktionalitet. Når du så låser det igen skal du bruge denne kode, for ikke at nulstille formularfelterne:

If ActiveDocument.ProtectionType = wdNoProtection Then
    ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End If
Avatar billede naviairsuperbruger Nybegynder
10. december 2002 - 16:36 #2
Tak for dine koder, når jeg kører
"Sub GaaTil()
Application.FormFields("tekst19").Select
End Sub"
Så kommer følgende fejl: Der opstod en kompileringsfejl: Metoden eller datamedlemmet blev ikke fundet.
Hvad er der gal?
Avatar billede rvm Nybegynder
10. december 2002 - 22:04 #3
Jeg undskylder mange gang - der skulle have stået

ActiveDocument.FormFields("tekst19").Select
Avatar billede naviairsuperbruger Nybegynder
11. december 2002 - 17:40 #4
Tak RVM, koderne virker nu. men jeg har et andet problem:
når jeg vælger f.eks. "Flytning af person til eksist stilling"  i rullelisten, så skal cursoren hoppe til næste felt,("txtStillingNr1"),- ellers springer "tekst13","tekst14" og "txtStillingNr1" over. Men lige meget hvad jeg valgte så sprang cursoren de 3 felter over, mangler der en "clear"?

If ActiveDocument.FormFields("Rulleliste1").Result = "Flytning af person til eksist stilling" Then
      ActiveDocument.FormFields("txtStillingNr1").Select
      Else
          ActiveDocument.FormFields("tekst13").Enabled = False            ActiveDocument.FormFields("tekst14").Enabled = False
        ActiveDocument.FormFields("txtStillingNr1").Enabled = False
Avatar billede rvm Nybegynder
11. december 2002 - 22:35 #5
Ja - du må nok starte din kode med at sætte dem true - altså

ActiveDocument.FormFields("tekst13").Enabled = True
ActiveDocument.FormFields("tekst14").Enabled = True
ActiveDocument.FormFields("txtStillingNr1").Enabled = True

før linien

If ActiveDocument.FormFields("Rulleliste1").Result = "Flytning af person til eksist stilling" Then

da du så er sikker på, hvilken tilstand de er i før du måske vil ændre dem.
Avatar billede naviairsuperbruger Nybegynder
13. december 2002 - 13:22 #6
Tak, virker!!!
Avatar billede naviairsuperbruger Nybegynder
18. december 2002 - 17:24 #7
Hej rvm
Hvis jeg tester disse koder med f8, så fungerer det fint, men når jeg går tilbage til skabelonen og vælger "Flytning af person til ny stilling" så springer cursoren ikke  "tekst13", "tekst14" og "txtStillingNr1" over. Mangler der noget kode?

Med venlig hilsen



Dim strRulleListe As String
 
    strRulleListe = ActiveDocument.FormFields("strRulleListe1").Result
   
    ActiveDocument.FormFields("tekst13").Enabled = True
    ActiveDocument.FormFields("tekst14").Enabled = True
    ActiveDocument.FormFields("txtStillingNr1").Enabled = True
   
    Select Case strRulleListe
   
        Case "Flytning af person til eksist. stilling"
            Selection.GoTo what:=wdGoToBookmark, Name:="txtStillingNr1"
                       
        Case "Person flyttes med stilling **"
            ActiveDocument.FormFields("txtStillingNr1").Select
           
        Case "Flytning af person til ny stilling"
            ActiveDocument.FormFields("tekst13").Enabled = False 
            ActiveDocument.FormFields("tekst14").Enabled = False
            ActiveDocument.FormFields("txtStillingNr1").Enabled = False
Avatar billede rvm Nybegynder
20. december 2002 - 02:12 #8
Koden ser rigtig nok ud, men du er sikket røget ind i en af formularfelternes barrierer, hvor det kører fint med F8, men ikke i realtime.

Prøv følgende:

Sæt denne makro på dit formularfelt:

Sub Formularfelt()
  en masse kode ...
  Case "Flytning af person til ny stilling"
  Application.OnTime When:=Now + TimeValue("00:00:00"), Name:="Kør"
  mere kode ...
End sub

Sub Kør()
  ActiveDocument.FormFields("tekst13").Enabled = False 
  ActiveDocument.FormFields("tekst14").Enabled = False
  ActiveDocument.FormFields("txtStillingNr1").Enabled = False

+ vælg det formularfelt som du gerne vil have curseren skal stå i nu

End sub

OnTime bruger jeg til at stoppe koden et øjeblik for at fjerne alle referancer til objekter, der stadig ligger i hukommelsen - men husk - det er bare et forslag *S*
Avatar billede naviairsuperbruger Nybegynder
17. januar 2003 - 10:27 #9
Ok,Tak for hjælpen

Med venlig hilsen
naviairsuperbruger
Avatar billede naviairsuperbruger Nybegynder
12. februar 2003 - 15:52 #10
Hej rvm
Jeg har en case med en rulleliste som hedder ”strStillRulleliste3” som består af følgende valg:

Vælg af stilling
Oprettelse af ny stilling
Afgrænsning af stilling
Flytning af stilling (uden person)

Jeg vil aktivere ”strStillRulleListe3" og skal pege på  ”Oprettelse af ny stilling” uden lave om på rækkefølgen har du en god ide?


Eks. Case "Flytning af person til ny stilling"
            Selection.GoTo what:=wdGoToBookmark, Name:="strStillRulleListe3"
    ………………………………ny.kode   

Med venlig hilsen
Naviairsuperbruger
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