OVH Cloud OVH Cloud

Masque de saisie dans une cellule

12 réponses
Avatar
Domi
bonsoir à tous,
Je voudrais rendre obligatoire dans une colonne la saisie de données sous la
forme suivante :

a/bbbb/cc

a, b et c sont obligatoirement des chiffres.
a est <> 0
le 2e et le 7e caractères sont obligatoirement des "/", ce qui impose que
l'on saisisse 4 chiffes au milieu...
Le nombre total de caractères ("/" compris) est obligatoirement = à 9, ce
qui impose que l'on ne saisisse que 2 chiffres à la fin.

Je pense que la solution la plus simple passe par par une règle de
validation mais je ne parviens pas à la mettre au point. Ou peut-être un
formatage de cellule personnalisée ?
Quelqu'un aurait-il LA solution à me proposer ?
Merci
Domi

10 réponses

1 2
Avatar
Pounet95
Bonsoir,
Peut-être ces quelques lignes dans le module de la Feuille concernée.
A adapter, ici colonne A contient les saisies

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Columns(1), Target) Is Nothing Then
If Not IsNumeric(Target) Then
MsgBox "Numérique seulement !"
Exit Sub
Else
If Target >= 1111111 And Target <= 9999999 Then
Target = Mid$(Target, 1, 1) & "/" & Mid$(Target, 2, 4) & "/"
& Mid$(Target, 6, 2)
Else
MsgBox "Saisie non valide !"
End If
End If
End If
Application.EnableEvents = True
End Sub

Cela convient ?
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/


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

bonsoir à tous,
Je voudrais rendre obligatoire dans une colonne la saisie de données sous
la
forme suivante :

a/bbbb/cc

a, b et c sont obligatoirement des chiffres.
a est <> 0
le 2e et le 7e caractères sont obligatoirement des "/", ce qui impose que
l'on saisisse 4 chiffes au milieu...
Le nombre total de caractères ("/" compris) est obligatoirement = à 9, ce
qui impose que l'on ne saisisse que 2 chiffres à la fin.

Je pense que la solution la plus simple passe par par une règle de
validation mais je ne parviens pas à la mettre au point. Ou peut-être un
formatage de cellule personnalisée ?
Quelqu'un aurait-il LA solution à me proposer ?
Merci
Domi




Avatar
Pounet95
Re,
Une petite correction : ajouter réactivation évènement avant Exit Sub


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Columns(1), Target) Is Nothing Then
If Not IsNumeric(Target) Then
MsgBox "Numérique seulement !"
Application.EnableEvents = True
Exit Sub
Else
If Target >= 1111111 And Target <= 9999999 Then
Target = Mid$(Target, 1, 1) & "/" & Mid$(Target, 2, 4) & "/"
& Mid$(Target, 6, 2)
Else
MsgBox "Saisie non valide !"
End If
End If
End If
Application.EnableEvents = True
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

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

bonsoir à tous,
Je voudrais rendre obligatoire dans une colonne la saisie de données sous
la
forme suivante :

a/bbbb/cc

a, b et c sont obligatoirement des chiffres.
a est <> 0
le 2e et le 7e caractères sont obligatoirement des "/", ce qui impose que
l'on saisisse 4 chiffes au milieu...
Le nombre total de caractères ("/" compris) est obligatoirement = à 9, ce
qui impose que l'on ne saisisse que 2 chiffres à la fin.

Je pense que la solution la plus simple passe par par une règle de
validation mais je ne parviens pas à la mettre au point. Ou peut-être un
formatage de cellule personnalisée ?
Quelqu'un aurait-il LA solution à me proposer ?
Merci
Domi




Avatar
FxM
Bonsoir,

Sélectionner la colonne (exemple A) | données | validation |
personnalisé, taper ce qui suit :
=ET(NBCAR(A1)=9;ESTNUM(GAUCHE(A1;1)*STXT(A1;3;4)*DROITE(A1;2));STXT(A1;2;1)="/";STXT(A1;7;1)="/")

@+
FxM



bonsoir à tous,
Je voudrais rendre obligatoire dans une colonne la saisie de données sous la
forme suivante :

a/bbbb/cc

a, b et c sont obligatoirement des chiffres.
a est <> 0
le 2e et le 7e caractères sont obligatoirement des "/", ce qui impose que
l'on saisisse 4 chiffes au milieu...
Le nombre total de caractères ("/" compris) est obligatoirement = à 9, ce
qui impose que l'on ne saisisse que 2 chiffres à la fin.

Je pense que la solution la plus simple passe par par une règle de
validation mais je ne parviens pas à la mettre au point. Ou peut-être un
formatage de cellule personnalisée ?
Quelqu'un aurait-il LA solution à me proposer ?
Merci
Domi




Avatar
Domi
Bonsoir et merci pour ton aide.
Non ça ne convient pas vraiment
Je n'ai pas trop poussé les essais car ça coince rapidement.
Installation du code : no pb.
Je saisi n'importe quoi dans la colonne A avec des lettres : Message
d'erreur "Numerique uniquement" : jusque là ça va, mais ensuite je peux
saisir n'importe quoi...
La macro semble ne plus remplir son rôle de surveillance !
Je suis sous WK2/Office 2000

Domi

"Pounet95" a écrit dans le message de
news:%23Q5U6%
Bonsoir,
Peut-être ces quelques lignes dans le module de la Feuille concernée.
A adapter, ici colonne A contient les saisies

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Columns(1), Target) Is Nothing Then
If Not IsNumeric(Target) Then
MsgBox "Numérique seulement !"
Exit Sub
Else
If Target >= 1111111 And Target <= 9999999 Then
Target = Mid$(Target, 1, 1) & "/" & Mid$(Target, 2, 4) &
"/"

& Mid$(Target, 6, 2)
Else
MsgBox "Saisie non valide !"
End If
End If
End If
Application.EnableEvents = True
End Sub

Cela convient ?
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/


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

bonsoir à tous,
Je voudrais rendre obligatoire dans une colonne la saisie de données
sous


la
forme suivante :

a/bbbb/cc

a, b et c sont obligatoirement des chiffres.
a est <> 0
le 2e et le 7e caractères sont obligatoirement des "/", ce qui impose
que


l'on saisisse 4 chiffes au milieu...
Le nombre total de caractères ("/" compris) est obligatoirement = à 9,
ce


qui impose que l'on ne saisisse que 2 chiffres à la fin.

Je pense que la solution la plus simple passe par par une règle de
validation mais je ne parviens pas à la mettre au point. Ou peut-être un
formatage de cellule personnalisée ?
Quelqu'un aurait-il LA solution à me proposer ?
Merci
Domi







Avatar
Pounet95
Bonsoir,
La saisie ne peut pas commencer par un 0 ;o))))))

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

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

Bonsoir,

Sélectionner la colonne (exemple A) | données | validation | personnalisé,
taper ce qui suit :
=ET(NBCAR(A1)=9;ESTNUM(GAUCHE(A1;1)*STXT(A1;3;4)*DROITE(A1;2));STXT(A1;2;1)="/";STXT(A1;7;1)="/")

@+
FxM



bonsoir à tous,
Je voudrais rendre obligatoire dans une colonne la saisie de données sous
la
forme suivante :

a/bbbb/cc

a, b et c sont obligatoirement des chiffres.
a est <> 0
le 2e et le 7e caractères sont obligatoirement des "/", ce qui impose que
l'on saisisse 4 chiffes au milieu...
Le nombre total de caractères ("/" compris) est obligatoirement = à 9, ce
qui impose que l'on ne saisisse que 2 chiffres à la fin.

Je pense que la solution la plus simple passe par par une règle de
validation mais je ne parviens pas à la mettre au point. Ou peut-être un
formatage de cellule personnalisée ?
Quelqu'un aurait-il LA solution à me proposer ?
Merci
Domi





Avatar
Domi
Merci,
Après quelques tests ça me semble répondre entièrement à ma demande ;o)))
Salut
Domi

