28. januar 2010 - 08:55Der er
21 kommentarer og 1 løsning
Formularfelt - tillad kun tal og bogstaver (evt. VBA - makro)
Hej,
Jeg søger en måde at kontrollere input i et tekst-felt (formular i Word 2003), således, at det KUN er mellem, tal og bogstaver, som accepteres i feltet? Grunden til mit spørgsmål er, at feltet bruges til at danne filnavn for et worddokument.
Private Sub TextBox1_Change() Dim myRegExp: Set myRegExp = New RegExp myRegExp.IgnoreCase = True myRegExp.Global = True myRegExp.Pattern = "^[\w\d ]+$"
If Not myRegExp.Test(TextBox1.Text) Then MsgBox "Fejl i input!" End If End Sub
Forresten, hvis strengen ikke må indeholde _ skal pattern ændres. Desuden ku man også slette det forkerte tegn... Altså noget a la:
Private Sub Emne1_Change() Dim myRegExp: Set myRegExp = New RegExp myRegExp.IgnoreCase = True myRegExp.Global = True myRegExp.Pattern = "^[A-ZÆØÅ\d ]+$"
If Not myRegExp.Test(Emne1.Text) Then MsgBox "Fejl i input!" Emne1.Text = Left(Emne1.Text, Len(Emne1.Text) - 1) End If
Med "Prøv i Object view i VBE at dobbeltklikke Emne1 textbox'en" mente jeg at du i designview, altså der hvor man kan hive knapper, textboxe og andet ind på formen, skulle dobbeltklikke på Emne1 for at komme til den rigtig rutine.
Og hvad sker der hvis du for sjov skifter hele betingelsen ud med True og fjerner alt med Emne1.Text?
Private Sub Emne1_Change() Dim myRegExp: Set myRegExp = New RegExp myRegExp.IgnoreCase = True myRegExp.Global = True myRegExp.Pattern = "^[A-ZÆØÅ\d ]+$"
Nu forstår jeg pludselig problemet. Som jeg skrev i mit spørgsmål, så er det et TEKSTFELT (tekstfelt i formular) og ikke en tekstboks via kontrolelementer jeg har oprettet. Derfor hele miseren.
Nu har jeg så prøvet med en tekstboks via kontrolelementer og her kan jeg godt få det hele til at virke, men jeg har et problem: Tekstboksen (Emne1) skal jeg kunne kopiere fra ét dokument til et andet nyoprettet hvor der også skal valideres på indholdes i Emne1. Derfor spørger jeg, om det er muligt, at valideringen kan ligge i et modul i normal.dot?
tjp, jeg er ked af, at vi fik talt "ved siden af hinanden", men hvis ikke du eller en anden umiddelbart har en løsning på mit problem, må jeg vælge det næste-bedste, nemlig at lave en "søg og erstat" i mit tekst-felt - dette er dog ikke optimalt, men væsentlig bedre end íngenting.
Synes godt om
Ny brugerNybegynder
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.