|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() David profession libérale Inscription : octobre 2011 Messages : 28 ![]() |
Bonsoir,
dans un planning d'une seule colone, je cherche à remplir les cases à partir d'une semaine type placée juste au-dessus (par exemple, lundi mardi mercredi et vendredi sont travaillés et colorés en vert avec écrit "prs" ; jeudi , non travaillé, est rouge avec écrit "abs"). Mon problème, c'est de faire un copier-coller qui ne concerne que la valaur, la couleur de police, la couleur de remplissage... mais pas le format (MFC...) ni les bordures... : en effet, les MFC qui permettent de visualiser les WE et jours fériés seraient effacées avec un copier-coller classique et les bordurent du planning seraient modifiées. J'ai déjà une solution permettant une saisie à partir d'une liste via une commandbar, mais je n'arrive pas à en extraire une macro globale qui permettrait de remplir le planning d'un coup. Merci d'avance. |
|
|
00
|
|
|
#2 | |
|
Membre du Club
![]() ![]() Étudiant Inscription : novembre 2011 Messages : 102 ![]() |
Salut darkvadave,
Citation:
Par ailleurs, peux-tu mettre un tout piti fichier exemple s'il te plaît ? Juste pour être sûre du résultat que tu attends. Kaera*
__________________
. Si la réponse d'un membre vous satisfait, pensez à voter en cliquant sur le pouce levé ! ![]() *** Un vote négatif sans justification, c'est dénué d'intérêt ! ![]() Accompagnez-le d'un message explicatif, cela évitera au membre visé de reproduire la même erreur. Bien plus efficace ! ...An ka mandéw, mèt taw ek tan mwen pou sa fè an lô... |
|
|
|
01
|
|
|
#3 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Je ne suis pas sûr d'avoir bien compris ce que tu veux faire exactement. Tu as une liste de date et tu veux les mettre en forme en fonction du jour de la semaine ?
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() David profession libérale Inscription : octobre 2011 Messages : 28 ![]() |
Bonjour,
merci de vous intéresser à ce problème. En fait, j'aivais déjà posté une question intitulée "saisie d'un planning : comman bare de coloriage", sans trop de succès avec une question un peu plus étoffée et un planning simplifié en pièce jointe. Je joins donc ce planning (les questions sont inscrites en commentaire en A1). Merci d'avance. |
|
|
00
|
|
|
#5 | ||||||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Alors on va y aller par étapes :
Tout d'abord, évite les On Error Resume Next un peu partout. Ca doit seulement servir à gérer une erreur à laquelle on s'attend et il faut bien remettre On Error GoTo 0 ensuite. Pour créer une barre de coloriage, ton code est correct, le seul problème est qu'on ne peut pas créer 2 barres d'outils qui ont le même nom. Il faudrait d'abord boucler sur les barres d'outils pour les effacer. On met dans un module Code :
Code :
Pour faire la même chose sur une plage de date, c'est le même principe mais ça va dépendre du format définitif de ton classeur complet. Code :
Code :
Application.Calculation = xlCalculationManual Code :
Application.Calculation = xlCalculationAutomatic Pour finir, je reviens sur une question de conception. Etant donné que la mise en forme à l'air d'être toujours associée au même contenu. Pourquoi ne pas uniquement travailler sur le contenu et ajouter juste une procédure globale qui fait la mise en forme (vu qu'il y a sans doute trop de possibilités pour faire de la MFC) et qui est lancée au moment opportun ? Ça simplifiera beaucoup tes formules de calculs et la plupart des macros.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
||||||
|
|
10
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() David profession libérale Inscription : octobre 2011 Messages : 28 ![]() |
Bonsoir ZebreLoup,
merci pour toutes ces infos (il me faut un peu de temps pour les décortiquer). Pour le pb de lenteur, je l'ai réglé en cochant calcul sur ordre en option (je suis tombé dessus par hasard il y a qq jours, mais n'avais pas enlevé la question à ce sujet), du coup, le coloriage et très rapide et le calcul final ne prend que 2 s à 3 s. Pour les MFC, c'est sûr qu'elles sont un peu lourdes, mais j'y suis arrivé. En fait, je n'ai pas toujours la même : j'ai fais un planning d'un mois de 31 j (que je multiplierai par 12 une fois au point) distinguant matins et apm (donc 62 lignes), et il faut bien qu'il y ait une gestion différente du 1er jour du mois, de même pour les fin de mois. Ensuite, je repère les sam apm,les dimanches, les JF (plus d'éventuels jours chômés lors des ponts). C'est après que ça se corse : en fait, j'ai des colones de comptages à droite du tableau pour gérer les erreurs de saisie du planning (par ex., on veut repérer si 2 personnes sont mises de garde de nuit le même jour ou savoir si le bon nombre de personnes est programmé le samedi matin : vert si ok/rouge si problème). En outre, un fond jaune pale est appliqué si la case n'a pas d'intérêt (ex : seules les lignes correspondant au samedi matin sont mises en évidence dans le colone de comptage des samedis matin). Bref, j'ai parfois été arrêté par le nb de caractères autaurisés dans la progrmmation des MFC et ça fait tout de suite fouillis quand j'essaie de l'expliquer. Ceci dit, s'il y a moyen de simplifier, je suis preneur : je posterai à nouveau quand j'aurai intégré les macros que tu m'as envoyées. Merci beaucoup. Bonsoir ZebreLoup, tout d'abord, jespère que tu as passé un bon Noël. J'ai essayé le code pour les barres de coloriage, mais ça ne fonctionnes pas. J'imagine que la boucle de départ sert à éviter d'avoir des barres de coloriage qui s'ajoutent les unes aux autres quand on ouvre plusieurs fois le fichier. Pour l'appel des macro dans ThisWorkbook, ça ne fonctionne pas non plus ; par contre, ça marche pour lancer des macros (autres que AjoutBarreColoriage1 et AjoutBarreColoriage2 si on modifie le nom de la macro par NB : option explicit en début de code, c'est pour se forcer à déclarer les variables? autre question : Pour la macro AjusterFormatSelection, pourquoi faut-il passer par Intesect ? En affectant cette macro à un bouton, j'obtiens le message d'erreur : "la méthode 'Intersect' de l'objer '_global' a échoué. |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Tu es sur quelle version d'Excel ?
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#8 | ||||
|
Candidat au titre de Membre du Club
![]() David profession libérale Inscription : octobre 2011 Messages : 28 ![]() |
Bonjour et bonne année;
Je suis sur excel2000. NB : depuis mon dernier message, j'ai trouvé une solution qui fonctionne as trop mal : Code :
NJm est un essai raté pour créer une variable donnant le N° du jour précédent celui testé : je ne me souviens plus du message d'erreur. J'ai créé une autre macro qui sert à remplir les WE : Code :
S'il y a des améliorations possibles, je suis preneur. En particulier, l'inconvnient est d'être obligé de saisir manuellement la zone à colorier et de créer autant de macros que de personnes (à moins d'en faire une globale qui traite le planning d'un coup). |
||||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Je n'ai plus tous les détails de ton fichier en tête, mais effectivement, ça parait un peu lourd de faire une macro par personne. Il vaudrait mieux mettre des paramètres dans ta procédure pour l'appeler en fonction de la personne. (Sans doute le Range concerné).
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com