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

Vreemde tekens weren uit een cel

Status
Niet open voor verdere reacties.

boppe

Gebruiker
Lid geworden
26 aug 2010
Berichten
69
Hallo

Omdat een cel onderdeel uitmaakt van een bestandsnaam, mogen er geen vreemde tekens (zoals slash, backslash, komma, punt ed) worden ingevuld.
Dit veld is betreft een serienummer van iets.
De ene keer heeft het 3 karakters, de andere keer bijvoorbeeld 15. Dan letters, dan cijfers dan een combinatie en soms met een vreemde teken.

Een - teken of liggend streepje gaat nog wel.

Ik ben even bezig geweest met gegevensvalidatie. Maar ik kan daar niet kiezen welke tekens niet mogen. En een lijst maken met a;b;c; etc werkt niet.

Wie heeft een beter idee
 
Misschien dat dit je een beetje op weg helpt.

Code:
=SUBSTITUTE(A1;"/";"")
 
Ik gebruik er dit voor:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub
    
    Application.EnableEvents = False
    Target.Value = ValidFilename(Target.Value)
    Application.EnableEvents = True
End Sub

Function ValidFilename(p_file As String) As String
    Dim nChars As String
    Dim i As Integer
    
    nChars = "<>|\/|*?:{}"
    ValidFilename = p_file
    For i = 1 To Len(nChars)
       ValidFilename = Replace(ValidFilename, Mid(nChars, i, 1), "", 1, -1, vbBinaryCompare)
    Next i
End Function

Probeer het maar eens in kolom A van dit document:
Bekijk bijlage Goedenaam.xlsm

Eventuele andere ongewenste tekens kan je zelf aan nChars in de functie toevoegen.
 
Laatst bewerkt:
Ik ben even bezig geweest met gegevensvalidatie. Maar ik kan daar niet kiezen welke tekens niet mogen. En een lijst maken met a;b;c; etc werkt niet.

Wie heeft een beter idee

Middels gegevensvalidatie bijv.:
tbv cel c3:

Code:
=NOT(ISNUMBER(SUMPRODUCT(SEARCH(MID($C$3;ROW(INDIRECT("1:"&LEN(A1)));1);"/*\][{};*#@"))))
 
Maak een routine waarin een bestandsnaam wordt gegenereerd onafhankelijk van de inhoud van enige cel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan