Données/Validation - rubriques différentes

Le
j-pascal
Bonsoir,

J'ai un menu déroulant qui autorise des lettres : A - B - C - D (ie), mais
dans les cellules, je veux aussi pouvoir entrer un horaire sous la forme
"hh:ss".

Par définition, les horaires peuvent prendre toute valeur ! Donc
Est-il possible de combiner un format horaire + des lettres (ie) ?

Merci d'avance pour vos lumières,

JP
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe.R
Le #5150941
Bonjour,
Si dans la plage nommée contenant ta liste, tu laisses une cellule vierge,
tu pourras entrer d'autres données dans les cellules y faisant référence,
celles ci étant au format de ton choix.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"j-pascal" news:
Bonsoir,

J'ai un menu déroulant qui autorise des lettres : A - B - C - D (ie), mais
dans les cellules, je veux aussi pouvoir entrer un horaire sous la forme
"hh:ss".

Par définition, les horaires peuvent prendre toute valeur ! Donc ...
Est-il possible de combiner un format horaire + des lettres (ie) ?

Merci d'avance pour vos lumières,

JP


j-pascal
Le #5148621
Bonsoir Philippe,

Désolé, je ne comprends pas.

Actuellement, dans "Données Validation" / "Options" / "Source", j'ai :
A;B;C;D
Et dans "Données Validation" / "Alerte d'erreur" / "Style", j'ai sélectionné
:
"Information" et dans la fenêtre "message d'erreur, j'ai mis "Format de
saisie : hh:mm ?"
En conclusion, je rappelle à l'utilisateur qu'il doit vérifier le format de
sa saisie ... Ce n'est pas terrible !

Je ne vois pas comment appliquer ton conseil ;-( J'ai fait qq bidouille pour
ajouter des "" dans ma source, mais ça ne résoud pas le pb.

@+ ?

JP


"Philippe.R" %
Bonjour,
Si dans la plage nommée contenant ta liste, tu laisses une cellule vierge,
tu pourras entrer d'autres données dans les cellules y faisant référence,
celles ci étant au format de ton choix.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"j-pascal" news:
Bonsoir,

J'ai un menu déroulant qui autorise des lettres : A - B - C - D (ie),
mais dans les cellules, je veux aussi pouvoir entrer un horaire sous la
forme "hh:ss".

Par définition, les horaires peuvent prendre toute valeur ! Donc ...
Est-il possible de combiner un format horaire + des lettres (ie) ?

Merci d'avance pour vos lumières,

JP





Philippe.R
Le #5148551
Bonsoir Jean-Pascal,
Je prenais l'hypothèse d'une liste nommée, qui peut être dans une feuille ou
une autre ; voici comment procéder :
sélectionne, disons z1 à z5, nomme cette plage zaza (insertion / nom /
définir) en z1 tu saisi A, en z2 B, en z3 C et en z4 D, z5, qui fait partie
de la plage nommée restent vide
Tu sélectionnes la ou les cellules dans laquelle ou lesquelles tu veux
utiliser la liste de validation, tu lui appliques le format désiré
[hh]:mm:ss par exemple puis, dans "Données" / "Validation" / "Options" /
"Autoriser", tu choisis "liste" et dans "Source", tu saisis =zaza
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"j-pascal" news:
Bonsoir Philippe,

Désolé, je ne comprends pas.

Actuellement, dans "Données Validation" / "Options" / "Source", j'ai :
A;B;C;D
Et dans "Données Validation" / "Alerte d'erreur" / "Style", j'ai
sélectionné :
"Information" et dans la fenêtre "message d'erreur, j'ai mis "Format de
saisie : hh:mm ?"
En conclusion, je rappelle à l'utilisateur qu'il doit vérifier le format
de sa saisie ... Ce n'est pas terrible !

Je ne vois pas comment appliquer ton conseil ;-( J'ai fait qq bidouille
pour ajouter des "" dans ma source, mais ça ne résoud pas le pb.

@+ ?

JP


"Philippe.R" %
Bonjour,
Si dans la plage nommée contenant ta liste, tu laisses une cellule
vierge, tu pourras entrer d'autres données dans les cellules y faisant
référence, celles ci étant au format de ton choix.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"j-pascal" news:
Bonsoir,

J'ai un menu déroulant qui autorise des lettres : A - B - C - D (ie),
mais dans les cellules, je veux aussi pouvoir entrer un horaire sous la
forme "hh:ss".

Par définition, les horaires peuvent prendre toute valeur ! Donc ...
Est-il possible de combiner un format horaire + des lettres (ie) ?

Merci d'avance pour vos lumières,

JP








j-pascal
Le #5148331
Bonsoir Philippe,

J'ai l'impression (!) d'avoir fait ce que tu dis et ça ne fonctionne pas :
http://cjoint.com/?cdwh1b33vL

;-(

JP


"Philippe.R"
Bonsoir Jean-Pascal,
Je prenais l'hypothèse d'une liste nommée, qui peut être dans une feuille
ou une autre ; voici comment procéder :
sélectionne, disons z1 à z5, nomme cette plage zaza (insertion / nom /
définir) en z1 tu saisi A, en z2 B, en z3 C et en z4 D, z5, qui fait
partie de la plage nommée restent vide
Tu sélectionnes la ou les cellules dans laquelle ou lesquelles tu veux
utiliser la liste de validation, tu lui appliques le format désiré
[hh]:mm:ss par exemple puis, dans "Données" / "Validation" / "Options" /
"Autoriser", tu choisis "liste" et dans "Source", tu saisis =zaza
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"j-pascal" news:
Bonsoir Philippe,

Désolé, je ne comprends pas.

Actuellement, dans "Données Validation" / "Options" / "Source", j'ai :
A;B;C;D
Et dans "Données Validation" / "Alerte d'erreur" / "Style", j'ai
sélectionné :
"Information" et dans la fenêtre "message d'erreur, j'ai mis "Format de
saisie : hh:mm ?"
En conclusion, je rappelle à l'utilisateur qu'il doit vérifier le format
de sa saisie ... Ce n'est pas terrible !

Je ne vois pas comment appliquer ton conseil ;-( J'ai fait qq bidouille
pour ajouter des "" dans ma source, mais ça ne résoud pas le pb.

@+ ?

JP


"Philippe.R" news: %
Bonjour,
Si dans la plage nommée contenant ta liste, tu laisses une cellule
vierge, tu pourras entrer d'autres données dans les cellules y faisant
référence, celles ci étant au format de ton choix.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"j-pascal" news:
Bonsoir,

J'ai un menu déroulant qui autorise des lettres : A - B - C - D (ie),
mais dans les cellules, je veux aussi pouvoir entrer un horaire sous la
forme "hh:ss".

Par définition, les horaires peuvent prendre toute valeur ! Donc ...
Est-il possible de combiner un format horaire + des lettres (ie) ?

Merci d'avance pour vos lumières,

JP











Brunos
Le #5148321
Bonsoir Jean-Pascal,
Je prenais l'hypothèse d'une liste nommée, qui peut être dans une feuille ou
une autre ; voici comment procéder :
sélectionne, disons z1 à z5, nomme cette plage zaza (insertion / nom /
définir) en z1 tu saisi A, en z2 B, en z3 C et en z4 D, z5, qui fait partie
de la plage nommée restent vide
Tu sélectionnes la ou les cellules dans laquelle ou lesquelles tu veux
utiliser la liste de validation, tu lui appliques le format désiré [hh]:mm:ss
par exemple puis, dans "Données" / "Validation" / "Options" / "Autoriser", tu
choisis "liste" et dans "Source", tu saisis =zaza

J'ai un menu déroulant qui autorise des lettres : A - B - C - D (ie),
mais dans les cellules, je veux aussi pouvoir entrer un horaire sous la
forme "hh:ss".





Bonsoir,
La méthode de Philippe.R fonctionne en contournant le problème. Mais
mettre une cellule vide dans la liste de validation revient à accepter
n'importe quelle valeur.
Le problème en fait est dans la question : est-il judicieux de demander
à l'utilisateur de saisir soit du texte, soit une heure, dans la même
cellule ?
On pourrait imaginer une macro qui valide ça, mais ça resterait tordu.
Je dirais qu'il vaut mieux réorganiser ta feuille.

--
Brunos




j-pascal
Le #5148251
Bonsoir,

Avais-je donc bien compris la démo de Philippe ? Si oui, alors effectivement
ça ne répond pas vraiment à ma demande.
Le pb c'est que l'utilisateur doit saisir des "rubriques" (que j'ai nommées
A - B - etc pour simplifier) mais aussi des durées et que si ces dernières
ne sont pas au format "hh:mm" la colonne ne les comptabilisera pas (car les
gens ont une fâcheuse manie de souvent saisir 4h25 pour 4:25 ...).
Dans mon exemple initial, la Liste limite les saisies (via le menu
déroulant) et je n'ai trouvé que le moyen de demander à l'utilisateur s'il a
bien saisi autre chose (càd une durée !) au format voulu... Mais il est vrai
qu'il pourrait saisir d'autres rubriques car la sélection n'est pas
bloquante, mais bon je cherche à limiter la "casse" ...

Merci pour ta présente remarque.

JP


"Brunos"
Bonsoir Jean-Pascal,
Je prenais l'hypothèse d'une liste nommée, qui peut être dans une feuille
ou une autre ; voici comment procéder :
sélectionne, disons z1 à z5, nomme cette plage zaza (insertion / nom /
définir) en z1 tu saisi A, en z2 B, en z3 C et en z4 D, z5, qui fait
partie de la plage nommée restent vide
Tu sélectionnes la ou les cellules dans laquelle ou lesquelles tu veux
utiliser la liste de validation, tu lui appliques le format désiré
[hh]:mm:ss par exemple puis, dans "Données" / "Validation" / "Options" /
"Autoriser", tu choisis "liste" et dans "Source", tu saisis =zaza

J'ai un menu déroulant qui autorise des lettres : A - B - C - D (ie),
mais dans les cellules, je veux aussi pouvoir entrer un horaire sous
la forme "hh:ss".





Bonsoir,
La méthode de Philippe.R fonctionne en contournant le problème. Mais
mettre une cellule vide dans la liste de validation revient à accepter
n'importe quelle valeur.
Le problème en fait est dans la question : est-il judicieux de demander à
l'utilisateur de saisir soit du texte, soit une heure, dans la même
cellule ?
On pourrait imaginer une macro qui valide ça, mais ça resterait tordu.
Je dirais qu'il vaut mieux réorganiser ta feuille.

--
Brunos








Philippe.R
Le #5283791
Bonsoir,
La méthode que j'ai proposé est effectivement un contournement de la
difficulté posée par la cohabitation de différents types de données dans une
même plage.
Elle autorise de facto la saisie de toute valeur hors liste de validation et
repose donc sur la discipline de l'utilisateur tout en lui apportant un
soutien sur une partie de la saisie à travers la liste.
Ce n'est bien sur pas une solution absolue ; en tout état de cause, je ne
crois pas à la pertinence des solutions trop contraignantes pour
l'utilisateur.
Avec macro, on pourrait probablement s'en sortir avec un truc du genre :
nommer la plage de saisie "znsaisie" et ajouter dans zaza "Horaire" au lieu
de la cellule vide ; enfin, dans le module de feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("znsaisie")) Is Nothing Then
If Target.Value = "Horaire" Then
Target.Value = InputBox("Saisissez ci dessous un" _
& " horaire au format ''hh:mm''", "Saisie d'heure")
End If
End If
End Sub

mais ça reste du bidouillage et il vaut sans doute mieux, comme tu le
suggères, organiser autrement les données.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Brunos" news:
Bonsoir Jean-Pascal,
Je prenais l'hypothèse d'une liste nommée, qui peut être dans une feuille
ou une autre ; voici comment procéder :
sélectionne, disons z1 à z5, nomme cette plage zaza (insertion / nom /
définir) en z1 tu saisi A, en z2 B, en z3 C et en z4 D, z5, qui fait
partie de la plage nommée restent vide
Tu sélectionnes la ou les cellules dans laquelle ou lesquelles tu veux
utiliser la liste de validation, tu lui appliques le format désiré
[hh]:mm:ss par exemple puis, dans "Données" / "Validation" / "Options" /
"Autoriser", tu choisis "liste" et dans "Source", tu saisis =zaza

J'ai un menu déroulant qui autorise des lettres : A - B - C - D (ie),
mais dans les cellules, je veux aussi pouvoir entrer un horaire sous
la forme "hh:ss".





Bonsoir,
La méthode de Philippe.R fonctionne en contournant le problème. Mais
mettre une cellule vide dans la liste de validation revient à accepter
n'importe quelle valeur.
Le problème en fait est dans la question : est-il judicieux de demander à
l'utilisateur de saisir soit du texte, soit une heure, dans la même
cellule ?
On pourrait imaginer une macro qui valide ça, mais ça resterait tordu.
Je dirais qu'il vaut mieux réorganiser ta feuille.

--
Brunos








j-pascal
Le #5283531
Bonjour Philippe,

Merci pour cette solution. Néanmoins, Outre la sélection des Données via le
menu déroulant, dès que l'utilisateur saisi un autre type de données (a
priori une durée !), il est invité (par une msgbox) à vérifier qu'il l'a
bien saisie sous la forme "hh:ss". Je voulais éviter ce message ; dans ta
solution, il y a une InputBox ... ce qui revient "au même".

@+

JP

PS : je vais réfléchir à une mise en forme avec un NB.SI et compter les
valeurs qui ne seraient pas les "bonnes" ...

"Philippe.R" %
Bonsoir,
La méthode que j'ai proposé est effectivement un contournement de la
difficulté posée par la cohabitation de différents types de données dans
une même plage.
Elle autorise de facto la saisie de toute valeur hors liste de validation
et repose donc sur la discipline de l'utilisateur tout en lui apportant un
soutien sur une partie de la saisie à travers la liste.
Ce n'est bien sur pas une solution absolue ; en tout état de cause, je ne
crois pas à la pertinence des solutions trop contraignantes pour
l'utilisateur.
Avec macro, on pourrait probablement s'en sortir avec un truc du genre :
nommer la plage de saisie "znsaisie" et ajouter dans zaza "Horaire" au
lieu de la cellule vide ; enfin, dans le module de feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("znsaisie")) Is Nothing Then
If Target.Value = "Horaire" Then
Target.Value = InputBox("Saisissez ci dessous un" _
& " horaire au format ''hh:mm''", "Saisie d'heure")
End If
End If
End Sub

mais ça reste du bidouillage et il vaut sans doute mieux, comme tu le
suggères, organiser autrement les données.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Brunos" news:
Bonsoir Jean-Pascal,
Je prenais l'hypothèse d'une liste nommée, qui peut être dans une
feuille ou une autre ; voici comment procéder :
sélectionne, disons z1 à z5, nomme cette plage zaza (insertion / nom /
définir) en z1 tu saisi A, en z2 B, en z3 C et en z4 D, z5, qui fait
partie de la plage nommée restent vide
Tu sélectionnes la ou les cellules dans laquelle ou lesquelles tu veux
utiliser la liste de validation, tu lui appliques le format désiré
[hh]:mm:ss par exemple puis, dans "Données" / "Validation" / "Options" /
"Autoriser", tu choisis "liste" et dans "Source", tu saisis =zaza

J'ai un menu déroulant qui autorise des lettres : A - B - C - D (ie),
mais dans les cellules, je veux aussi pouvoir entrer un horaire sous
la forme "hh:ss".





Bonsoir,
La méthode de Philippe.R fonctionne en contournant le problème. Mais
mettre une cellule vide dans la liste de validation revient à accepter
n'importe quelle valeur.
Le problème en fait est dans la question : est-il judicieux de demander à
l'utilisateur de saisir soit du texte, soit une heure, dans la même
cellule ?
On pourrait imaginer une macro qui valide ça, mais ça resterait tordu.
Je dirais qu'il vaut mieux réorganiser ta feuille.

--
Brunos











Brunos
Le #5283461
Merci pour cette solution. Néanmoins, Outre la sélection des Données
via le menu déroulant, dès que l'utilisateur saisi un autre type de
données (a priori une durée !), il est invité (par une msgbox) à
vérifier qu'il l'a bien saisie sous la forme "hh:ss". Je voulais
éviter ce message ; dans ta solution, il y a une InputBox ... ce qui
revient "au même".



Bonjour,
Je reviens sur ton fil car il m'est venu une idée:
Pour faire coexister deux types de validation différents dans la même
cellule, il suffit de saisir une valeur "spéciale" qui déclenche un
changement de type de validation.
Dans l'exemple qui suit, quand l'utilisateur est en mode "validation
texte", s'il valide le mot "heure" il change de mode. Et quand il est en
mode "validation heure", il revient au mode texte quand il saisit zéro.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A2]) Is Nothing Then
If [A2] = "Heure" Then ValidHeure
If [A2] = 0 Then ValidTexte
End If
End Sub
Sub ValidHeure()
With [A2].Validation
.Delete
.Add Type:=xlValidateTime, _
AlertStyle:=xlValidAlertWarning, _
Operator:=xlBetween, _
Formula1:="00:00", Formula2:="23:59"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = "Saisie heure au format HH:SS," _
& "saisir 0 pour revenir à la saisie texte"
.ErrorMessage = "Saisir au format HH:SS"
.ShowInput = True
.ShowError = True
End With
End Sub
Sub ValidTexte()
With [A2].Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertWarning, _
Operator:=xlBetween, _
Formula1:="Toto,Tata,Titi,Tutu,Heure"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = "Choix du texte dans la liste," _
& "choisir Heure pour saisir une heure"
.ErrorMessage = "Texte saisi pas dans la liste"
.ShowInput = True
.ShowError = True
End With
End Sub

