• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Beperking in textbox

Status
Niet open voor verdere reacties.

toverkamp

Gebruiker
Lid geworden
11 sep 2006
Berichten
403
Ik ben al een tijd aan het zoeken geweest op internet, maar ik kon niets vinden, vandaar dat ik dit topic toch maar open.

Ik heb in een userform 2 textboxen naast elkaar staan. In de eerste textbox worden de uren ingevuld en in de tweede de minuten. De notatie van elke textbox is minimaal en maximaal 2 cijfers.
Voorbeeld:
Textbox 1: 08
Textbox 2: 15

Welke code kan ik hierachter hangen, zodat dit ook daadwerkelijk zo ingevoerd word. Dus niet meer en niet minder en alleen maar getallen.

Voor alleen getallen had ik de volgende code al gevonden, maar ik zou deze graag willen combineren met het bovenstaande probleem, zodat er 1 code uitkomt:
Code:
Option Explicit
Option Compare Text

Private Sub textbox1_Change()
  If Not IsNumeric(textbox1) Then
    If Len(textbox1) <= 1 Then
      textbox1= ""
    Else
      textbox1= Left(textbox1, Len(textbox1) - 1)
    End If
  End If
End Sub
 
Hoi toverkamp,

Kijk hier eens naar:
Code:
Private Sub TextBox1_Change()
    If Not IsNumeric(TextBox1.Text) And Len(TextBox1.Text) > 0 Then
        MsgBox "Alleen getallen zijn toegestaan!"
        Dim x As Integer
        For x = 1 To Len(TextBox1.Text)
            If Not IsNumeric(Mid$(TextBox1, x, 1)) Then TextBox1.Text = Replace(TextBox1.Text, Mid$(TextBox1, x, 1), "")
        Next
    Else
        If Len(TextBox1.Text) = 2 Then
            MsgBox "De tekst in 2 lang en volledig numeric"
        End If
    End If
End Sub

Private Sub UserForm_Activate()
    TextBox1.MaxLength = 2
End Sub
 
Spiderman super bedankt, werkt echt goed. Ik heb de code iets aangepast, want die msgbox als er 2 getallen zijn ingevuld vond ik niet echt handig.

Thnx:thumb:
 
Nog een klein vraagje:
is het ook mogelijk om een minimale lengte van regels in te vullen.
Code:
TextBox1.MaxLength = 2
heb ik er nu in staan, maar ik wou ook zoiets voor een telefoonnummer dus dan moet je minimaal en maximaal 10 lente. De maxLength is wel gelukt, nu de minimale nog:confused:
 
Hoi toverkamp,

Nee minimale lengte is onmogelijk. Je kan niet zeggen dat er minimaal 2 karakters in moeten staan, omdat als je begint is deze leeg.

Met onderstaande code controleer je dus de minimale invoer:
Code:
If Len(TextBox1.Text) = 2 Then
  MsgBox "De tekst in 2 lang"
End If
 
Spiderman, ik weet niet of dit de juiste methode is op het forum (waarschijnlijk niet :) ) maar toch waag ik het erop.
De uitdaging waar ik mee zit is soortgelijk aan dit topic.
Graag zou ik willen weten of je in een textbox dwingend kunt voorschrijven hoe iets ingevoerd moet worden, bijv. een postcode als 0000 XX, waarbij de eerste viet posities cijfers van 0 t/m 9 zijn, dan (door VBA of Excel) een spatie en vervolgens twee (Hoofd)letters ingevoerd kunnen worden.
Idem zou ik dat graag met het telefoonummer willen in het format
nnn-nnn.nn.nn of nnnn-nn.nn.nn afhankelijk van wanneer de gebruiker het streepje intikt.
Of is het wellicht handiger om het format van de invoer later in de cel door Excel te laten opmaken?

Gerald Baalhuis
 
Je had je vraag in een nieuwe post moeten stellen.
Denk dat dat nu als nog het beste is, krijg je eerder antwoord en mensen die later met het zelfde probleem zitten kunnen het antwoord sneller vinden. mits je de post een juiste tiel geeft natuurlijk.


De beste controle is dat je direct het juiste formaat invuld als gebruiker :).
Maar in de snelheid van het invullen worden er nog weleen fouten gemaakt, dus het lijkt me zo ie zo verstandig om vba / excel het format van de weg te schrijven data te controleren.

Ik heb een soort gelijk formulier gemaakt en die data laat ik mbv vba wegschrijven en hierna maak ik mbv code de cellen op.
bv postcode: maakt niet uit hoe deze wordt ingevoerd in het formulier (1234aa of 1234AA of 1234 aa of 1234 AA), bij het wegschrijven wordt hij in de cel geplaatst en deze krijgt dan automatisch de opmaak 1234 AA.

post eerst maar in een nieuwe post + voorbeeld bestandje erbij, dan kunnen we wat verder kijken.

Groet,
Ferenc
 
Demeter, dank je wel voor je terechte opmerking. Ik had dat natuurlijk zelf ook kunnen bedenken, maar dacht op deze wijze Spiderman 'direct' te kunnen spreken. Ik ga meteen een nieuwe post maken!

met vriendelijke groet,

Gerald Baalhuis
 
Nog een klein vraagje:
is het ook mogelijk om een minimale lengte van regels in te vullen.
Code:
TextBox1.MaxLength = 2
heb ik er nu in staan, maar ik wou ook zoiets voor een telefoonnummer dus dan moet je minimaal en maximaal 10 lente. De maxLength is wel gelukt, nu de minimale nog:confused:
De MaxLength kan je toch ook gewoon in de eigenschappen van de Textbox instellen. Dan heb je er geen code voor nodig.
 
Hoi,

Ik ben nog ff aan het spelen geweest met de MaskEdBox (Voorheen weinig mee gedaan).

Ik heb ff een voorbeeldje gemaakt die Postcode, Bankrekening, MobielNummer, 5 tekst karakters en 5 cijfers in het juiste format afdwingt.
 

Bijlagen

Spiderman,

Ik krijg nadat ik het bestand geopend heb in Excel en na de melding 'macro's inschakelen'een foutmelding.
Mijn versie Excel: 2000. Wellicht ligt daar de fout?

Gerald
 

Bijlagen

Hoi Gerald Baalhuis,

Ik denk dat ik hem snap. Kun je op je computer eventjes zoeken of je het bestandje msmask32.ocx hebt staan. Ik denk namelijk van niet.
 
Hoi Gerald Baalhuis,

Vreemd :confused: Misschien dat het dan nog aan de versie ervan ligt.
De mijne is versie 6.0.84.18. Heb jij toevallig een versie 5
 
Inderdaad, ik heb dus een versie 5.0.37.14 Maar kan je daar gewoon de nieuwe versie overheen kopieren?

Gerald
 
Hoi Gerald Baalhuis,

Dat durf ik niet te zeggen. Ik heb me eigenlijk nooit echt verdiept in de wereld van Ocx.

Ik denk het bijna niet, volgens mij moet je ze registreren met iets van regsrv32 ofzoiets.

Kun je je msmask32.* (dus alle bestanden met die naam ff zippen) hier plaatsen, dan kijk ik eventjes op een test PC, of ik die kan plaatsen.
 
Hoi Gerald Baalhuis,

Ik heb het volgende gedaan. Ik heb jou Ocx op mijn test PC geplaatst, en idd ik krijg dezelfde melding als jij.

Vervolgens heb ik de Ocx van mijn PC naar mijn Test PC gezet, en alles werkt naar behoren :) .

Ik heb mijn Ocx in de bijlage gezet, wel zeg ik erbij dat ik er natuurlijk geen verantwoordelijk voor neem als het bij jou anders zou werken dan op mijn test PC.
 

Bijlagen

Arno,

Bedankt voor jouw ocx file. Het werkt nu prima. Ik ga hier lekker mee aan de slag.


Gerald
 
Hallo mensen,

Ik zie dat er al een ander probleem is opgelost! Maar nu nog een vraagje m.b.t. 'mijn' vraag: Is het helemaal niet mogelijk om een minimum aantal aan te geven in een code? Zo niet, jammer! Anders hoor ik het graag!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan