• Initiateur de la discussion Initiateur de la discussion Rénato
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Rénato

XLDnaute Occasionnel
Bonjour le forum,

Je souhaite restreindre la possibilité de saisie dans une plage de cellules de la façon suivante :

AA222#
AB326#

Les 2 premiers caractères sont des lettres, du 3eme au 5eme caractère des chiffres, à partir du 6eme...saisie libre.

J'ai essayé en vain par Données\\Validations ou par le menu Format\\Cellule\\Nombre.
J'ai recherché sans succès dans le forum, j'ai même trouvé dans le menu téléchargement une production signée Cathy sur les formats spéciaux, dans laquelle je n'ai pas non plus trouvé mon bonheur.

L'un d'entre vous aurait-il une solution ?

Merci pour votre aide.
 
Bonjour rénato et nanard

une proposition en VBA, en attendant que les maîtres du forum, te trouve une solution plus élégante :

ce code fonctionne pour toute saisie en colonne A :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim message As String, cellule As String
Dim i As Byte

If Not Application.Intersect(Target, Columns(1)) Is Nothing Then
message = 'Merci de respecter le format : AA123....'
cellule = Target.Address
If Len(Target) < 5 Then MsgBox message: Range(cellule).Activate
For i = 1 To Len(Target)
carac = Mid(Target, i, 1)
If i = 1 And IsNumeric(carac) Then MsgBox message: Range(cellule).Activate: Exit Sub
If i = 2 And IsNumeric(carac) Then MsgBox message: Range(cellule).Activate: Exit Sub
If i = 3 And Not IsNumeric(carac) Then MsgBox message: Range(cellule).Activate: Exit Sub
If i = 4 And Not IsNumeric(carac) Then MsgBox message: Range(cellule).Activate: Exit Sub
If i = 5 And Not IsNumeric(carac) Then MsgBox message: Range(cellule).Activate: Exit Sub
Next i
End If
End Sub

en espérant t'avoir aidé.

a plus...
 
Salut Renato, nanard, Hervé et les autres,

A essayer comme formule de liste de validation sous Autoriser :

=ESTERREUR(GAUCHE(A1;2)*1)*NON(ESTERREUR(STXT(A1;3;3)*1))=1

Si cela ne marche, je testerai moi-même pour trouver la correction.

Bon week-end.
Ândré.
 
bonsoir à tous,

Merci à Nanard, Hervé et André de s'être gentiment penché sur mon souci.

J'ai éprouvé le script d'RV , il fonctionne très bien, concernant la formule d'André, après avoir apporté un petit correctif ....ça marche également.

=ESTERREUR(GAUCHE(A4;1)*1)*ESTERREUR(STXT(A4;2;1)*1)*NON(ESTERREUR(STXT(A4;3;3)*1))

Bon W.E. et encore merci !!!

Rénato
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
1 K
B
Réponses
9
Affichages
6 K
bastienb
B
S
Réponses
2
Affichages
17 K
G
N
Réponses
5
Affichages
23 K
Nitsua
N
M
Réponses
3
Affichages
1 K
Papaye
P
Retour