--
Brunos

j-pascal
Le #5153281
Bonsoir,

Merci pour ta proposition (c'est néanmoins un peu trop compliqué pour
moi...).

En fait, j'ai trouvé un semblant de solution :

- Mes données "A", "B", "C" sont dans une Liste de Validation de Données.
- Dans le menu "Validation ... / Style", je coche "Informations" pour
autoriser la saisie d'autres valeurs (Mes fameux horaires !)
- Dans une colonne de synthèse, je récupère respectivement la somme des
"A", "B", "C" avec des fonctions NB.SI
- Je "Somme" ma plage de saisies (où se trouvent mes "A", "B", etc.) et je
compare les "NBVAL" (toutes les valeurs saisies), les "NB" (mes "horaires")
et j'identifie très simplement ce qui ne ressemble pas à des "A", "B", "C"
ou à des "horaires ...
- Je récupère l'erreur (la différence) dans une cellule [a1], que je traite
comme suit :
'---
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lieu
lieu = Target.Address

If [a1].Value > 0 Then
MsgBox "Format autorisé h:ss" & Chr(10) & Chr(10) _
& "(Ex. 2 heures 15 = 2:15)" & Chr(10) & Chr(10) _
& "La valeur saisie va être effacée !", vbOKOnly +
vbInformation, "Erreur de saisie !"
Range(lieu).ClearContents
End If
'---

Ce n'est pas parfait, mais c'est simple et ça semble fonctionner !

Merci encore pour ta contribution.

JP

PS : je parlais de "semblant" de solution car il faut que je réfléchisse
encore à un truc qui fasse remonter la sélection sur la cellule contenant la
valeur effacée. Je pense qu'un "Range(lieu).select" (ou activate) devrait
faire l'affaire...



"Brunos" %23X$
Merci pour cette solution. Néanmoins, Outre la sélection des Données via
le menu déroulant, dès que l'utilisateur saisi un autre type de données
(a priori une durée !), il est invité (par une msgbox) à vérifier qu'il
l'a bien saisie sous la forme "hh:ss". Je voulais éviter ce message ;
dans ta solution, il y a une InputBox ... ce qui revient "au même".



Bonjour,
Je reviens sur ton fil car il m'est venu une idée:
Pour faire coexister deux types de validation différents dans la même
cellule, il suffit de saisir une valeur "spéciale" qui déclenche un
changement de type de validation.
Dans l'exemple qui suit, quand l'utilisateur est en mode "validation
texte", s'il valide le mot "heure" il change de mode. Et quand il est en
mode "validation heure", il revient au mode texte quand il saisit zéro.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A2]) Is Nothing Then
If [A2] = "Heure" Then ValidHeure
If [A2] = 0 Then ValidTexte
End If
End Sub
Sub ValidHeure()
With [A2].Validation
.Delete
.Add Type:=xlValidateTime, _
AlertStyle:=xlValidAlertWarning, _
Operator:=xlBetween, _
Formula1:="00:00", Formula2:="23:59"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = "Saisie heure au format HH:SS," _
& "saisir 0 pour revenir à la saisie texte"
.ErrorMessage = "Saisir au format HH:SS"
.ShowInput = True
.ShowError = True
End With
End Sub
Sub ValidTexte()
With [A2].Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertWarning, _
Operator:=xlBetween, _
Formula1:="Toto,Tata,Titi,Tutu,Heure"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = "Choix du texte dans la liste," _
& "choisir Heure pour saisir une heure"
.ErrorMessage = "Texte saisi pas dans la liste"
.ShowInput = True
.ShowError = True
End With
End Sub

--
Brunos



Publicité
Poster une réponse
Anonyme