• 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 lengte van cell values gescheiden dmv een komma

Status
Niet open voor verdere reacties.

mause01

Gebruiker
Lid geworden
19 okt 2012
Berichten
75
Ik heb de volgende code.

De code werkt zo:
Er komt meerdere keren een waarde in de cel voor wordt welke gescheiden wordt doormiddel van een"," (komma).
er komt een prefix d.m.v. een haakje "{" en een suffix d.m.v. een haakje "}".
nu heb ik in de code staan dat de totale lengte niet meer mag zijn dan 32.
maar ik wil graag de lengte controleren van max ELKE waarde.
max lengte 32 dan een"," (komma) en weer max lengte 32 dan een"," (komma).
er kunnen meerdere keren een waarde voorkomen.

voorbeeld:"{WAARDE,WAARDE,WAARDE,WAARDE}"

kunnen jullie mij de juist wijzigingen aan de code aangeven.


Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim rng As Range        'Main
    Dim aCell As Range      'Main  
Set rng = Range("U7:U5000")
    If Not Application.Intersect(Target, rng) Is Nothing Then
            For Each aCell In rng
                If Left(aCell.Value, 1) <> "{" And InStr(1, aCell.Value, ",") > 1 Then
                    aCell.Value = "{" & aCell.Value & "}"
					  If Len(aCell.Value) < 35 Then '-{}
                Else
                        aCell.ClearContents
                        MsgBox "You have entered an Invalid Length in this cell. Max 32 character Lenght is allowed.   Wrong Value [" & aCell.Value & "] in cell [" & aCell.Address & "]", vbExclamation, "Invalid Length Entry"
                End If
             End If
          Next
      End If
 
Laatst bewerkt:
Inspringpunten zijn goed maar zo?

Code:
If Len(aCell.Value) < 35
aanpassen naar wens denk ik.

Een voorbeeldbestandje mag natuurlijk ook.;)
 
Laatst bewerkt:
Ik heb de oplossing reeds gevonden.
bedankt.


Code:
Set rng = Range("W7:W5000")
Dim x As Variant 
    If Not Application.Intersect(Target, rng) Is Nothing Then
        For Each aCell In rng
            For Each x In Split(aCell, ",")
                If Len(x) > 32 Then
                    MsgBox "You have entered an Invalid Length in this cell. Max 32 character Lenght is allowed.   Wrong Value [" & aCell.Value & "] in cell [" & aCell.Address & "]", vbExclamation, "Invalid Length Entry"
                    aCell.ClearContents
                End If
            Next x
            If Left(aCell.Value, 1) <> "{" And InStr(1, aCell.Value, ",") >= 1 Then
                aCell.Value = "{" & aCell.Value & "}"
            End If
        Next
    End If
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan