Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
Bonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
Bonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de news:
7B2AA91B-29D9-405A-9667-A9F175AEDCFF@microsoft.com...
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
Bonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
Je démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as inscrit,
en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
Je démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as inscrit,
en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pas
Bonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de news:
7B2AA91B-29D9-405A-9667-A9F175AEDCFF@microsoft.com...
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
Je démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as inscrit,
en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as inscrit,
en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End If
Je démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as inscrit,
en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pas
Bonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de news:
7B2AA91B-29D9-405A-9667-A9F175AEDCFF@microsoft.com...
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as inscrit,
en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit,
en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de
news:
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures)
dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure
comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00
dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel,
ça
marche très bien sauf que je souhaite établir un planning par
semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du
tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.
*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End If
Je démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit,
en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pas
Bonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de
news:
7B2AA91B-29D9-405A-9667-A9F175AEDCFF@microsoft.com...
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures)
dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure
comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00
dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel,
ça
marche très bien sauf que je souhaite établir un planning par
semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du
tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit,
en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de
news:
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures)
dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure
comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00
dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel,
ça
marche très bien sauf que je souhaite établir un planning par
semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du
tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Re...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" a écrit dans le message de
news:Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit,en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de
news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures)
dans lescases d'un planning. Par exemple, interdire la saisie d'une heure
compriseentre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00
dansd'autres.
Evidemment, par la validation des données de la barre d'outil excel,
çamarche très bien sauf que je souhaite établir un planning par
semaine sur1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du
tableau dela
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Re...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de
news:EE8585FB-0919-46A6-8474-3793D1B26217@microsoft.com...
Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.
*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End If
Je démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit,
en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pas
Bonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de
news:
7B2AA91B-29D9-405A-9667-A9F175AEDCFF@microsoft.com...
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures)
dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure
comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00
dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel,
ça
marche très bien sauf que je souhaite établir un planning par
semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du
tableau de
la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Re...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" a écrit dans le message de
news:Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit,en remplacant bien sûr les coordonnées des cellules par celles de mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de
news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures)
dans lescases d'un planning. Par exemple, interdire la saisie d'une heure
compriseentre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00
dansd'autres.
Evidemment, par la validation des données de la barre d'outil excel,
çamarche très bien sauf que je souhaite établir un planning par
semaine sur1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du
tableau dela
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Fantastique !!! Ca marche. je vous remercie encore.
Je ne voudrais pas abuser mais est il possible
- Que ces message soit bloquant pour obliger l'utilisateur à corriger sa
saisie
- Qu'il ne s'applique qu'aux saisies d'heures (ou de variables de ce type).
En effet, sur les mêmes colonnes (dans d'autres cases), l'utilisateur peut
être amené à saisir par un bouton macro des mots comme "congés" ou "Maladie".
Apres le message de mauvaise saisie, tu met :
Re...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" a écrit dans le message de
news:Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit, en remplacant bien sûr les coordonnées des cellules par celles
de mon tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans
les cases d'un planning. Par exemple, interdire la saisie d'une heure
comprise entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et
24:00 dans d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine
sur 1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau
de la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Fantastique !!! Ca marche. je vous remercie encore.
Je ne voudrais pas abuser mais est il possible
- Que ces message soit bloquant pour obliger l'utilisateur à corriger sa
saisie
- Qu'il ne s'applique qu'aux saisies d'heures (ou de variables de ce type).
En effet, sur les mêmes colonnes (dans d'autres cases), l'utilisateur peut
être amené à saisir par un bouton macro des mots comme "congés" ou "Maladie".
Apres le message de mauvaise saisie, tu met :
Re...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de
news:EE8585FB-0919-46A6-8474-3793D1B26217@microsoft.com...
Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.
*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End If
Je démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit, en remplacant bien sûr les coordonnées des cellules par celles
de mon tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pas
Bonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de news:
7B2AA91B-29D9-405A-9667-A9F175AEDCFF@microsoft.com...
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans
les cases d'un planning. Par exemple, interdire la saisie d'une heure
comprise entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et
24:00 dans d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine
sur 1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau
de la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Fantastique !!! Ca marche. je vous remercie encore.
Je ne voudrais pas abuser mais est il possible
- Que ces message soit bloquant pour obliger l'utilisateur à corriger sa
saisie
- Qu'il ne s'applique qu'aux saisies d'heures (ou de variables de ce type).
En effet, sur les mêmes colonnes (dans d'autres cases), l'utilisateur peut
être amené à saisir par un bouton macro des mots comme "congés" ou "Maladie".
Apres le message de mauvaise saisie, tu met :
Re...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" a écrit dans le message de
news:Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit, en remplacant bien sûr les coordonnées des cellules par celles
de mon tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans
les cases d'un planning. Par exemple, interdire la saisie d'une heure
comprise entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et
24:00 dans d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine
sur 1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau
de la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Fantastique !!! Ca marche. je vous remercie encore.
Je ne voudrais pas abuser mais est il possible
- Que ces message soit bloquant pour obliger l'utilisateur à corriger sa
saisie
- Qu'il ne s'applique qu'aux saisies d'heures (ou de variables de ce
type).
En effet, sur les mêmes colonnes (dans d'autres cases), l'utilisateur peut
être amené à saisir par un bouton macro des mots comme "congés" ou
"Maladie".
Re...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le
code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" a écrit dans le message de
news:Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets
tout
doucement à VBA et c'est loin d'être facile au début.*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu
m'as
inscrit,en remplacant bien sûr les coordonnées des cellules par celles de
mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non
?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2
incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de
news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données
(heures)
dans lescases d'un planning. Par exemple, interdire la saisie d'une
heure
compriseentre 00:00 et 12:00 dans certaines cases ou entre 12:01 et
24:00
dansd'autres.
Evidemment, par la validation des données de la barre d'outil
excel,
çamarche très bien sauf que je souhaite établir un planning par
semaine sur1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du
tableau dela
première semaine sur une feuille) et le nombre de validations
étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en
formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Fantastique !!! Ca marche. je vous remercie encore.
Je ne voudrais pas abuser mais est il possible
- Que ces message soit bloquant pour obliger l'utilisateur à corriger sa
saisie
- Qu'il ne s'applique qu'aux saisies d'heures (ou de variables de ce
type).
En effet, sur les mêmes colonnes (dans d'autres cases), l'utilisateur peut
être amené à saisir par un bouton macro des mots comme "congés" ou
"Maladie".
Re...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le
code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de
news:EE8585FB-0919-46A6-8474-3793D1B26217@microsoft.com...
Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets
tout
doucement à VBA et c'est loin d'être facile au début.
*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End If
Je démarre avec VBA. J'ai donc copier mot a mot le texte que tu
m'as
inscrit,
en remplacant bien sûr les coordonnées des cellules par celles de
mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non
?
Je ne comprends pas pourquoi cela ne marche pas
Bonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2
incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de
news:
7B2AA91B-29D9-405A-9667-A9F175AEDCFF@microsoft.com...
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données
(heures)
dans les
cases d'un planning. Par exemple, interdire la saisie d'une
heure
comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et
24:00
dans
d'autres.
Evidemment, par la validation des données de la barre d'outil
excel,
ça
marche très bien sauf que je souhaite établir un planning par
semaine sur
1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du
tableau de
la
première semaine sur une feuille) et le nombre de validations
étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en
formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Fantastique !!! Ca marche. je vous remercie encore.
Je ne voudrais pas abuser mais est il possible
- Que ces message soit bloquant pour obliger l'utilisateur à corriger sa
saisie
- Qu'il ne s'applique qu'aux saisies d'heures (ou de variables de ce
type).
En effet, sur les mêmes colonnes (dans d'autres cases), l'utilisateur peut
être amené à saisir par un bouton macro des mots comme "congés" ou
"Maladie".
Re...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le
code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" a écrit dans le message de
news:Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets
tout
doucement à VBA et c'est loin d'être facile au début.*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu
m'as
inscrit,en remplacant bien sûr les coordonnées des cellules par celles de
mon
tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non
?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2
incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de
news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données
(heures)
dans lescases d'un planning. Par exemple, interdire la saisie d'une
heure
compriseentre 00:00 et 12:00 dans certaines cases ou entre 12:01 et
24:00
dansd'autres.
Evidemment, par la validation des données de la barre d'outil
excel,
çamarche très bien sauf que je souhaite établir un planning par
semaine sur1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du
tableau dela
première semaine sur une feuille) et le nombre de validations
étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en
formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
Luc avait soumis l'idée :Fantastique !!! Ca marche. je vous remercie encore.
Je ne voudrais pas abuser mais est il possible
- Que ces message soit bloquant pour obliger l'utilisateur à corriger sa
saisie
- Qu'il ne s'applique qu'aux saisies d'heures (ou de variables de ce type).
En effet, sur les mêmes colonnes (dans d'autres cases), l'utilisateur peut
être amené à saisir par un bouton macro des mots comme "congés" ou "Maladie".
Apres le message de mauvaise saisie, tu met :
Target.selectRe...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" a écrit dans le message de
news:Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit, en remplacant bien sûr les coordonnées des cellules par celles
de mon tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans
les cases d'un planning. Par exemple, interdire la saisie d'une heure
comprise entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et
24:00 dans d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine
sur 1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau
de la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
--
JLuc
Luc avait soumis l'idée :
Fantastique !!! Ca marche. je vous remercie encore.
Je ne voudrais pas abuser mais est il possible
- Que ces message soit bloquant pour obliger l'utilisateur à corriger sa
saisie
- Qu'il ne s'applique qu'aux saisies d'heures (ou de variables de ce type).
En effet, sur les mêmes colonnes (dans d'autres cases), l'utilisateur peut
être amené à saisir par un bouton macro des mots comme "congés" ou "Maladie".
Apres le message de mauvaise saisie, tu met :
Target.select
Re...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de
news:EE8585FB-0919-46A6-8474-3793D1B26217@microsoft.com...
Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.
*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End If
Je démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit, en remplacant bien sûr les coordonnées des cellules par celles
de mon tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pas
Bonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" <Luc@discussions.microsoft.com> a écrit dans le message de news:
7B2AA91B-29D9-405A-9667-A9F175AEDCFF@microsoft.com...
Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans
les cases d'un planning. Par exemple, interdire la saisie d'une heure
comprise entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et
24:00 dans d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine
sur 1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau
de la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
--
JLuc
Luc avait soumis l'idée :Fantastique !!! Ca marche. je vous remercie encore.
Je ne voudrais pas abuser mais est il possible
- Que ces message soit bloquant pour obliger l'utilisateur à corriger sa
saisie
- Qu'il ne s'applique qu'aux saisies d'heures (ou de variables de ce type).
En effet, sur les mêmes colonnes (dans d'autres cases), l'utilisateur peut
être amené à saisir par un bouton macro des mots comme "congés" ou "Maladie".
Apres le message de mauvaise saisie, tu met :
Target.selectRe...
Le code doit être placé dans le module de la feuille:
Clique droit sur l'onglet de la feuille puis choisir "visualiser le code" et
coller le code.
Voir ici:
http://cjoint.com/?iFiEKoQlgs
JJ
"Luc" a écrit dans le message de
news:Voilà exactement ce que j'ai mis dans VBA à la suite de mes macros
existantes :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [d46:d48]) Is Nothing Then
If Not (x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1 "
incorrecte ""
End If
If Not Application.Intersect(Target, [e46:e48]) Is Nothing Then
If Not (x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2 "
incorrecte ""
End If
End Sub
Toujours pas de messages. Je suis désolé d'insister mas je me mets tout
doucement à VBA et c'est loin d'être facile au début.*Bonjour Luc*,
C'est normal, les tests sont fait a l'envers lol.
Tu devrais avoir le message si tu saisis une bonne valeur
Essaie :
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If Not(x > "00:00" And x <= "12:00") Then MsgBox "Saisie 1
incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If Not(x > "12:00" And x <= "23:59") Then MsgBox "Saisie 2
incorrecte"
End IfJe démarre avec VBA. J'ai donc copier mot a mot le texte que tu m'as
inscrit, en remplacant bien sûr les coordonnées des cellules par celles
de mon tableau, mais je n'obtiens aucun message d'erreur.
Pourtant, ton texte peut être retranscrit tel quel apparemment non ?
Je ne comprends pas pourquoi cela ne marche pasBonjour,
Ceci peut-être:
Dans le module de la feuille en question.
Plage a5:g5 à adapter selon les plages de saisie
'----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
x = Format(Target, "hh:mm")
If Not Application.Intersect(Target, [a5:d5]) Is Nothing Then
If x > "00:00" And x <= "12:00" Then MsgBox "Saisie 1 incorrecte"
End If
If Not Application.Intersect(Target, [e5:g5]) Is Nothing Then
If x > "12:00" And x <= "23:59" Then MsgBox "Saisie 2 incorrecte"
End If
End Sub
'------------
Salutations
JJ
"Luc" a écrit dans le message de news:Bonjour à tous,
Je souhaiterais controler la saisie de certaines données (heures) dans
les cases d'un planning. Par exemple, interdire la saisie d'une heure
comprise entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et
24:00 dans d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine
sur 1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau
de la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".
Est-possible en VBA ? De quelle manière ?
Je vous remercie d'avance pour votre aide
--
____
( O | O )
--
_oooO_ JLuc _Oooo_
O-O
--
JLuc
Effectivement, ça remet le curseur dans la case de saisie, mais on peut
contourner l'erreur en placant le curseur dans une autre case. N'y a t-il pas
un moyen de bloquer carrément toute saisie tant que celle-ci n'est pas la
bonne ? Mais laisser la possibilité d'inscrire un texte à la place des heures
?
A part verifier les valeurs dans la plage avant la premiere ligne a
Effectivement, ça remet le curseur dans la case de saisie, mais on peut
contourner l'erreur en placant le curseur dans une autre case. N'y a t-il pas
un moyen de bloquer carrément toute saisie tant que celle-ci n'est pas la
bonne ? Mais laisser la possibilité d'inscrire un texte à la place des heures
?
A part verifier les valeurs dans la plage avant la premiere ligne a
Effectivement, ça remet le curseur dans la case de saisie, mais on peut
contourner l'erreur en placant le curseur dans une autre case. N'y a t-il pas
un moyen de bloquer carrément toute saisie tant que celle-ci n'est pas la
bonne ? Mais laisser la possibilité d'inscrire un texte à la place des heures
?
A part verifier les valeurs dans la plage avant la premiere ligne a