userform: via commandbutton naar nieuw document, controle over ingevoerd gegevens

Status
Niet open voor verdere reacties.

Iloon88

Nieuwe gebruiker
Lid geworden
24 jul 2007
Berichten
3
Ik heb twee vragen over het userform.

Ik maak een userform, waarin je kunt kiezen tussen een aantal standaard documenten (brieven, verslagen..). Je kunt door middel van option er één aanklikken en dan op de command button OK drukken. Het is dan de bedoeling om naar een nieuw document te gaan met het sjabloon van de gekozen optie.

Dus ik kies: brief, druk op OK en dan moet er een nieuw document met sjabloon "brief" worden geopend. Dan wordt er vanuit dat document automatisch een nieuw userform geopend (deze code heb ik al ingevoerd, dit werkt als ik een nieuw document open met dit sjabloon).

én nog een vraag: dit nieuwe userform gebruik ik om de gebruiker gegevens te laten invullen voor het briefhoofd en andere gegevens (die daar met bladwijzers worden ingevoerd). Hoe voer ik een controle in om te zien of:
- alle velden zijn ingevuld
- bij telefoonnummer en huisnummer alleen getallen zijn ingevoerd

Bovendien wil ik de plaatsnaam meteen omzetten in hoofdletters (allemaal hoofdletters).

Ik hoop dat iemand mij kan helpen! Zit hier al de hele dag op te proberen :)
 
Dag lloon88,

Zet voor elk item een textbox op het userform. Controleer de textboxen en plaats de tekst in je document.

Gegroet,

Axel
 
Dag lloon88,

Zet voor elk item een textbox op het userform. Controleer de textboxen en plaats de tekst in je document.

Gegroet,

Axel

Dat snap ik :) Maar met welke code kun je de textboxen controleren? Want ik ben al zover dat ik met bladwijzers de ingevulde tekst in het document kan laten zetten. Maar ik wil dus controleren of de velden goed zijn ingevuld!!
 
Dag IIoon88,

Als je een formfield verlaat kan je daar een macro aan koppelen. Met deze macro controleer je de inhoud van het formfield. Als de inhoud niet correct is geef je het formfield weer de focus.

Gegroet,

Axel.
 
Oke.

Voor het telefoonnummer heb ik nu de volgende codes:

Code:
Private Sub txtTelefoonnummer_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If txtTelefoonnummer.TextLength < 6 Or txtTelefoonnummer.TextLength > 6 Then
        MsgBox "Telefoonnummer bestaat uit 6 cijfers! Netnummer staat al in de brief.", vbExclamation + vbOKOnly, "Input Error"
        KeyAscii = 0
    End If
End Sub

Private Sub txtTelefoonnummer_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then
        MsgBox "Alleen cijfers zijn toegestaan.", vbExclamation + vbOKOnly, "Input Error"
        KeyAscii = 0
    End If
End Sub

Dat werkt.
Maar ik krijg niet voor elkaar, dat ik een melding kan geven als een veld niet is ingevuld!

Ik probeerde deze code:

Code:
Private Sub txtNaam_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If txtTelefoonnummer.Value = Null Then
        MsgBox "Vul de achternaam van de geadresseerde in.", vbExclamation + vbOKOnly, "Input Error"
        KeyAscii = 0
    End If
End Sub

maar dat lukte niet! Weet iemand wat ik fout doe?
 
Dag Lloon88,

Code:
Private Sub txtNaam_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  If txtTelefoonnummer.TextLength = 0 Then
    MsgBox "Vul de achternaam van de geadresseerde in."
    Cancel = True
  End If
End Sub
Maar dit werkt alleen als de textbox de focus heeft.

Je kunt ook dit doen:
Code:
Private Sub Controle
  Dim a as Byte  
  Dim b as Byte
  Dim f
  
  For Each f in Controls
    if Instr("TextComb", Left(f.Name,4)) then a = a + 1: If f.TextLength then b = b + 1
  Next
  CommandButton1.EnAbled = (a = b)
End Sub
De CommandButton kan pas worden gebruikt als a (aantal controls) gelijk is aan het b (aantal controls ingevuld)

Zie ook bijgevoegd document.

Gegroet,

Axel.
 

Bijlagen

  • ControlsControle.doc
    36 KB · Weergaven: 80
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan