Interdire l'enregistrement de caractères spéciaux dans une cellule

Bonjour,

J’ai parcouru pas mal de solution sur le forum je n’arrive pas vraiment à trouver ce que je cherche….

Je souhaite:

1) Interdire l’enregistrement dans ma cellule F6 de caractères spéciaux. Ceux qui sont interdits par Windows pour nommer un fichier. Je veux éviter les tests ASCII car un copier-coller est si vite arrivé…

2) Limité à 17 caractères max

J'ai le code pour le point 2 mais pas le 1

Private Sub Worksheet_Change(ByVal Cel As Range)

'Contrôle de saisi du nom de SUJET (limite caractère)

Set Cel = Intersect(Cel, Range("F6"))

If Cel Is Nothing Then Exit Sub

If Len(Cel) > 17 Then MsgBox "Le SUJET doit faire 17 caractères au maximum", vbCritical, "Sujet trop long": Application.Undo

End Sub
0mef-forum.zip (334.46 Ko)

Merci pour votre aide

NB: mdp 123456

Bonjour Matths,
je ne comprends pas votre remarque concernant le copier-coller

Je veux éviter les tests ASCII car un copier-coller est si vite arrivé…

car le copier-coller n'empêchera pas le passage par le Worksheet_Change et donc le blocage.
ci-dessous un code à adapter en fonction des caractères que vous voulez interdire.

If (InStr(1, Target, "/") <> 0) Or (InStr(1, Target, "\") <> 0) Or (InStr(1, Target, ":") <> 0) Or _
       (InStr(1, Target, "*") <> 0) Or (InStr(1, Target, "?") <> 0) Or (InStr(1, Target, """") <> 0) Or _
       (InStr(1, Target, "<") <> 0) Or (InStr(1, Target, ">") <> 0) Or (InStr(1, Target, "|") <> 0) Then
        MsgBox "caractères non autorisés pour un nom de fichier : /\ ...."
        Application.Undo
    End If
End Sub
image

@clr ça fonctionne parfaitement merci beaucoup !

Concernant le copier-coller, je crois que je confonds avec le keypress (je me souviens avoir lu cette limite quelque part) des textbox. Etant donné qu'avec un copier-coller on ne "tape" pas le caractère, cela passe au travers.

N'oubliez pas de passer le sujet à Résolu

Rechercher des sujets similaires à "interdire enregistrement caracteres speciaux"