Couleur des caracteres d'une ligne en fonction de la date
Résolu/Fermé
SteamXIII
Messages postés
7
Date d'inscription
mercredi 26 août 2015
Statut
Membre
Dernière intervention
8 septembre 2015
-
26 août 2015 à 05:04
SteamXIII Messages postés 7 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 8 septembre 2015 - 31 août 2015 à 05:52
SteamXIII Messages postés 7 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 8 septembre 2015 - 31 août 2015 à 05:52
A voir également:
- Couleur des caracteres d'une ligne en fonction de la date
- Fonction si et - Guide
- Partage de photos en ligne - Guide
- Caractères ascii - Guide
- Site de vente en ligne particulier - Guide
- Aller à la ligne excel - Guide
2 réponses
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
26 août 2015 à 07:40
26 août 2015 à 07:40
Bonjour,
Une solution sans VBA.
Pour passer les lignes en rouge lorsque la date est antérieure de 4 mois ou plus à la date d'aujourd'hui, tu peux utiliser une mise en forme conditionnelle.
Pour compter les cellules dont la date est inscrite en rouge, tu peux utiliser la fonction SOUS.TOTAL et filtrer avec la couleur de police.
https://www.cjoint.com/c/EHAfMzdqiwv
A+
Une solution sans VBA.
Pour passer les lignes en rouge lorsque la date est antérieure de 4 mois ou plus à la date d'aujourd'hui, tu peux utiliser une mise en forme conditionnelle.
Pour compter les cellules dont la date est inscrite en rouge, tu peux utiliser la fonction SOUS.TOTAL et filtrer avec la couleur de police.
https://www.cjoint.com/c/EHAfMzdqiwv
A+
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
28 août 2015 à 07:44
28 août 2015 à 07:44
Bonjour,
Ton fichier en retour
https://www.cjoint.com/c/EHCfQHjFEO1
Point 1 :
j'ai conservé la MFC avec la formule =AUJOURDHUI()>MOIS.DECALER($G4;4)
Point 2 :
j'ai utilisé la formule
=SOMMEPROD((G4:G9<MOIS.DECALER(AUJOURDHUI();-4))*(G4:G9<>"")*1)
Point 3 :
j'ai regroupé le traitement des différents mois sur une seule feuille (Test).
Le choix du mois est effectué avec une liste déroulante en F4.
L'évènement Worksheet.Change est utilisé pour détecter la modification de valeur de F4.
La procédure associée effectue les deux filtrages de données (filtre avancé).
Les zones de critères et la liste de choix du mois sont dans les lignes masquées 1,2 et 3.
A+
Ton fichier en retour
https://www.cjoint.com/c/EHCfQHjFEO1
Point 1 :
j'ai conservé la MFC avec la formule =AUJOURDHUI()>MOIS.DECALER($G4;4)
Point 2 :
j'ai utilisé la formule
=SOMMEPROD((G4:G9<MOIS.DECALER(AUJOURDHUI();-4))*(G4:G9<>"")*1)
Point 3 :
j'ai regroupé le traitement des différents mois sur une seule feuille (Test).
Le choix du mois est effectué avec une liste déroulante en F4.
L'évènement Worksheet.Change est utilisé pour détecter la modification de valeur de F4.
La procédure associée effectue les deux filtrages de données (filtre avancé).
Les zones de critères et la liste de choix du mois sont dans les lignes masquées 1,2 et 3.
A+
SteamXIII
Messages postés
7
Date d'inscription
mercredi 26 août 2015
Statut
Membre
Dernière intervention
8 septembre 2015
31 août 2015 à 05:52
31 août 2015 à 05:52
Bonjour Gyrus,
Cela me semble absolument parfait !
Un grand merci pour cette précieuse aide.
Cela me semble absolument parfait !
Un grand merci pour cette précieuse aide.
26 août 2015 à 08:51
1) La modification de couleur de police n'est pas un évènement qui est détecté par l'application.
Tu peux utiliser un autre évènement, par exemple Worksheet.SelectionChange qui permet de détecter un changement de sélection dans la feuille de calcul.
Par contre, le comptage ne sera effectué qu'après modification de la couleur puis changement de sélection. Le rafraichissement est automatique mais n'est pas directement induit par la modification de couleur.
2) Lorsque tu supprimes directement une date en rouge, le compteur ne décrémente pas parce que le format de la cellule n'est pas modifié (la couleur de police reste rouge).
Tu dois donc indiquer dans le programme que le comptage ne doit pas être effectué si la cellule est vide.
Exemple de code
A+
27 août 2015 à 04:11
Merci pour cette réponse rapide et efficace.
Effectivement, je n'avais pas pensé à la non-detection du changement de police.
La fonction SOUS.TOTAL est une bonne alternative, l'inconvénient est qu'elle oblige de cacher les autres dates qui restent en noires.
Pour le programme, je ne comprends pas, je n'ai aucun résultat lorsque je l'insére en tant que module dans ma feuille excel ?
Le compte devrait pourtant apparaitre dans la cellule A1 non ?
27 août 2015 à 07:09
Si tu as placé le code dans le module de la feuille, la procédure doit se lancer à chaque changement de sélection dans la feuille.
Attention, il ne faut pas que la couleur de police soit générée par une mise en forme conditionnelle. Ne sachant pas pour quelle solution tu as opté pour appliquer cette mise en forme (procédure ?), je ne peux pas t'en dire d'avantage.
Voici un exemple :
https://www.cjoint.com/c/EHBe5nERnb1
Si besoin, fais comme moi et joins un exemple.
A+
27 août 2015 à 10:29
https://www.cjoint.com/c/EHBif4L5pS3
Trois étapes:
1) Dans la liste de tous les produits (Feuille 1), les produits étant en fonctionnement depuis 4 mois ou plus doivent voir leur police de ligne devenir rouge et non noire.
2) Une cellule de la feuille 1 doit indiquer le nombre de produits qui sont en fonctionnement depuis 4 mois ou plus (On peut donc utiliser le fait que les lignes correspondantes soient rouges, si c'est plus simple qu'avec la date)
3) Les Feuilles 2-3-...-13 correspondent a une evolution mensuelle. Dans chacune de ces feuilles, deux tableaux. Exemple avec Janvier 2015:
- Un tableau correspondant a tout les produits en fonctionnement depuis 4 mois ou plus avant Janvier 2015
- Un tableau correspondant a tous les produits en fonctionnement avant Janvier 2015
Le but final est que je remplisse seulement la premiere feuille avec les nouveaux produits. Tout le reste se ferait automatiquement (Le passage au rouge après 4 mois, le calcul du nombre de produits en rouge et le remplissage des feuilles 2 a 13 qui "piochent" les lignes necessaires dans la feuille 1)
Dans l'exemple excel, j'ai ajouté la mise en forme conditionelle pour l'étape 1 et le programme que tu as concocté pour l'étape 2. Cependant comme tu l'as fais remarqué, il n'est apparemment pas possible de lier les deux.
J'espère être comprehensible et que ceci est faisable, merci de se pencher sur ma demande en tout cas !