XL 2013 Validation de donnée Excel

Dofing

XLDnaute Junior
Bonjour à toutes et à tous,
Je cherche à imposer un format personnalisé de saisie dans une cellule, mais je ne parviens pas à trouver la formule de validation personnalisée des données.

Le format requis est :

- La Colonne doit commencer par une lettre Majuscule entre A et Z
- Suivi ensuite par des chiffres (maximum 07 chiffres)
- La informations saisies ne doivent pas contenir d'espace
- La cellule ne doit pas contenir de doublon.

Cordialement.
 
Solution
Dans ce fichier (5) cette formule de validation est celle qui pèse le moins lourd en nombre d'octets :
Code:
NB(LN(A1="Sans D24");LN(ET(NBCAR(A1)>1;NBCAR(A1)<9;CODE(A1)>64;CODE(A1)<91;NON(MOD(STXT(A1;2;7);1));ESTERR(TROUVE(" ";A1));NB.SI(A:A;A1)=1)))
Avec la fonction LN les valeurs FAUX renvoient une erreur.

job75

XLDnaute Barbatruc
Bonjour Dofing, bienvenue sur XLD,

Bon problème pour un 1er post :)

Voyez le fichier joint et cette macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim P As Range, c As Range, txt$, i%, x$
Set P = Intersect(Target, [A:A], UsedRange) 'colonne à adapter
If P Is Nothing Then Exit Sub
If Application.CountA(P) = 0 Then Exit Sub
For Each c In P 'si entrées multiples (copier-coller)
    If c.Row > 1 Then 'en-têtes en ligne 1
        txt = CStr(c)
        If txt <> "" Then
            If Len(txt) = 1 Or Len(txt) > 8 Then P = "": Exit Sub 'si nombre de caractères =1 ou > 8
            If Asc(txt) < 65 Or Asc(txt) > 90 Then P = "": Exit Sub  'si autre qu'une lettre majuscule
            For i = 2 To Len(txt)
                x = Mid(txt, i, 1)
                If Asc(x) < 48 Or Asc(x) > 57 Then P = "": Exit Sub 'si autre qu'un chiffre
                If Len(txt) - Len(Replace(txt, x, "")) > 1 Then P = "": Exit Sub 'si doublon
            Next i
        End If
    End If
Next c
End Sub
Edit : ajouté le test If txt <> "" Then

A+
 

Pièces jointes

  • Classeur(1).xlsm
    21.6 KB · Affichages: 7
Dernière édition:

job75

XLDnaute Barbatruc
Fichier (2) avec une formule de Validation un tout petit peu plus simple :
Code:
=ET(NBCAR(A1)>1;NBCAR(A1)<9;CODE(A1)>64;CODE(A1)<91;NON(MOD(STXT(A1;2;7);1));MAX(NBCAR(A1)-NBCAR(SUBSTITUE(A1;LIGNE(INDIRECT("1:10"))-1;)))<2)
 

Pièces jointes

  • Classeur Validation(2).xlsx
    14.9 KB · Affichages: 6

job75

XLDnaute Barbatruc
J'ai vérifier mais les doublons, et les espaces entre lettres et chiffres sont possibles
Fichier (3), j'ai ajouté le critère ESTERR(TROUVE(" ";A1)) ainsi que "" à la fin du test sur les doublons :
Code:
=ET(NBCAR(A1)>1;NBCAR(A1)<9;CODE(A1)>64;CODE(A1)<91;NON(MOD(STXT(A1;2;7);1));ESTERR(TROUVE(" ";A1));MAX(NBCAR(A1)-NBCAR(SUBSTITUE(A1;LIGNE(INDIRECT("1:10"))-1;"")))<2)
 

Pièces jointes

  • Classeur Validation(3).xlsx
    15 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonjour Dofing, Patrick, le forum,

Il faut en effet savoir ce qu'on entend par doublon, le post #1 n'est pas clair.

Pour moi il s'agit d'éviter 2 chiffres identiques dans une même cellule.

Pour Patrick il s'agit d'éviter 2 cellules identiques en colonne A.

A Dofing de dire ce qu'il veut.

Bonne journée.
 

Dofing

XLDnaute Junior
Bonjour Patrick,

Cette configuration est destiné à être appliquée à une colonne en entier, Il s'agit d'éviter qu'une même référence soit répéter à différents cellules dans la même colonne.

Par exemple C19354 en cellule A2 et C19354 en cellule A18.

Cordialement.
 

job75

XLDnaute Barbatruc
Bonjour Dofing, le forum,

Donc utilisez ce fichier (4) avec la formule de validation :
VB:
=ET(NBCAR(A1)>1;NBCAR(A1)<9;CODE(A1)>64;CODE(A1)<91;NON(MOD(STXT(A1;2;7);1));ESTERR(TROUVE(" ";A1));NB.SI(A:A;A1)=1)
Bonne journée.
 

Pièces jointes

  • Classeur Validation(4).xlsx
    14.9 KB · Affichages: 12

Dofing

XLDnaute Junior
Bonjour,

Il y a de cela quelques j'ai solliciter et obtenu votre aide avec une formule me permettant de "En colonne A entrez une lettre majuscule suivie d'un maximum de 7 chiffres sans doublon"

En plus de ce code et toujours dans la colonne A je cherche maintenant à mettre une formule qui autorisera la saisie du mot "Sans D24"

J'ai essayé à plusieurs reprise sans succès, Merci de votre support
 

Discussions similaires

Statistiques des forums

Discussions
312 273
Messages
2 086 701
Membres
103 373
dernier inscrit
Edouard007