12. november 2006 - 18:59Der er
7 kommentarer og 1 løsning
input af et bestemt antal cifre i en userrform
En lille udfordring:
Jeg har følgende kode, som er en del af et foreningsark:
Private Sub Txtmedlemsnummer_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim MyRange As Range Set MyRange = Worksheets("medlemsnummer").Range("A1:C1000")
If Not Val(txtmedlemsnummer.Text) = 0 Then
On Error Resume Next
If Len(txtPostnr.Text) = 4 Then txtBy.Text = Application.WorksheetFunction.VLookup(Val(txtMedlemsnummer.Text), MyRange, 3, False) Else
MsgBox "Der skal være 4 cifre i medlemsnummeret"
txtmedlemsnummer.SetFocus
End If
Else txtmedlemsnummer.Text = "" End If
Set MyRange = Nothing
End Sub
Der skal være 4 cifre i medlemsnummeret. Hvis der kun tastes 3 og trykkes på Tab, så skal der komme en fejlmeddelelse og cursoren skal placeres efter det sidste ciffer som er tastet. jeg får msgboxen, men cursoren stiller sig i næste textbox. Hvad gør en klog?
Det virker fint, undre mig bare over at txtmedlemsnummer.setfocus ikke gør det samme. Kan du give mig en ide om, hvordan jeg fanger op, hvis medlemsnummeret ikke findes?
Private Sub Txtmedlemsnummer_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim MyRange As Variant, Fundet As Boolean MyRange = Worksheets("medlemsnummer").Range("A1:C1000") Fundet = False If Not Val(Txtmedlemsnummer.Text) = 0 Then If Len(Txtmedlemsnummer.Text) = 4 Then For i = 1 To UBound(MyRange) If Val(Txtmedlemsnummer.Text) = MyRange(i, 1) Then Fundet = True Exit For End If Next If Fundet Then txtBy.Text = MyRange(i, 3) Else MsgBox " nummeret findes ikke" End If Else MsgBox "Der skal være 4 cifre i medlemsnummeret" Cancel = True End If
Vi havde et strømudfald i aftes - af 12 timers varighed øv - derfor den sene reaktion.
Med en lille ændring virker den perfekt. Den ryger fluks i mit modulbibliotek. Kan du knytte nogle commentarer til Cancel = True. Jeg kan godt se hvad den gør, men forstår den ikke!
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.