Forcer l'écriture 2 lettres et 6 chiffres

jacky45

XLDnaute Nouveau
Bonjour à tous,
Je voudrais dans une plage que je nommerais sur ma feuille (ex a1:a100)
forcer l'écriture avec 2 lettres et 6 chiffres (exp; gf123456)
et avoir un msgbox si une erreur a été constaté
Merçi
 

Tibo

XLDnaute Barbatruc
Re : Forcer l'écriture 2 lettres et 6 chiffres

Salut Jacky,

A essayer avec une validation (menu Données)

Sélectionner de A1 à ....

Données - Validation - Onglet Options - Autoriser : personnalisé - Formule : =ET(NON(ESTNUM(GAUCHE(A1)*1));NON(ESTNUM(STXT(A1;2;1)*1));ESTNUM(DROITE(A1;6)*1))

Possibilité de gérer dans les onglets suivants des messages d'alerte.

A te lire

@+
 

MichelXld

XLDnaute Barbatruc
Re : Forcer l'écriture 2 lettres et 6 chiffres

bonjour Jacky, bonjour cher Tibo


tu peux tester

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Not Intersect(Target, Range("A1:A100")) Is Nothing Then
        If Target.Value Like "[a-z][a-z]######" Then Exit Sub
 
        On Error GoTo Fin
        Application.EnableEvents = False
        MsgBox "Format non conforme."
        Application.Undo
    End If
 
Fin:
    Application.EnableEvents = True
End Sub


Attention la procédure est sensible à la casse


Bonne journée
MichelXld
 

jacky45

XLDnaute Nouveau
Re : Forcer l'écriture 2 lettres et 6 chiffres

Merçi Michelxld pour ton code,cela fonctionne à merveille
mais n'y aurais t'il pas un moyen que cela soit taper en majuscule ou minuscule.
sinon je le garde et l'incorpore à ma feuille
encore merçi à vous deux et bonne soirée et de bonne fêtes.
Jacky
 

MichelXld

XLDnaute Barbatruc
Re : Forcer l'écriture 2 lettres et 6 chiffres

rebonsoir

Ajoute Option Compare Text en haut du module

Code:
Option Explicit
[COLOR=blue]Option Compare Text[/COLOR]

Private Sub Worksheet_Change(ByVal Target As Range)
        
    If Not Intersect(Target, Range("A1:A100")) Is Nothing Then
        If Target.Value Like "[a-z][a-z]######" Then Exit Sub
        
        On Error GoTo Fin
        Application.EnableEvents = False
        MsgBox "Format non conforme."
        Application.Undo
    End If

Fin:
    Application.EnableEvents = True
End Sub


bonne soirée
MichelXld
 

LAMPOSKO

XLDnaute Nouveau
Re : Forcer l'écriture 2 lettres et 6 chiffres

Bonsoir Forum

Bonsoir Jacky45 , Tibo, MichelXLD, bonne fetes à vous ,

Voila j'ai vu ce sujet , et je cherche depuis un moment un code à l'identique de celui-ci , dans toute la colonne L , nommée INDEXJOK
le seul parametre qui differe (pas beaucoups ) c'est que mes donnnées se composent de 3 lettres toujours les memes_ puis 2 lettres qui changent_ puis
4 chiffres comme ceci ==> JKR.uA.1234
3 segments separés par un point .
est-il possible que vous m'adapteriez ce code en fonction de mes données , et si possible m'indiquer ou et comment je dois le coller dans mon classeur !!
Euuhh je ne sais pas encore me debrouiller tout seul avec les codes VBA (!!!)

je vous remerci infiniment de me repondre ;
à plus
 

LAMPOSKO

XLDnaute Nouveau
Re : Forcer l'écriture 3 lettres_2lettres et 4 chiffres

Bonsoir Forum bonne fetes à vous

Bonsoir Jacky45 , Tibo,
MichelXLD

Voila j'ai vu ce sujet , et je cherche depuis un moment un code à l'identique de celui-ci , dans toute la colonne L , nommée INDEXJOK
le seul parametre qui differe (pas beaucoups ) c'est que mes donnnées se composent de 3 lettres toujours les memes_ puis 2 lettres qui changent_ puis
4 chiffres comme ceci ==> JKR.uA.1234
3 segments separés par un point .
est-il possible que vous m'adapteriez ce code en fonction de mes données , et si possible m'indiquer ou et comment je dois le coller dans mon classeur !!
Euuhh je ne sais pas encore me debrouiller tout seul avec les codes VBA (!!!)
Code par MICHELXLD à adapter si possible
Code:

Option Explicit
Option Compare Text

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1:A100")) Is Nothing Then
If Target.Value Like "[a-z][a-z]######" Then Exit Sub

On Error GoTo Fin
Application.EnableEvents = False
MsgBox "Format non conforme."
Application.Undo
End If

Fin:
Application.EnableEvents = True
End Sub
je vous remerci infiniment de me repondre ;
à plus
oups j'espére que je suis toujours sur le bon fil !!
 

Gérard DEZAMIS

XLDnaute Accro
Re : Forcer l'écriture 3 lettres_2lettres et 4 chiffres

Bonsoir à Tous

En essayant de modifier cette ligne

If Target.Value Like "[a-z][a-z]######" Then Exit Sub

et la remplacer par celle-ci

If Target.Value Like "[A-Z][A-Z][A-Z][.][a-z][A-Z][.]####" Then Exit Sub

Regarde si cela ne convient pas

@+GD

Edition : Un Bonjour à Jacky, Lamposko et un grand salut à l'ami Michel sans oublier le compère Tibo
Je manque à tous mes devoirs de politesse. L'arrivée matinale sûrement ...
 
Dernière édition:

Statistiques des forums

Discussions
312 287
Messages
2 086 820
Membres
103 394
dernier inscrit
elhamdi