Transposer une maccro
Bonjour
J'ai une question dont je n'arrive pas à trouver la solution. J'ai crée un tableau excel ou j'ai introduis une simple maccro lié à un bouton (carré à cocher)
Cette maccro étant connecté a ce carré dès que je le coche ma maccro ce déclenche, jusque la aucun soucis. Cette maccro consiste à cocher le carré en G8 et cela modifie la couleur de la cellule F8 et G8.
La ou j'ai un soucis c'est que j'ai 50 lignes et je ne souhaiterais donc pas créer autant de maccro, ainsi serait il possible de créer une maccro ou modifier ma maccro actuel pour que lorsque je copie / colle la ligne 8 ma maccro agisse sur la 9 et les suivantes. C'est a dire que je coche le carré G9, F9 et G9 change de couleur et ainsi de suite pour les cellule jusque 50.
Je vous joint le fichier
Merci
Bonsoir,
les cases à cocher sont elles obligatoires ?
Ensuite ce que je vois c'est que vous cochez une première fois, la cellule F8 se met en jaune, mais si vous décochez car vous avez coché par erreur, la cellule reste jaune...
Mon idée serait plutôt orienté vers un double clic sur la cellule F8, qui engendre le lancement d'une macro "générique" qui récupère l'adresse de la cellule "double-cliquée" et ensuite fait ce qu'il y a à faire en fonction de différent tests.
Si la coche vous séduit, alors avec la police Wingdings d'Excel, vous pouvez utilisez des caractères qui se font passés pour des boite à cocher...
@ bientôt
LouReeD
Bonjour
La coche n'est nullement une obligation c'est simplement que je me suis dit que cela serait peut être plus ludique pour toute les personnes qui utiliseront ce fichier.
Effectivement lorsque vous décochez cela ne disparaît pas, cela est malheureusement la limite de mes compétences sur le point des maccros, car dans l'idée j'en aurait crée 2 pour rectifié le soucis mais je ne peux pour autant pas connecter 2 maccros à un même bouton.
Puis la question persiste vais je pouvoir faire descendre ces maccros sur les 50 lignes en dessous ? Je comprend à peu près votre idée mais comment vais je pouvoir créer cette maccro générique qui ne prend en compte que la cellule ciblé et non la cellule mise en maccro?
Merci
Bonjour,
très modestement je répondrais par "oui" à votre dernière question !
@ (très) bientôt
LouReeD
Très bien, comment puis je donc créer cette maccro générique ,pourriez vous m'expliquer le processus s'il vous plait?
Et comment la connecté à une case en question ?
Car actuellement quand je crée une maccro elle reste connécté à la case de base et n'est donc pas générique
Merci
Bon voilà, le fichier "est prêt" mais seulement sur la semaine 01, pour les suivantes ce ne sera pas dur à mettre en place.
Tout d'abord, suppression des boites à cocher.
Mise en police Wingdings les colonnes qui devaient recevoir ces boites à cocher.
Inscription du caractère "163" de la police pour faire apparaitre des boites à cocher vides (le texte c'est le £)
Mise en place sur la feuille SEM01 d'une macro événementielle "double clic".
Si double clic sur la feuille on cherche à savoir s'il a eu lieu dans les colonnes surveillées F,G,I,J,L,M,O,P,R,S,U,V,X,Y
Si c'est le cas, on cherche à savoir si le clic a eu lieu sur les lignes de 8 à 57.
Si c'est le cas, on cherche à savoir sur quelle colonne :
la colonne on la connait avec Target (cellule cliqué) et Column (n° de la colonne de l'objet en référence) donc :
Target.Column = n° de la colonne de la cellule double cliqué,
Maintenant est-ce que cette colonne est une colonne de gauche ou de droite de chaque couple de colonne surveillée.
Pour cela on a une formule (n° colonne - 6)/3, où le 6 est égal à la première colonne (F) et 3 au nombre de colonne par groupe.
si le résultat est "entier" c'est la colonne de gauche, si le résultat est décimal alors c'est la colonne de droite.
En fonction de ce résultat on fait des tests différents :
si colonne de gauche, alors pour pouvoir la modifiée il ne faut pas qu'il y ait une boite cochée à droite
s'il n'y a pas de coche à droite on s'autorise à modifier la colonne de gauche.
pour la modifier on vérifie ce qu'il y a déjà "dedans" : si c'est décoché, alors on coche, si c'est coché, alors on décoche.
Si la colonne de droite est cochée, alors on sort du code et on ne modifie rien.
Le principe est le même pour la colonne de droite :
pour modifier droite, il faut gauche cochée, sinon on quitte le code,
si gauche cochée, alors en fonction de la valeur existante à droite on coche ou décoche.
La boite décochée correspond au "R" de la police Wingdings, et la boite cochée correspond au £ de la police Wingdings.
Ou bien en formule pour le mise en forme au caractère 163 décoché et 82 coché.
Voilà, j'ai laissé le code de mise en couleur de la cellule par VBA, mais je les ai passé en commentaire afin de vous montrer la mise en couleur par MFC directement sur la feuille.
Mais vous pouvez trés bien supprimer cette MFC et enlever les apostrophes afin de récupérer les lignes de code de mise en couleur.
La mise ne couleur VBA je l'ai mis par fonction RGB, valeur que vous pouvez trouver dans "couleurs personnalisé" sous Excel.
Bref, le code commun est "retiré" des feuilles de semaine, seul un petit code permet d'appeler le code générique, ce qui simplifie la maintenance.
A vous de voir si cela vous convient.
Le fichier :
@ bientôt
LouReeD
Je n'ai qu'une chose à dire, c'est parfait c'est vraiment au top!
Je te cache pas que j'ai du lire à plusieurs reprise ton post pour tout comprendre car le tout c'est que je puisse moi aussi le comprendre. Tu m'as enlevé une grosse épine du pied et je t'en remercie sincèrement.
J'aurais simplement une question, pour les semaine suivante, je dois reprendre le même processus chaque fois ou il est possible de simplement copier cela et le reprendre en modifiant la date?
Merci Beaucoup
une copie de la feuille sem 1 est "sufisante" car après il faut la renommer, puis changer les dates, mais si les colonnes sont les même 'FG, IJ etc alors il n'y a rien d'autre à faire, car le code de surveillance événementielle sera copié en même temps que la création des nouvelles feuilles, et le reste du code prend en compte la variable système TARGET qui sera liée à la feuille où les cellules seront "double-cliqué".
Donc rien d'autre à modifier.
Si un jour le colonnes devaient être modifiées, alors il "suffira" de modifier les références de surveillances, mais à ce moment là il faudra faire un copier / coller du code sur toutes les feuilles...
L'idéal serait de mettre sur une feuille système la liste des colonnes à surveillées, afin de les passer "en variable" dan sle code événementielle, comme cela plus qu'une seule source à modifier pour adapter le fichier... Mais on en est pas là
@ bientôt
LouReeD
Bonjour
Merci pour tous ces conseil, précision je vais donc m'occuper de copier/coller tout cela.
Je te montrerais le réultat finis, je vais m'atteler à cela puis au menu que je souhaite faire.
A bientot
Bonjour,
pas de soucis, si cela vous fait plaisir !
@ bientôt alors
LouReeD