Création d'un planning Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 6'344
Appréciations reçues : 156
Inscrit le : 18 septembre 2008
Version d'Excel : 2016
Téléchargements : Mes applications

Message par galopin01 » 1 juillet 2017, 12:55

il y a une fonction NBCOLOR dans Module1 (et une déclaration (Public CClr&) à mettre obligatoirement en tête du module, juste après Option Explicit)
Soit tu fais glisser tout le module dans ton projet ou si tu as déjà un Module1 dans ton classeur tu copies la déclaration et la fonction dans ton Module.

Attention ! Dans mes macros le Codename de la feuille "PLANNING HORAIRE" à été changé
Dans VBAProject cliquer sur Feuil1 et dans la fenêtre des propriétés (1ère ligne) renommer "Feuil1" en "ShP"

Je te donne aussi une macro pour vider le planning (pour commencer la semaine suivante...)
Sub RAZ() 'à mettre dans Module1
ShP.Protect UserInterfaceOnly:=True
Range("C3:AE79").Interior.Color = xlNone
End Sub
A+
VBAPShP.jpg
VBAPShP.jpg (67.47 Kio) Vu 122 fois
m
madvx
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 30 juin 2017
Version d'Excel : 2016

Message par madvx » 1 juillet 2017, 14:36

Parfait encore merci je viens de réussir à appliquer le module à mon classeur.
Du coup, j'ai même apporter quelques modifs pour la mise en forme au lieu de cliquer sur les cellules de couleurs, j'ai créé directement des boutons.

Autre question concernant les Repos hebdomadaires. J'aimerais faire un modif pour qu'il puisse différencier une journée RH d'une 1/2 journée RH.
En gros, j'ai voulu faire cette formule là mais forcément elle ne passe pas :twisted:

=SI(NBCOLOR(LIGNE();AM$2)=11;0,5;0);SI(NBCOLOR(LIGNE();AM$2)=14;0,5;0);SI(NBCOLOR(LIGNE();AM$2)=29;1;0)

Je suis parti du principe que 1 matinée en RH = 11 cellules, que 1 après-midi RH = 14 cellules et que une journée entière RH = 29 cellules.
Je pensais pouvoir mettre 3 conditions mais je tombe sur un vilain #VALEUR!

Aie aie aie ! que faire ?
m
madvx
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 30 juin 2017
Version d'Excel : 2016

Message par madvx » 1 juillet 2017, 15:06

Ahah je suis presque .... moins mauvais :lol:

Correction faite, il fallait diviser le nombre de cellules par deux car module 1 applique cela et restructurer ma formule.

Ce qui donne
=SI(NBCOLOR(LIGNE();AM$2)=5,5;0,5;SI(NBCOLOR(LIGNE();AM$2)=7;0,5;SI(NBCOLOR(LIGNE();AM$2)=14,5;1;0)))

Encore un grand Merciiiiii !

Je suis de nouveau copain avec l'apprentissage Excel et VBA :D

Je reviens plus tard si j'ai de nouvelles questions !

Bonne journée !
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 6'344
Appréciations reçues : 156
Inscrit le : 18 septembre 2008
Version d'Excel : 2016
Téléchargements : Mes applications

Message par galopin01 » 1 juillet 2017, 15:12

Hum... C'est un peu capillo-tracté hein ?
La bonne formule est :
=SI(NBCOLOR(LIGNE();AM$2)=5.5;0,5;SI(NBCOLOR(LIGNE();AM$2)=7;0,5;SI(NBCOLOR(LIGNE();AM$2)=14,5;1;0)))

Bravo... mais cette formule est équivalente :
=SI(NBCOLOR(LIGNE();AM$2)>7;1;SI(NBCOLOR(LIGNE();AM$2)>0;1/2;0))
A+
m
madvx
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 30 juin 2017
Version d'Excel : 2016

Message par madvx » 1 juillet 2017, 17:48

Oui c'est vrai aussi. Vu comme ça. J'aime bien me tirailler parfois .... Pour pas grand chose.

Une dernière petite (normalement). Je souhaite faire un bouton raccourci pour entrer des RH matin, un pour les RH après midi et un pour les RH Journée.
A savoir donc que 1 RH matin = cellule sélectionné +10 cellules. Comment dois-je formuler la macro pour obtenir 11 cellules de la couleur donnée ?

Merci d'avance
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 6'344
Appréciations reçues : 156
Inscrit le : 18 septembre 2008
Version d'Excel : 2016
Téléchargements : Mes applications

Message par galopin01 » 1 juillet 2017, 18:46

ça dépend un peu comment tu as goupillé tes boutons...
Tu as juste à récupérer i = ActiveCell.row (ligne cliquée)
En gros puisque tu as 3 boutons, le bouton matin c'est toujours la plage :
Range(Cells(i,3),Cells(i,13)).Interior.Color = CClr
pour l'après midi :
Range(Cells(i,16),Cells(i,29)).Interior.Color = CClr
et pour la journée :
Range(Cells(i,3),Cells(i,29)).Interior.Color = CClr
(à une vache près...)

Je m'absente jusqu'à 23h.
A+
m
madvx
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 30 juin 2017
Version d'Excel : 2016

Message par madvx » 2 juillet 2017, 14:51

Parfait ça marche tout comme je le voulais ! C'est royal.

Juste un seul soucis apparaît...

J'ai voulu donner 2 couleurs supplémentaires à ma légende, qui correpond à une fusion Club1+Club2 et une autre Club3 + Club4.
Pour la première, on part d'un violet dégradé rose et l'autre orange dégradé vert.
Le problème qui se pose, c'est que excel reconnait les deux comme la même couleur du coup il me comptabilise le double d'heures sur ces plages horaires là car il compte un première fois en fusion club1+2 et une seconde fois en fusion club 3+4.

Que faire ?

Merci bien encore pour cette aide précieuse !

Bon Dimanche !
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 6'344
Appréciations reçues : 156
Inscrit le : 18 septembre 2008
Version d'Excel : 2016
Téléchargements : Mes applications

Message par galopin01 » 2 juillet 2017, 15:18

Utiliser des couleurs unies !
m
madvx
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 30 juin 2017
Version d'Excel : 2016

Message par madvx » 2 juillet 2017, 15:43

Aucune possibilité avec des dégradés ? car à la base ... ça m'aurait bien arrangé. Merci
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 6'344
Appréciations reçues : 156
Inscrit le : 18 septembre 2008
Version d'Excel : 2016
Téléchargements : Mes applications

Message par galopin01 » 2 juillet 2017, 16:01

Le mieux est l'ennemi du bien !
Les dégradés ne sont pas des couleurs...
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message