• 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.

max aantal karakters in veld vastleggen

Status
Niet open voor verdere reacties.

rob91

Gebruiker
Lid geworden
10 okt 2008
Berichten
192
Hallo,

Ik heb een vraag; we hebben een lijst met artikelomschrijvingen, die door de afdeling verkoop aangepast gaat worden.
Nu wil ik het veld van de omschrijving zodanig beperken dat er maximaal 40 karakters ingevuld kunnen worden, zodat deze niet naderhand weer aangepast moeten worden.

Eigenlijk wil ik bij overschrijding van de 40 karakers een pop-up krijgen met een melding en de gebruiker direct moet corrigeren, voordat hij verder kan.

Is dit op een of andere manier mogelijk???:eek:

Rob
 
Laatst bewerkt:
Beste rob91 ;)

Via gegevensvalidatie kan je een opmerking invoegen van zodra de lengte meer dan 40 karakters is.

Ga naar gegevensvalidatie bij instellen, zet aangepast bij toestaan en typ de volgende formule eronder.

Code:
lengte(A1)>40

Dan blad foutmelding, bij titel zet je OPMERKING ! Bij foutmelding typ je "Deze cel mag niet meer dan 40 karakters bepalen."
Klik daarna op OK.

Groetjes Danny. :thumb:
 
In een VBA-userform heeft een tekstvak de eigenschap Maxlength. Die eigenschap kun je de door jou gewenste waarde geven. Daarmee wordt de gebruikersinvoer beperkt.
Een userform is bij uitstek de methode om gebruikersinvoer te ondersteunen (controleren, verbeteren, beperken).
 
Omdat validatie overschreven kan worden door:
1) kopiëren - plakken;
2) knippen - plakken;
3) VBA
4) truukje via =[celverwijzing]
5) ........

kun je ook nog een controle toevoegen in een cel via de matrixformule:

Code:
=MAX(LENGTE(A11:A15))
Bijv. Als(=MAX(LENGTE(A11:A15))>40;"Te lange tekst ingevoerd!";"")

Invoeren via Ctrl+Shift+Enter.

Groeten,
Richard
 
Hallo Richard,

Zou je jouw oplossing in een klein voorbeeldje willen steken?
Alvast bedankt.

Rob
 
Richard,

Bedankt voor je voorbeeld; ik snap wat je bedoelt.
Alleen is het op die manier niet duidelijk in welke regel de fout zit.

Ik heb nu de volgende oplossingen voor mijn probleem:

- hulpkolom met formule: lengte(celx) en voorwaardelijke opmaak voor kolom met
daarin de formule : celx >40 dan kleur rood.
- valideren tekstlengte tussen 1 en 40

- jouw formule die ik evt als normale formule in een hulpkolom naast de omschrijvingen
kan zetten.

Zelf zou ik het liefst hebben dat ik een stukje VBA code heb die er voor zorgt dat er een
Msgbox opkomt met een duidelijke boodschap als de waarde overschreden wordt.

Ik heb wat geprobeerd maar dit is niet goed; misschien kan iemand dit verbeteren.???

Sub lengtecheck()
Range("D:D").Select
If Val("D") > 40 Then
MsgBox Prompt:="Omschrijving te lang; max.40 tekens toegestaan"
End If
End Sub


Rob
 
Test deze eens. De invoer is in kolom A
 

Bijlagen

Hallo Rudi,

Die doet het; alleen.............

kom ik erachter dat je dan gewoon door kan gaan en de fout kan negeren; dus dat is het nog niet helemaal.

Rob
 
Ja Rob, je hebt dan ook alleen maar een MsgBox gevraagd niet ?:p:p
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 4 and target.cells.count=1 Then
    If Len(Target) > 40 Then
      Application.EnableEvents = False
      Target.Value = Left(Target.Value, 40)
      MsgBox vbTab & "Cel " & Target.Address & "aangepast", , "invoer te lang"
      Application.EnableEvents = True
    End If
  End If
End Sub
 
Prachtige formule,maar...... (ja,weer een maar)
Als er meerdere regels zijn met meer dan 40 karakters gaat dit niet goed.

Ik ga komende week maar eens in de boeken snuffelen of die MsgBox om te bouwen is, zodat men eerst moet corrigeren voordat men verder kan.

Tot zover wel bedankt voor het meedenken!

Rob.
 
SNB,

Mooi oplossing; alleen mag de tekst niet zomaar ingekort worden tot 40 tekens, maar moet men dit handmatig doen, want anders komen er onleesbare dingen te staan.

Rob
 
Dat mogen de gebruikers dan doen.
Als je ze echt tegen het plafond wil krijgen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 4 and target.cells.count=1 Then
    If Len(Target) > 40 Then
      Application.EnableEvents = False
      Target.clearcontents
      MsgBox vbTab & "Cel " & Target.Address & "verwijderd", , "invoer te lang"
      Application.EnableEvents = True
    End If
  End If
End Sub

of

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 4 and target.cells.count=1 Then
    If Len(Target) > 40 Then
      Application.EnableEvents = False
      c0=target.value
      do until len(c0)<41 
         c0=inputBox("Voer de tekst van cel " & Target.Address & " in")
      loop
      target=c0
      Application.EnableEvents = True
    End If
  End If
End Sub
 
Laatst bewerkt:
Zo dan ?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 1 Then
   If Len(Target) > 40 Then
        MsgBox "Teveel karakters in de laatst ingevoerde cel!!! Gelieve aan te passen"
        Application.Goto Target
    End If
End If
End Sub
 
Laatst bewerkt:
@Rudi

En als de gebruiker vervolgens naar een andere cel gaat zonder iets in deze cel te wijzigen ?
 
@Rudi :Niets persoonlijks hoor.
Had ook nog graag jouw reaktie hierop.
 
Eenieder bedankt voor de oplossingen.:thumb::thumb:

Mijn vraag is zeer beverdigend beantwoord.
Ik zet deze op opgelost.

Rob
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan