OVH Cloud OVH Cloud

macro : modifier une liste de validation

6 réponses
Avatar
Donnazac
Bonsoir
Win XP - XL2003 -
J'ai crée un fichier d'inscription pour laquelle je travaille bénévolement
J'ai fait une liste de validation contenant tous les cours. Je cherche une
solution pour avertir la personne qd le cours est complet , j'ai reussi à
faire emettre des messages "cours XXX est complet" mais cela est un peu
embetant car à chaque fois que l'on clique ds cette colonne le message
reapparait. Et au fur et mesure que les cours sont complet, on une
ribambelle de message qui s'affiche dès un clic dans la colonne "Cours". Au
lieu de message ne pourait-on pas faire une action sur la liste de
validation --> style : cours complet en rouge ou inactif car c'est au moment
du choix que ca serait interessant de savoir les cours complet . J'ai
essayé d'enregistré une macro mais cela ne donne rien.

Merci pour votre aide
Amicalement
Anne-Marie

6 réponses

Avatar
Starwing
Une autre solution qui pourrait être envisager...

le cours est complet s'il y a 100 inscriptions,
Format - cellule - Personnalisée
[>100] "Ce cours est complet"; 0

Starwing
Avatar
Donnazac
merci beaucoup c'est tellement simple, désolée j'aurais du y penser mais
pourquoi faire simple .....
amitiés
Anne-Marie

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

Une autre solution qui pourrait être envisager...

le cours est complet s'il y a 100 inscriptions,
Format - cellule - Personnalisée
[>100] "Ce cours est complet"; 0

Starwing




Avatar
Pita
Bonjour,
Je ne sais comment est structuré votre système (table des cours offerts,
liste des inscrits, statistiques d'inscription par cours...), je serais tenté
de vous proposer de constituer une table des cours offerts comportant les
informations suivantes:
- le code/sigle de cours suivi de
- sa désignation en clair (titre/libellé) ainsi que
-du nombre de places disponibles
Ces premiers éléments étant recueillis dans la phase préalable à
l'inscription ppt dite et étant complétés
- du nombre d'inscriptions enregistrées.
Cette dernière information étant mise à jour (incrémentée) au fur et à
mesure de l'enregistrement des inscriptions.

Dans ces conditions, ce que vous voulez obtenir (mettre en rouge les titres
de cours pour lesquels les inscriptions sont closes) peut être obtenu
facilement en utilsant d'une part, une mise en forme conditionnelle pour
mettre en rouge, par exemple, le nombre d'inscriptions enregistrées si ce
nombre est égal ou dépasse le nombre de places disponibles (colonne
précédente) et d'autre part d'une macro très simple telle que:

Sub coloreTitre()
ActiveCell.Offset(0, -2).Font.ColorIndex = ActiveCell.Font.ColorIndex
End Sub

Cette macro qui ne fait que reproduire la couleur de la cellule contenant le
nombre d'inscriptions dans la cellule contenant le titre du cours (2 colonnes
précédente)
couleur elle-même modifiée le cas échéant par la mise en forme
conditionnelle, est déclenchée par une autre macro telle que:

Private Sub Worksheet_Change(ByVal Target As Range)
coloreTitre
End Sub

Bonne chance,
JPP

"Donnazac" wrote:

Bonsoir
Win XP - XL2003 -
J'ai crée un fichier d'inscription pour laquelle je travaille bénévolement
J'ai fait une liste de validation contenant tous les cours. Je cherche une
solution pour avertir la personne qd le cours est complet , j'ai reussi à
faire emettre des messages "cours XXX est complet" mais cela est un peu
embetant car à chaque fois que l'on clique ds cette colonne le message
reapparait. Et au fur et mesure que les cours sont complet, on une
ribambelle de message qui s'affiche dès un clic dans la colonne "Cours". Au
lieu de message ne pourait-on pas faire une action sur la liste de
validation --> style : cours complet en rouge ou inactif car c'est au moment
du choix que ca serait interessant de savoir les cours complet . J'ai
essayé d'enregistré une macro mais cela ne donne rien.

Merci pour votre aide
Amicalement
Anne-Marie





Avatar
Donnazac
merci pour votre réponse
non moi j'avais crée une liste (nommée) de 12 cours que j'ai utilisée avec
la validation (Données) pour avoir une liste de choix donc tous les cours
sont sur une seule colonne. Puis ds une autre feuille j'ai utilisée Index et
Equiv pour créer la liste par cours. Cela marche très bien J'avais recherché
avec NB.SI(nomCours) puis j'avais fait une macro qui allait lire ce resultat
et en fonction envoyer un message "Cours intel est complet" mais c'est
genant car les messagent se multiplient au fur et à mesure du remplissage .
L'idée de Starwing est interessante mais en réfléchissant je ne crois pas
que ce soit adaptée car si un cours est loin devant on l'a plus sur l'ecran
donc on voit pas sa couleur, pour que ca marche il faudrait faire une
colonne par cours et mette l'entete en couleur/complet mais cela fait trop
de colonnes. J'aurai aimé pouvoir intervenir sur la liste de choix en
changeant la couleur des cours concernés. J'ai eu une autre idée c'est de
faire une macro qui effacerait le nom du cours de la liste nommée ainsi le
cours complet ne serait plus proposé mais cela pose d'autres problèmes
(annulation ou changement du cours choisi par l'eleve, mise en attente au
cas où un cours suppl se ferait ). Ne peut-on vraiment pas intervenir sur
une telle liste.
Merci pour votre aide
amitiés
Anne-Marie

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

Bonjour,
Je ne sais comment est structuré votre système (table des cours offerts,
liste des inscrits, statistiques d'inscription par cours...), je serais
tenté
de vous proposer de constituer une table des cours offerts comportant les
informations suivantes:
- le code/sigle de cours suivi de
- sa désignation en clair (titre/libellé) ainsi que
-du nombre de places disponibles
Ces premiers éléments étant recueillis dans la phase préalable à
l'inscription ppt dite et étant complétés
- du nombre d'inscriptions enregistrées.
Cette dernière information étant mise à jour (incrémentée) au fur et à
mesure de l'enregistrement des inscriptions.

Dans ces conditions, ce que vous voulez obtenir (mettre en rouge les
titres
de cours pour lesquels les inscriptions sont closes) peut être obtenu
facilement en utilsant d'une part, une mise en forme conditionnelle pour
mettre en rouge, par exemple, le nombre d'inscriptions enregistrées si ce
nombre est égal ou dépasse le nombre de places disponibles (colonne
précédente) et d'autre part d'une macro très simple telle que:

Sub coloreTitre()
ActiveCell.Offset(0, -2).Font.ColorIndex = ActiveCell.Font.ColorIndex
End Sub

Cette macro qui ne fait que reproduire la couleur de la cellule contenant
le
nombre d'inscriptions dans la cellule contenant le titre du cours (2
colonnes
précédente)
couleur elle-même modifiée le cas échéant par la mise en forme
conditionnelle, est déclenchée par une autre macro telle que:

Private Sub Worksheet_Change(ByVal Target As Range)
coloreTitre
End Sub

Bonne chance,
JPP

"Donnazac" wrote:

Bonsoir
Win XP - XL2003 -
J'ai crée un fichier d'inscription pour laquelle je travaille
bénévolement
J'ai fait une liste de validation contenant tous les cours. Je cherche
une
solution pour avertir la personne qd le cours est complet , j'ai reussi à
faire emettre des messages "cours XXX est complet" mais cela est un peu
embetant car à chaque fois que l'on clique ds cette colonne le message
reapparait. Et au fur et mesure que les cours sont complet, on une
ribambelle de message qui s'affiche dès un clic dans la colonne "Cours".
Au
lieu de message ne pourait-on pas faire une action sur la liste de
validation --> style : cours complet en rouge ou inactif car c'est au
moment
du choix que ca serait interessant de savoir les cours complet . J'ai
essayé d'enregistré une macro mais cela ne donne rien.

Merci pour votre aide
Amicalement
Anne-Marie







Avatar
Pita
Rebonjour,
Plutôt que de faire disparaître les ligne des cours complets, utilisez dans
la macro, les 3 instructions suivantes:

Selection.Rows.Select 'selectionne toute la ligne
concernée
Selection.Font.ColorIndex = 3 'force la couleur des caractères à
"rouge"
Selection.RowHeight = 0 '"ferme" la ligne sans la supprimer

De cette façon vous faites disparaître la ligne visuellement sans la
supprimer... et sans affecter le reste de votre logique.
Bonne chance,
JPP

"Donnazac" wrote:

merci pour votre réponse
non moi j'avais crée une liste (nommée) de 12 cours que j'ai utilisée avec
la validation (Données) pour avoir une liste de choix donc tous les cours
sont sur une seule colonne. Puis ds une autre feuille j'ai utilisée Index et
Equiv pour créer la liste par cours. Cela marche très bien J'avais recherché
avec NB.SI(nomCours) puis j'avais fait une macro qui allait lire ce resultat
et en fonction envoyer un message "Cours intel est complet" mais c'est
genant car les messagent se multiplient au fur et à mesure du remplissage .
L'idée de Starwing est interessante mais en réfléchissant je ne crois pas
que ce soit adaptée car si un cours est loin devant on l'a plus sur l'ecran
donc on voit pas sa couleur, pour que ca marche il faudrait faire une
colonne par cours et mette l'entete en couleur/complet mais cela fait trop
de colonnes. J'aurai aimé pouvoir intervenir sur la liste de choix en
changeant la couleur des cours concernés. J'ai eu une autre idée c'est de
faire une macro qui effacerait le nom du cours de la liste nommée ainsi le
cours complet ne serait plus proposé mais cela pose d'autres problèmes
(annulation ou changement du cours choisi par l'eleve, mise en attente au
cas où un cours suppl se ferait ). Ne peut-on vraiment pas intervenir sur
une telle liste.
Merci pour votre aide
amitiés
Anne-Marie

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

Bonjour,
Je ne sais comment est structuré votre système (table des cours offerts,
liste des inscrits, statistiques d'inscription par cours...), je serais
tenté
de vous proposer de constituer une table des cours offerts comportant les
informations suivantes:
- le code/sigle de cours suivi de
- sa désignation en clair (titre/libellé) ainsi que
-du nombre de places disponibles
Ces premiers éléments étant recueillis dans la phase préalable à
l'inscription ppt dite et étant complétés
- du nombre d'inscriptions enregistrées.
Cette dernière information étant mise à jour (incrémentée) au fur et à
mesure de l'enregistrement des inscriptions.

Dans ces conditions, ce que vous voulez obtenir (mettre en rouge les
titres
de cours pour lesquels les inscriptions sont closes) peut être obtenu
facilement en utilsant d'une part, une mise en forme conditionnelle pour
mettre en rouge, par exemple, le nombre d'inscriptions enregistrées si ce
nombre est égal ou dépasse le nombre de places disponibles (colonne
précédente) et d'autre part d'une macro très simple telle que:

Sub coloreTitre()
ActiveCell.Offset(0, -2).Font.ColorIndex = ActiveCell.Font.ColorIndex
End Sub

Cette macro qui ne fait que reproduire la couleur de la cellule contenant
le
nombre d'inscriptions dans la cellule contenant le titre du cours (2
colonnes
précédente)
couleur elle-même modifiée le cas échéant par la mise en forme
conditionnelle, est déclenchée par une autre macro telle que:

Private Sub Worksheet_Change(ByVal Target As Range)
coloreTitre
End Sub

Bonne chance,
JPP

"Donnazac" wrote:

Bonsoir
Win XP - XL2003 -
J'ai crée un fichier d'inscription pour laquelle je travaille
bénévolement
J'ai fait une liste de validation contenant tous les cours. Je cherche
une
solution pour avertir la personne qd le cours est complet , j'ai reussi à
faire emettre des messages "cours XXX est complet" mais cela est un peu
embetant car à chaque fois que l'on clique ds cette colonne le message
reapparait. Et au fur et mesure que les cours sont complet, on une
ribambelle de message qui s'affiche dès un clic dans la colonne "Cours".
Au
lieu de message ne pourait-on pas faire une action sur la liste de
validation --> style : cours complet en rouge ou inactif car c'est au
moment
du choix que ca serait interessant de savoir les cours complet . J'ai
essayé d'enregistré une macro mais cela ne donne rien.

Merci pour votre aide
Amicalement
Anne-Marie












Avatar
Donnazac
Merci pour votre conseil , je viens de l'essayer ca n'a aucun impact sur la
liste de validation dans laquelle la couleur de la police n'est pas reportée
donc ca ne resoud pas mon pb . Je crois que je vais abandonner ça et trouver
une autre idéee, je crois que je vais mettre un bouton-icone et au cli la
macro fera un message des cours complets.

encore merci
Anne-Marie

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

Rebonjour,
Plutôt que de faire disparaître les ligne des cours complets, utilisez
dans
la macro, les 3 instructions suivantes:

Selection.Rows.Select 'selectionne toute la ligne
concernée
Selection.Font.ColorIndex = 3 'force la couleur des caractères à
"rouge"
Selection.RowHeight = 0 '"ferme" la ligne sans la
supprimer

De cette façon vous faites disparaître la ligne visuellement sans la
supprimer... et sans affecter le reste de votre logique.
Bonne chance,
JPP

"Donnazac" wrote:

merci pour votre réponse
non moi j'avais crée une liste (nommée) de 12 cours que j'ai utilisée
avec
la validation (Données) pour avoir une liste de choix donc tous les cours
sont sur une seule colonne. Puis ds une autre feuille j'ai utilisée Index
et
Equiv pour créer la liste par cours. Cela marche très bien J'avais
recherché
avec NB.SI(nomCours) puis j'avais fait une macro qui allait lire ce
resultat
et en fonction envoyer un message "Cours intel est complet" mais c'est
genant car les messagent se multiplient au fur et à mesure du remplissage
.
L'idée de Starwing est interessante mais en réfléchissant je ne crois pas
que ce soit adaptée car si un cours est loin devant on l'a plus sur
l'ecran
donc on voit pas sa couleur, pour que ca marche il faudrait faire une
colonne par cours et mette l'entete en couleur/complet mais cela fait
trop
de colonnes. J'aurai aimé pouvoir intervenir sur la liste de choix en
changeant la couleur des cours concernés. J'ai eu une autre idée c'est de
faire une macro qui effacerait le nom du cours de la liste nommée ainsi
le
cours complet ne serait plus proposé mais cela pose d'autres problèmes
(annulation ou changement du cours choisi par l'eleve, mise en attente
au
cas où un cours suppl se ferait ). Ne peut-on vraiment pas intervenir sur
une telle liste.
Merci pour votre aide
amitiés
Anne-Marie

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

Bonjour,
Je ne sais comment est structuré votre système (table des cours
offerts,
liste des inscrits, statistiques d'inscription par cours...), je serais
tenté
de vous proposer de constituer une table des cours offerts comportant
les
informations suivantes:
- le code/sigle de cours suivi de
- sa désignation en clair (titre/libellé) ainsi que
-du nombre de places disponibles
Ces premiers éléments étant recueillis dans la phase préalable à
l'inscription ppt dite et étant complétés
- du nombre d'inscriptions enregistrées.
Cette dernière information étant mise à jour (incrémentée) au fur et à
mesure de l'enregistrement des inscriptions.

Dans ces conditions, ce que vous voulez obtenir (mettre en rouge les
titres
de cours pour lesquels les inscriptions sont closes) peut être obtenu
facilement en utilsant d'une part, une mise en forme conditionnelle
pour
mettre en rouge, par exemple, le nombre d'inscriptions enregistrées si
ce
nombre est égal ou dépasse le nombre de places disponibles (colonne
précédente) et d'autre part d'une macro très simple telle que:

Sub coloreTitre()
ActiveCell.Offset(0, -2).Font.ColorIndex =
ActiveCell.Font.ColorIndex
End Sub

Cette macro qui ne fait que reproduire la couleur de la cellule
contenant
le
nombre d'inscriptions dans la cellule contenant le titre du cours (2
colonnes
précédente)
couleur elle-même modifiée le cas échéant par la mise en forme
conditionnelle, est déclenchée par une autre macro telle que:

Private Sub Worksheet_Change(ByVal Target As Range)
coloreTitre
End Sub

Bonne chance,
JPP

"Donnazac" wrote:

Bonsoir
Win XP - XL2003 -
J'ai crée un fichier d'inscription pour laquelle je travaille
bénévolement
J'ai fait une liste de validation contenant tous les cours. Je cherche
une
solution pour avertir la personne qd le cours est complet , j'ai
reussi à
faire emettre des messages "cours XXX est complet" mais cela est un
peu
embetant car à chaque fois que l'on clique ds cette colonne le message
reapparait. Et au fur et mesure que les cours sont complet, on une
ribambelle de message qui s'affiche dès un clic dans la colonne
"Cours".
Au
lieu de message ne pourait-on pas faire une action sur la liste de
validation --> style : cours complet en rouge ou inactif car c'est au
moment
du choix que ca serait interessant de savoir les cours complet . J'ai
essayé d'enregistré une macro mais cela ne donne rien.

Merci pour votre aide
Amicalement
Anne-Marie