Coloration formes par VBA

Bonjour à tous les membres du forum,

Je poste un message car je n'ai pas trouvé pleinement réponse à mon problème dans ce poste ci: https://forum.excel-pratique.com/viewtopic.php?f=2&t=44457 mais j'aimerais m'en inspirer car il est plutôt bien fait, bon boulot au passage !

En fait, je voudrais savoir si on pouvait colorer une forme (qui me servira aussi de bouton d'ouverture de feuille) selon les données d'une autre feuille ?

Si quelqu'un pouvait juste m'aider à composer le code VBA, pour le reste je me débrouille pour l'associer à mon projet !

Pour que ce soit plus simple à comprendre, j'ai tout expliqué dans le fichier EXCEL ci-joint (coloration bouton VBA...)!

J'espère que vous arriverez à me comprendre !

Merci aux gens qui prendront de leur temps pour m'aider à trouver une solution à mon problème

J-Baptiste

Bonsoir,

pour le redirection vers les feuilles il suffit de créer un lien vers la feuille voulue. Et ce sans macro !

Maintenant si vous voulez une macro, vous pouvez en faire une qui récupère le texte du bouton qui correspond au nom de la feuille comme cela vous avez une macro "générique" à n'écrire qu'une fois et à gérer qu'à un seul endroit.

Pour ce qui est du code pour changer les couleurs, ce sera un code à part de celui affecté aux boutons.

@ bientôt

LouReeD

Bonsoir LouReeD,

Merci pour votre réponse rapide ! Je ne savais pas que l'on pouvais créer un lien sans macro pour la redirection des feuilles. J'avais l'habitude de faire comme ça !

Ce n'est pas possible de servir de la macro du classeur Forme_Couleur-1.xlsm et de l'adapter en fonction du nom que je vais donner à mes formes. Par exemple "Bouton1", "Bouton2"...

J'aimerais vraiment créer une macro qui regroupe ces 2 fonctions (redirection + coloration de la forme) en fonction des données d'une autre feuille du classeur C'est possible avec VBA ou pas ?

Merci !

JBP

Voici votre fichier :

avec une macro générique qui récupère le texte du shape comme nom de feuille à activer.

Comme cela nouveau bouton, clic droit affecter macro, "un_bouton" et hop si le texte est bon ça fonctionne !

@ bientôt

LouReeD

En fait, intégrer un code VBA pour le changement de couleur entre ces lignes pour la page 1 par exemple:

Sub ACCES_Page1()

'

' ACCES_Page1 Macro

'

'

Sheets("Page1").Select

End Sub

Est-ce que c'est possible de faire comme ça ? Je n'y connais pas grand chose en VBA alors ne m'en voulez pas si je pose des questions basiques !

Merci

JBP

Sinon pour colorer un shape :

Sheets("Menu").Shapes.(Activesheet.Name).Fill.ForeColor.RGB = RGB(255,0,0)

pour du rouge. Mais cela implique le renommage de votre bouton au niveau de la zone de texte qui se trouve à gauche de la zone de texte de formule sur Excel.

Mais ce code n'est pas à mettre sur le code du bouton, il est à mettre sur le code de dé activation de la feuille en question afin de faire la vérification des cellules et déterminer si tout est OK ou PAS, mais je crois que cela a déjà fait l'objet d'un sujet "résolu", non ?

@ bientôt

LouReeD

Vous m'avez devancé !

Merci pour votre solution mais ce n'est pas exactement ce que j'attendais

En fait, je voudrais que le bouton (donc la forme) change de couleur si, dans sa feuille associée, toutes les lignes des colonnes A ou B sont colorées. Si toutes les lignes sont colorées alors il sera vert et s'il manque des couleurs dans des lignes alors le bouton sera rouge.

C'est réalisable cela ?

Ce n'est pas un souci s'il faut renommer le bouton à chaque fois lorsque j'en créé un nouveau ! Oui XCellus m'a bien aidé mais en fait la disposition n'est pas optimale donc c'est pour cela que je serais resté sur le même principe mais en utilisant des formes que l'on peut colorer plutôt que des cases du classeur EXCEL

Merci !

JBP

La couleur c'est la deuxième partie !

Voici le fichier :

Pour simplifier il faut renommer le bouton comme le nom de la feuille, ensuite le code de changement de couleur est sous "thisworkbook" afin de gérer toutes les feuilles, même celles qui viendront après, l'important il faut qu'elles aient le même début pour pouvoir filtrer.

Donc deux codes générique qui facilite l'ajout ou la suppression de feuilles !

Dans mon exemple le test des couleurs n'est autre qu'une condition d'égalité entre 1 et un chiffre au hasard entre 0 et 1.

Il est évident que ce test sera différent pour votre fichier !

@ bientôt

LouReeD

Merci pour votre retour LouReeD mais ça ne semble pas fonctionner. pour être honnête je n'ai pas tout compris. J'ai bien noté qu'il faudra que je nomme chaque "bouton" ou plutôt forme du même nom que ma feuille EXCEL, ça c'est OK! Je pensais qu'on aurait plutot utilisé la notion de "cellule vide" pour développer le code VBA. Comme ça si une ligne est vide dans la colonne A ou B et bien le bouton associé à la bonne feuille sur la page Sommaire passe au rouge sinon il est reste vert. Je ne sais pas si je sui explicite dans mes propos

Merci

JBP

Bonjour à tous,

j'ai jeté un oeil mais il manque un élément à ton fichier.

Qu'est-ce qui nous dit qu'il faut contrôler les couleurs en A1:B14 et non A1:B52 ?

eric

Bonsoir Eric,

Merci d'avoir regardé mon sujet. Justement c'est moi qui aimerait décider du nombre de lignes qui doivent être prises en compte, des fois cela ira de A1 à B14 et dans d'autres cas de A1:B174 et dans d'autres cas de A1:B98...C'est aléatoire, c'est pour cela que j'envisage d'adapter le code en fonction du nombre de lignes à prendre en compte dans chaque feuille. J'aurais juste voulu un exemple et ensuite j'aurais modifié au cas par cas. Dans la feuille 1 ça va de A1:B14 et dans la feuille 2 ça va de A1:B22 par exemple.

Merci à toi en tous cas !

JBP

Mais il faut l'indiquer quelque part, tu ne vas pas aller éditer ton code à chaque fois.

D'autant plus que j'ai lu que tu comptais ajouter des boutons...

Tu pourrais indiquer nom de feuille et nb lignes dans 2 colonnes masquées, ou bien dans une feuille Params masquée si tu veux.

Ensuite, selon le n° du bouton, il ira voir la ligne correspondant récupérer les infos.

Comme ça tous tes boutons utiliseront la même macro et plus besoin d'y toucher même en cas d'ajout

eric

Cela ne me dérangeait pas d'aller éditer le code à chaque fois, c'est juste que j'aimerais que cela fonctionne comme j'ai précisé dans le classeur excel. Ce que je pourrais faire c'est nommé le bouton (c'est à dire le forme) du même nom que ma feuille. Après il n'y aurait plus qu'à savoir si toutes les lignes de sa feuille respective dans une certaine plage sont colorées ou non. Si ce n'est pas le cas, le bouton passe en fond rouge. Tu as vu mon fichier EXCEL ? Ce n'est pas envisageable d'éditer et de modifier à chaque fois le code VBA et que j'adapterai pour chaque bouton ?

Merci !

JBP

Si c'est faisable, mais ce n'est pas ma conception d'un programme bien fait.

A chaque ajout tu vas aller copier-coller tout le code et le modifier alors qu'un code unique suffirait.

Donc ça sera sans moi.

Attends quelqu'un d'autre

Je suis preneur d'une autre solution Eric, je souhaiterais juste que mon classeur puisse fonctionner, après tu peux poster ta proposition ici, je regarderai

Sinon c'est gentil à toi d'avoir regardé

Merci

JBP

Bonsoir,

eriiic, à croire que mes messages sont passés inaperçus !

A voir...

Bon puisque vous êtes fana pour retoucher du code, alors je vous propose de n'avoir qu'une valeur à ajouter à vos feuille :

le mot "fin" dans la première colonne sur la dernière ligne +1 utilisée pour vos couleurs.

Pour le reste les deux codes sont génériques, il vous suffira d'ajouter un bouton, de le renommer "sous Excel" comme le nom de la nouvelle feuille et d'ajouter le mot "fin" à cette nouvelle feuille.

Ensuite le texte du shape (du bouton) peut être égale à ce que vous voulez.

Le fichier :

@ bientôt

LouReeD

Bonsoir LouReeD,

Si si j'ai bien vu vos messages mais je ne connais vraiment rien en EXCEL, toutes les propositions sont bonnes à prendre.

Je voudrais juste un fonctionnement simple et si possible au plus près de ce que j'ai renseigné dans les commentaires de mon fichier EXCEL

Merci à vous.

JBP

et après avoir télécharger le fichier ?

@ bientôt

LouReeD

le même fichier avec les commentaires :

@ bientôt

LouReeD

Ah mais j'ai regardé ton fichier avant, loureed

Comme il n'y avait pas de code concernant la couleur des boutons j'ai pensé que tu ne voulais pas trop le faire.

Possible que tu te sois trompé de fichier et mis un intermédiaire... Il n'y avait que 2 lignes de code

eric

Rechercher des sujets similaires à "coloration formes vba"