"FxM" a écrit dans le message de
news:
Bonsoir,

Sélectionner la colonne (exemple A) | données | validation |
personnalisé, taper ce qui suit :

=ET(NBCAR(A1)=9;ESTNUM(GAUCHE(A1;1)*STXT(A1;3;4)*DROITE(A1;2));STXT(A1;2;1) "/";STXT(A1;7;1)="/")


@+
FxM



bonsoir à tous,
Je voudrais rendre obligatoire dans une colonne la saisie de données
sous la


forme suivante :

a/bbbb/cc

a, b et c sont obligatoirement des chiffres.
a est <> 0
le 2e et le 7e caractères sont obligatoirement des "/", ce qui impose
que


l'on saisisse 4 chiffes au milieu...
Le nombre total de caractères ("/" compris) est obligatoirement = à 9,
ce


qui impose que l'on ne saisisse que 2 chiffres à la fin.

Je pense que la solution la plus simple passe par par une règle de
validation mais je ne parviens pas à la mettre au point. Ou peut-être un
formatage de cellule personnalisée ?
Quelqu'un aurait-il LA solution à me proposer ?
Merci
Domi






Avatar
Domi
Avec cette petite adaptation ça semble bon
=ET(NBCAR(A1)=9;CNUM(GAUCHE(A1;1))<>0;ESTNUM(GAUCHE(A1;1)*STXT(A1;3;4)*DROIT
E(A1;2));STXT(A1;2;1)="/";STXT(A1;7;1)="/")

Non ?
Domi

"Pounet95" a écrit dans le message de
news:
Bonsoir,
La saisie ne peut pas commencer par un 0 ;o))))))

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

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

Bonsoir,

Sélectionner la colonne (exemple A) | données | validation |
personnalisé,


taper ce qui suit :

=ET(NBCAR(A1)=9;ESTNUM(GAUCHE(A1;1)*STXT(A1;3;4)*DROITE(A1;2));STXT(A1;2;1) "/";STXT(A1;7;1)="/")



@+
FxM



bonsoir à tous,
Je voudrais rendre obligatoire dans une colonne la saisie de données
sous



la
forme suivante :

a/bbbb/cc

a, b et c sont obligatoirement des chiffres.
a est <> 0
le 2e et le 7e caractères sont obligatoirement des "/", ce qui impose
que



l'on saisisse 4 chiffes au milieu...
Le nombre total de caractères ("/" compris) est obligatoirement = à 9,
ce



qui impose que l'on ne saisisse que 2 chiffres à la fin.

Je pense que la solution la plus simple passe par par une règle de
validation mais je ne parviens pas à la mettre au point. Ou peut-être
un



formatage de cellule personnalisée ?
Quelqu'un aurait-il LA solution à me proposer ?
Merci
Domi







Avatar
Pounet95
Re,

Effectivement, après le message 'Saisie non valide', il faut effacer la
cellule par exemple.
avec Target=""

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Domi" a écrit dans le message de news:
OHSs$
Bonsoir et merci pour ton aide.
Non ça ne convient pas vraiment
Je n'ai pas trop poussé les essais car ça coince rapidement.
Installation du code : no pb.
Je saisi n'importe quoi dans la colonne A avec des lettres : Message
d'erreur "Numerique uniquement" : jusque là ça va, mais ensuite je peux
saisir n'importe quoi...
La macro semble ne plus remplir son rôle de surveillance !
Je suis sous WK2/Office 2000

Domi

"Pounet95" a écrit dans le message de
news:%23Q5U6%
Bonsoir,
Peut-être ces quelques lignes dans le module de la Feuille concernée.
A adapter, ici colonne A contient les saisies

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Columns(1), Target) Is Nothing Then
If Not IsNumeric(Target) Then
MsgBox "Numérique seulement !"
Exit Sub
Else
If Target >= 1111111 And Target <= 9999999 Then
Target = Mid$(Target, 1, 1) & "/" & Mid$(Target, 2, 4) &
"/"

