Alleen meervoud van een bepaald getal, invulbaar in textbox

Status
Niet open voor verdere reacties.

MaikBisschop

Gebruiker
Lid geworden
19 mrt 2018
Berichten
39
Beste helpmij-ers,

Ik heb een vraag, namelijk:
Hoe kan ik zorgen dat ik alleen cijfers in kan vullen, en deze ook alleen in het meervoud van een bepaald getal kan invullen? (in een textbox)
Bijvoorbeeld:
  • -bij het meervoud van 50, kan ik alleen 50, 100, 150 etc. invullen. En wanneer ik een letter (bijv. A) of een ongeldig getal invul, komt er
    een messagebox te voorschijn.
Ik ben zelf aan het zoeken geweest, en kon er weinig info over vinden (of ik wist gewoon niet wat ik zoeken moest).

Met vriendelijke groet,
Maik Bisschop
 
Laatst bewerkt:
Gebruik een combobox met de lijst 50,100, 150, 200, etc.

Als je een gebruiker wil laten kiezen moet je hem/haar een keuzelijst voorleggen.
 
Bedankt voor je reactie, maar dat is in mijn geval niet zo handig.
In de TextBox moeten maatvoeringen ingevuld worden die bijvoorbeeld uiteenlopen van 50mm tot 3300mm.
Is er niet een mogelijkheid om te checken of de waarde nummeriek is én of de waarde tussen de 50 en 3300mm ligt (als meervoud van 50)?
 
zoiets?

Code:
Private Sub TextBox1_AfterUpdate()
If IsNumeric(TextBox1.Value) Then
    If InStr(TextBox1.Value / 50, ",") > 0 Then MsgBox "Moet 50 of veelvoud van 50 zijn!"
Else
    MsgBox "Moet 50 of veelvoud van 50 zijn!"
End If
End Sub
 
@SjonR

Ja dat is bijna wat ik zoek, ik moet alleen nog een minimale en maximale waarde kunnen aangeven. Heb je daar ook nog een idee over?
 
zo dan?
Code:
Private Sub TextBox1_AfterUpdate()
If IsNumeric(TextBox1.Value) And TextBox1.Value >= 50 And TextBox1.Value <= 3300 Then
    If InStr(TextBox1.Value / 50, ",") > 0 Then MsgBox "Moet 50 of veelvoud van 50 zijn!"
Else
MsgBox "Moet 50 of veelvoud van 50 zijn!  Minimaal 50 en maximaal 3300"
End If
End Sub
 
Volgens mij heb je mijn suggestie niet eens geprobeerd.
Voorkom dat er een berciht verschijnt dat de gebruiker iets 'verkeerd' zou hebben gedaan.
Een overbodige msgbox is een testimonium paupertatis van de programmeur.
 
Code:
Sub M_snb()
   combobox1.list=[50*row(1:66)]
   combobox1.style=2
End Sub
 
@snb

Uiteindelijk is jou idee overgbleven als enige optie :thumb:

Kan ik
Code:
ComboBox1.list = [50*row(1:66)]
ook vervangen door iets zoals
Code:
ComboBox1.list = [50*row(Range("D1").Value:Range("D2").Value)]

Weet dat het bovenstaande niet goed is, maar dat geeft mijn idee wel weer :p

Met vriendelijke groet,
Maik Bisschop
 
Laatst bewerkt:
Niet echt voor VBA-beginners:

Code:
Combobox1.list= [50*row(offset(A1,D1-1,0,D2-D1+1))]
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan