26. april 2010 - 13:10Der er
4 kommentarer og 1 løsning
VBA, loop til kontrol af indput.
Er ved at lave en Userform til indtastning af måneds data, og vil i den forbindelse "centralisere" kontrol funktioner med mere, men kan ikke finde den rigtige syntax til at vælge de relevante elementer:
Setup er som følger: 1: Alle indput felter er textbox 2: De har alle navnet Month[1..12]Type[1..4] 3: Userformen har name=Mrevision
Følgende er mit forsøg som fejler (Ved for each..): Sub ErTal() Dim Ctl As Object Dim Mrev As Mrevision For Each Ctl In Mrevision If Not InStr(Ctl.Name, "Month") = 0 Then If Not Ctl = vbNullString Then If Not IsNumeric(Ctl) Then MsgBox "Desværre, kun tal!" Ctl = vbNullStrin End If End If End If Next End Sub
Dette fungere fint, men vil gerne have en fælles rutine der kontrolerer alle textbokse. Private Sub ErTal2() If TextBox1 = vbNullString Then Exit Sub If Not IsNumeric(TextBox1) Then MsgBox "Sorry, numbers only" TextBox1 = vbNullString End If End Sub
Kontrollen kan fint køres ved ændring i de enkelte celler, men det er reelt ikke nødvendigt og keden bliver noget nemmere at overskue såfremt det ikke er ved "Month1Type4_change()" at kontrolle foretages.
Men problemmet er reelt det samme om det er som "_change" eller en anden faktor der starte proceduren. Nemlig hvorledes referer jeg til / looper igennem de enkelte celler.
Sub ErTal() Dim Ctl As Object ' Dim Mrev As Mrevision For Each Ctl In Mrevision.Controls If Not InStr(Ctl.Name, "Month") = 0 Then If Not Ctl = vbNullString Then If Not IsNumeric(Ctl) Then MsgBox "Desværre, kun tal!" Ctl = vbNullStrin End If End If End If Next End Sub
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.