& Mid$(Target, 6, 2)
Else
MsgBox "Saisie non valide !"
End If
End If
End If
Application.EnableEvents = True
End Sub

Cela convient ?
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/


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

bonsoir à tous,
Je voudrais rendre obligatoire dans une colonne la saisie de données
sous


la
forme suivante :

a/bbbb/cc

a, b et c sont obligatoirement des chiffres.
a est <> 0
le 2e et le 7e caractères sont obligatoirement des "/", ce qui impose
que


l'on saisisse 4 chiffes au milieu...
Le nombre total de caractères ("/" compris) est obligatoirement = à 9,
ce


qui impose que l'on ne saisisse que 2 chiffres à la fin.

Je pense que la solution la plus simple passe par par une règle de
validation mais je ne parviens pas à la mettre au point. Ou peut-être
un
formatage de cellule personnalisée ?
Quelqu'un aurait-il LA solution à me proposer ?
Merci
Domi











Avatar
Daniel
Bonjour.
Entre dans la formule de validation :
=(ET(GAUCHE(A1;1)>"0";GAUCHE(A1;1)<="9"))*1+(STXT(A1;2;1)="/")*1+CNUM(STXT(A1;3;4))-CNUM(STXT(A1;3;4))+1+(STXT(A1;7;1)="/")*1+CNUM(STXT(A1;8;2))-CNUM(STXT(A1;8;2))+1=5
A tester en profondeur.
Daniel
"Domi" a écrit dans le message de news:

bonsoir à tous,
Je voudrais rendre obligatoire dans une colonne la saisie de données sous
la
forme suivante :

a/bbbb/cc

a, b et c sont obligatoirement des chiffres.
a est <> 0
le 2e et le 7e caractères sont obligatoirement des "/", ce qui impose que
l'on saisisse 4 chiffes au milieu...
Le nombre total de caractères ("/" compris) est obligatoirement = à 9, ce
qui impose que l'on ne saisisse que 2 chiffres à la fin.

Je pense que la solution la plus simple passe par par une règle de
validation mais je ne parviens pas à la mettre au point. Ou peut-être un
formatage de cellule personnalisée ?
Quelqu'un aurait-il LA solution à me proposer ?
Merci
Domi




Avatar
Daniel
Juste une petite modif, car 1/4567//56 est validé. Il vaudrait remplacer le
DROITE.... par CNUM(STXT(8;2)).
Détail...
Daniel
"Domi" a écrit dans le message de news:

Avec cette petite adaptation ça semble bon
=ET(NBCAR(A1)=9;CNUM(GAUCHE(A1;1))<>0;ESTNUM(GAUCHE(A1;1)*STXT(A1;3;4)*DROIT
E(A1;2));STXT(A1;2;1)="/";STXT(A1;7;1)="/")

Non ?
Domi

"Pounet95" a écrit dans le message de
news:
Bonsoir,
La saisie ne peut pas commencer par un 0 ;o))))))

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

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

Bonsoir,

Sélectionner la colonne (exemple A) | données | validation |
personnalisé,


taper ce qui suit :

=ET(NBCAR(A1)=9;ESTNUM(GAUCHE(A1;1)*STXT(A1;3;4)*DROITE(A1;2));STXT(A1;2;1) > "/";STXT(A1;7;1)="/")



@+
FxM



bonsoir à tous,
Je voudrais rendre obligatoire dans une colonne la saisie de données
sous



la
forme suivante :

a/bbbb/cc

a, b et c sont obligatoirement des chiffres.
a est <> 0
le 2e et le 7e caractères sont obligatoirement des "/", ce qui impose
que



l'on saisisse 4 chiffes au milieu...
Le nombre total de caractères ("/" compris) est obligatoirement = à 9,
ce



qui impose que l'on ne saisisse que 2 chiffres à la fin.

Je pense que la solution la plus simple passe par par une règle de
validation mais je ne parviens pas à la mettre au point. Ou peut-être
un



formatage de cellule personnalisée ?
Quelqu'un aurait-il LA solution à me proposer ?
Merci
Domi











1 2