Hoe kan ik de informatie ingevuld in een formulierveld oproepen

  • Onderwerp starter Onderwerp starter vibor
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

vibor

Gebruiker
Lid geworden
25 mrt 2016
Berichten
45
Ik ben met een Word formulier bezig in Office 365.

Als iemand een fout notificatie nummer heeft in gegeven kan hij dit aanpassen via een macro.
Ik wil dan dat de oude waarde in de inputbox getoond wordt. Meestal is het maar 1 cijfer wat aangepast moet worden.

Dat zou toch op de volgende manier moeten lukken lijkt mij. Maar wat ik ook probeer ik krijg het niet voor elkaar om een ingevulde waarde op het formulier terug te roepen naar de VBA code. Waarschijnlijk de verkeerde code, maar de hele middag al gegoogeld, niets gevonden. Dus maar weer een beroep op de kennis in dit forum

Wie kan mij helpen?

Dit is het idee, op de defaulth plaats wil ik dus de huidige waarde presenteren:

Code:
Dim notifNr As String
Dim notifOud As String

notifOud = ActiveDocument.FormFields("notifNr").Value

notifNr = InputBox("Geef het notificatienummer op:", "NOTIFICATIENUMMER", notifOud)
ActiveDocument.FormFields("callNr").Result = notifNr
 

Bijlagen

Laatst bewerkt:
Ik sta niet te popelen om het formulier na te bouwen. Een kopie van je document lijkt mij een stuk beter.
 
Ik sta niet te popelen om het formulier na te bouwen. Een kopie van je document lijkt mij een stuk beter.

Dank voor je reactie. Bij deze het bestandje erbij geplaatst, ik heb het gehele formulier uitgekleed tot dit probleem. De toepassing lijkt dus een beetje vreemd, maar het is onderdeel in een groter geheel.
 
Zo werkt het bij mij,...code iets aangepast.

Code:
Private Sub CommandButton1_Click()
 
RedoEntry:


Dim notifNr As String
Dim notifOud As String


notifOud = ActiveDocument.FormFields("callNr").Result
notifNr = InputBox("Geef het notificatienummer op:", "NOTIFICATIENUMMER", notifOud)


'notifNr = InputBox("Geef het notificatienummer op:")
ActiveDocument.FormFields("callNr").Result = notifNr


If Not notifNr Like "22???" Then  'Valideren 22 nummer.
  
        If MsgBox("Dit is niet juist. Het nummer begint met 22 en is 5 cijvers lang. Nogmaals proberen?", vbYesNo, "Gaat het wel goed?") = vbYes Then
           GoTo RedoEntry
       Else
           MsgBox "Je weet het nummer (nog) niet.", vbInformation, "Notification nummer invullen overslaan."
           GoTo Verder
        End If
End If


Verder:


End Sub
 
Omdat 22 invariant is, hoef je slechts een getal tussen 000 en 999 in te laten voeren:

Code:
Private Sub CommandButton1_Click()
    Do Until Val(ActiveDocument.FormFields("callNr").Result) < 1000
         ActiveDocument.FormFields("callNr").Result = InputBox("tussen 000 en 999")
    Loop
End Sub
 
Omdat 22 invariant is, hoef je slechts een getal tussen 000 en 999 in te laten voeren:

Code:
Private Sub CommandButton1_Click()
    Do Until Val(ActiveDocument.FormFields("callNr").Result) < 1000
         ActiveDocument.FormFields("callNr").Result = InputBox("tussen 000 en 999")
    Loop
End Sub

Dank je voor het mee denken.
De code van HSV werkt prima, dus op zich is mijn probleem opgelost, maar ter lering en vermaak: Ik moet wel een getal hebben van 5 cijfers, dwing je met 000 ook af dat er 3 cijfers moeten worden in gegeven?
(Als 001 ook als 1 goedgekeurd wordt staat er 221 ipv 22001.)

Grt. ViBoR
 
Zo werkt het bij mij,...code iets aangepast.

Code:
Private Sub CommandButton1_Click()
 
RedoEntry:


Dim notifNr As String
Dim notifOud As String


notifOud = ActiveDocument.FormFields("callNr").Result
notifNr = InputBox("Geef het notificatienummer op:", "NOTIFICATIENUMMER", notifOud)


'notifNr = InputBox("Geef het notificatienummer op:")
ActiveDocument.FormFields("callNr").Result = notifNr


If Not notifNr Like "22???" Then  'Valideren 22 nummer.
  
        If MsgBox("Dit is niet juist. Het nummer begint met 22 en is 5 cijvers lang. Nogmaals proberen?", vbYesNo, "Gaat het wel goed?") = vbYes Then
           GoTo RedoEntry
       Else
           MsgBox "Je weet het nummer (nog) niet.", vbInformation, "Notification nummer invullen overslaan."
           GoTo Verder
        End If
End If


Verder:


End Sub

Dank voor de aanpassing.
Dit werkt perfect!:thumb:

Ga het nog even na pluizen waar mijn kronkel zat,;) maar kan in ieder geval weer verder.

Grt. Vibor
 
Lijkt me toch niet zo'n klus, toch ?

Code:
Private Sub CommandButton1_Click()
  Do Until Val(ActiveDocument.FormFields("callNr").Result) < 1000
    ActiveDocument.FormFields("callNr").Result = format(InputBox("tussen 000 en 999"),"000")
  Loop
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan