Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Interdir les caractères spéciaux dans un colonne

4 réponses
Avatar
Gildo
Bonjour,

Comment faire pour contrôler une colonne B pour qu’elle n’accepte que :
Les lettres (A à Z et rien d’autre), les chiffres et le tiret (- ou signe
moins) ?

Surtout aucuns autres caractères spéciaux.
Et peut-on affecter une couleur aux cellules en erreur comme pour une mise
en forme conditionnelle voire renseigner la colonne A « en erreur » ?

Pas évident tout ça !

4 réponses

Avatar
Garette
Bonjour,

Ceci est possible en utilisant le menu Données/Validation :
- Selectionner la zone à traiter
- Aller dans Données/Validation
- Dans "Autoriser" choisir "Personnalisé"
- Dans formule taper :
=SI(CODE(A1)>64;SI(CODE(A1)<91;VRAI;SI(CODE(A1)>96;SI(CODE(A1)<123;VRAI;FAUX))))
Où A1correspond à la premiere cellule de la zone selectionnée.
Exemple : si la plage selextionnées est C4:Z100, remplacer A1 par C4

Dans les onglets "Message de saisie" et "Alerte d'erreur" choisir le type de
message pour l'utilisateur.

--------------------
Pour afficher la cellule en couleur si la valeur est differente de a..z et
A..Z, aller dans Format/Mise en forme conditionnelle :
- Cliquer sur "La formule est"
- saisir la formule :
=NON(SI(CODE(A1)>64;SI(CODE(A1)<91;VRAI;SI(CODE(A1)>96;SI(CODE(A1)<123;VRAI;FAUX)))))
- Choisir le Format souhaité.

Normalement, il n'est pas necessaire de mettre les cellules en couleur
puisque l'utilisateur ne pourra pas saisir autre chose que a..z et A..Z
Avatar
Garette
Oui, cest un peu plus compliqué ...
Mais j'ai trouvé qq chose.
Exemple ici : http://cjoint.com/?mopkiERJUP
Il faut bouger effacer les boites de texte dans le fichier pour voir ce
qu'il y a dessous.

J'utilise une liste d'exclusion. Si il y a dans la saisie un caractere
"interdit" => message d'erreur.
Je fais reference à cette liste dans la feuille car trop grande pour rentrer
dans la formule.
Avatar
Fred
Bonjour,

Voici ma solution en utilisant visual basic

Le code ci-dessous est à intégré dans le code de la Feuille à filtrer.

Option Explicit
Private Sub Worksheet_Change(ByVal target As Range)
Dim s As Range:
Dim accepte As String
Dim i As Integer
Dim valide As Boolean
Set s = Selection
accepte = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-"
If target.Column = 2 Then
For i = 1 To Len(target(1))
valide = InStr(1, accepte, Mid(target(1), i, 1)) > 0 Or target(1) ""
If Not valide Then Exit For
Next i
If Not valide Then
s.Select
target.Activate
Application.EnableEvents = False
If target(1) <> "" Then
MsgBox "Saisie incorrecte : " & """" & target(1) & """"
target(1).Formula = ""
End If
End If
End If
Application.EnableEvents = True
End Sub

Bonne continuation
Bonnes fêtes


"Gildo" a écrit dans le message de news:

Bonjour,

Comment faire pour contrôler une colonne B pour qu'elle n'accepte que :
Les lettres (A à Z et rien d'autre), les chiffres et le tiret (- ou signe
moins) ?

Surtout aucuns autres caractères spéciaux.
Et peut-on affecter une couleur aux cellules en erreur comme pour une mise
en forme conditionnelle voire renseigner la colonne A « en erreur » ?

Pas évident tout ça !



Avatar
Garette
Derniere precision, l'utilisation de car n'est pas necessaire dans la
formule.
En fait, je l'avait utilisé pour récupérer tous les caractères à controler.
Mais celle-ci suffit larement :
=SI(ET(ESTERREUR(TROUVE($G$1:$G$192;E1)));VRAI;FAUX)
Il suffit de tester directement les caractères récupérés dans la colonne G.