A voir également:
- Colorier un forme de la feuille 2 en fonction d'une cellule de 1
- Mise en forme conditionnelle excel - Guide
- Fonction si et - Guide
- Aller à la ligne dans une cellule excel - Guide
- Word numéro de page 1/2 - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
7 réponses
via55
Messages postés
14408
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
5 mai 2024
2 704
12 août 2015 à 17:02
12 août 2015 à 17:02
Bonjour
Indique le nom de la feuille avant le Range :
If Sheets("Feuil1").Range("A1") < 100 Then
Cdlmnt
Via
Indique le nom de la feuille avant le Range :
If Sheets("Feuil1").Range("A1") < 100 Then
Cdlmnt
Via
Boisgontierjacques
Messages postés
175
Date d'inscription
jeudi 19 septembre 2013
Statut
Membre
Dernière intervention
26 décembre 2018
64
13 août 2015 à 06:44
13 août 2015 à 06:44
Bonjour,
L'exemple que vous m'avez proposé est très intéressant, cependant, je n'arrive pas à le réutiliser lorsque je veux changer la couleure d'une forme qui est dans une autre feuille que celle où se trouvent les cellules colorées et formules.
Comment peut-on modifier la formule afin que cela fonctionne ?
Autrement, cela m'intéresserai beaucoup de pouvoir modifier cette fois, non pas la couleur de fond de la forme, mais la couleur du couleur ou encore, la couleur du texte contenu dans la forme.
Est-il possible d'adapter la formule pour atteindre cet objectif ?
Merci d'avance pour votre aide! :)
L'exemple que vous m'avez proposé est très intéressant, cependant, je n'arrive pas à le réutiliser lorsque je veux changer la couleure d'une forme qui est dans une autre feuille que celle où se trouvent les cellules colorées et formules.
Comment peut-on modifier la formule afin que cela fonctionne ?
Autrement, cela m'intéresserai beaucoup de pouvoir modifier cette fois, non pas la couleur de fond de la forme, mais la couleur du couleur ou encore, la couleur du texte contenu dans la forme.
Est-il possible d'adapter la formule pour atteindre cet objectif ?
Merci d'avance pour votre aide! :)
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 398
14 oct. 2015 à 14:39
14 oct. 2015 à 14:39
Bonjour
peu expérimenté en VBA je peux dire des bêtises (oh oui) mais je n'ai jamais réussi à faire fonctionner un code feuille en faisant référence à des cellules hors feuille.
La solution que j'emploie pour contourner le problème:
écrire le code dans un module
lancer la macro dans le code feuille avec CALL nom_macro
Ça pourrait peut être alors fonctionner avec Range("Feuil1A1")
en attendant les experts en la matière!!
crdlmnt
peu expérimenté en VBA je peux dire des bêtises (oh oui) mais je n'ai jamais réussi à faire fonctionner un code feuille en faisant référence à des cellules hors feuille.
La solution que j'emploie pour contourner le problème:
écrire le code dans un module
lancer la macro dans le code feuille avec CALL nom_macro
Ça pourrait peut être alors fonctionner avec Range("Feuil1A1")
en attendant les experts en la matière!!
crdlmnt
f894009
Messages postés
17189
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
6 mai 2024
1 705
Modifié par f894009 le 14/10/2015 à 14:57
Modifié par f894009 le 14/10/2015 à 14:57
Bonjour Vaucluse,
Ce qu'il faudrait savoir, c'est comment change la valeur de la cellule feuil1!A1 et si la feuil2 est en permanence active ou pas !!!
Ce qu'il faudrait savoir, c'est comment change la valeur de la cellule feuil1!A1 et si la feuil2 est en permanence active ou pas !!!
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 398
Modifié par Vaucluse le 14/10/2015 à 15:04
Modifié par Vaucluse le 14/10/2015 à 15:04
Salut f894.....
alors je suis la discussion, la solution autre que ma "combine" m'intéresse!
Je pense aussi qu'il faudrait savoir ce que deviennent les cellules formatées si la valeur de A1 feuil2 change de condition
A+
alors je suis la discussion, la solution autre que ma "combine" m'intéresse!
Je pense aussi qu'il faudrait savoir ce que deviennent les cellules formatées si la valeur de A1 feuil2 change de condition
A+
f894009
Messages postés
17189
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
6 mai 2024
1 705
>
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
14 oct. 2015 à 15:08
14 oct. 2015 à 15:08
Re,
un exemple sur activation feuille:
a mettre dans VBA de ThisWotkbook
un exemple sur activation feuille:
a mettre dans VBA de ThisWotkbook
Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim Shp If Sh.Name = "Feuil2" Then Set Shp = ThisWorkbook.Worksheets("Feuil2").Shapes("Ellipse 67") ' je voudrais ici qu'il s'agisse de la cellule A1 de la "Feuil1" If Worksheets("Feuil1").Range("A1") < 100 Then Shp.Fill.ForeColor.RGB = RGB(239, 51, 35) 'rouge ActiveSheet.Shapes.Range(Array("Ellipse 67")).Select With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill .Visible = msoTrue .ForeColor.RGB = RGB(0, 103, 56) 'vert .Transparency = 0 .Solid End With Else Shp.Fill.ForeColor.RGB = RGB(0, 103, 56) 'vert ActiveSheet.Shapes.Range(Array("Ellipse 67")).Select With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill .Visible = msoTrue .ForeColor.RGB = RGB(239, 51, 35) 'rouge .Transparency = 0 .Solid End With End If End If End Sub
f894009
Messages postés
17189
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
6 mai 2024
1 705
>
Lea9344
14 oct. 2015 à 16:44
14 oct. 2015 à 16:44
Re,
Reponse pas top,
La cellule Feuil1!A1 peut être changé manuellement. et autrement ??
La Feuil2!A2 est toujours active Que vient faire la cellule A2 ??
Reponse pas top,
La cellule Feuil1!A1 peut être changé manuellement. et autrement ??
La Feuil2!A2 est toujours active Que vient faire la cellule A2 ??
Boisgontierjacques
Messages postés
175
Date d'inscription
jeudi 19 septembre 2013
Statut
Membre
Dernière intervention
26 décembre 2018
64
Modifié par Boisgontierjacques le 15/10/2015 à 20:35
Modifié par Boisgontierjacques le 15/10/2015 à 20:35
f894009
Messages postés
17189
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
6 mai 2024
1 705
16 oct. 2015 à 09:12
16 oct. 2015 à 09:12
Bonjour,
Vos fichiers sont des exemples impeccables pour Lea9344, mais ce qui pose probleme pour cette personne, ce n'est le moyen mais le travail a faire pour ces onglets(+de 50 formes dans certains) car tout VBA ou formules et VBA faut tapoter avec ses petits doigts!!! Y a pas de miracle, je vais regarder si possible de reduire au maximum avec tout VBA, mais restera quand-meme un minimum.
Vos fichiers sont des exemples impeccables pour Lea9344, mais ce qui pose probleme pour cette personne, ce n'est le moyen mais le travail a faire pour ces onglets(+de 50 formes dans certains) car tout VBA ou formules et VBA faut tapoter avec ses petits doigts!!! Y a pas de miracle, je vais regarder si possible de reduire au maximum avec tout VBA, mais restera quand-meme un minimum.
Bonjour Boisgontier,
En effet vos exemples sont vraiment top!
J'ai cependant quelques questions pour pouvoir les adapter à mes fichiers:
1) Est-il possible de changer la couleur du contour de la forme par une formule équivalente ?
2) Est-il possible de changer la couleur de la police contenu dans une forme par une formule équivalente ?
3) Dans mes fichiers, le rouge et le vert sont les suivant :
RGB(218, 41, 28) 'rouge
RGB(54, 101, 56) 'vert
Comment puis-je l'adapter à votre formule ?
=ColorieImage(B9;SI(TG!D3>=TG!D4;65025;SI(TG!D3>TG!D4*95%;4626167;255)))
Merci d'avance pour votre aide,
Léa
En effet vos exemples sont vraiment top!
J'ai cependant quelques questions pour pouvoir les adapter à mes fichiers:
1) Est-il possible de changer la couleur du contour de la forme par une formule équivalente ?
2) Est-il possible de changer la couleur de la police contenu dans une forme par une formule équivalente ?
3) Dans mes fichiers, le rouge et le vert sont les suivant :
RGB(218, 41, 28) 'rouge
RGB(54, 101, 56) 'vert
Comment puis-je l'adapter à votre formule ?
=ColorieImage(B9;SI(TG!D3>=TG!D4;65025;SI(TG!D3>TG!D4*95%;4626167;255)))
Merci d'avance pour votre aide,
Léa
f894009
Messages postés
17189
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
6 mai 2024
1 705
>
Lea9344
Modifié par f894009 le 16/10/2015 à 10:45
Modifié par f894009 le 16/10/2015 à 10:45
Bonjour,
couleur
RGB(218, 41, 28) 'rouge-->1845722
RGB(54, 101, 56) 'vert--->3695926
couleur
RGB(218, 41, 28) 'rouge-->1845722
RGB(54, 101, 56) 'vert--->3695926
f894009
Messages postés
17189
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
6 mai 2024
1 705
>
Lea9344
16 oct. 2015 à 10:46
16 oct. 2015 à 10:46
Re
avec du code VBA
avec du code VBA
Sub test() Set Shp = ThisWorkbook.Worksheets("2014").Shapes("Ellipse 1") Range("b2") = Shp.Fill.ForeColor Set Shp = ThisWorkbook.Worksheets("2014").Shapes("Ellipse 3") Range("b3") = Shp.Fill.ForeColor End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
f894009
Messages postés
17189
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
6 mai 2024
1 705
Modifié par f894009 le 16/10/2015 à 17:00
Modifié par f894009 le 16/10/2015 à 17:00
Re,
'Tableau de donnees et formules sur une feuille et Shapes sur une autre
'exemple de formule
'=colorieimage("2014";Ellipse 1";"ZoneTexte 1";SI(B3>=100;1845722;3695926))
'code dans un module
'Tableau de donnees et formules sur une feuille et Shapes sur une autre
'exemple de formule
'=colorieimage("2014";Ellipse 1";"ZoneTexte 1";SI(B3>=100;1845722;3695926))
'code dans un module
Function ColorieImage(feuille, s1, s2, couleur) Application.Volatile Set f = Sheets(feuille) f.Shapes(s1).Fill.ForeColor.RGB = couleur 'Elipse f.Shapes(s2).Line.ForeColor.RGB = couleur ' Contour Zone de texte f.Shapes(s2).TextFrame2.TextRange.Font.Fill.ForeColor.RGB = couleur 'Texte Zne de texte End Function
Bonjour f894009 et merci pour votre aide!
Malheureusement, je n'arrive pas à faire fonctionner votre macro, j'ai pourtant suivi à la lettre vos consignes mais cela ne fonctionne pas.
J'ai repris le document de Boisgontierjacques et ai fait quelques modifications en suivant vos indications, mais je n'arrive pas à différencier les formes rondes, des formes rectangulaires. Comment faire ?
Ci-dessous, le lien vers mon document en cours :
http://www.cjoint.com/c/EKcqxLP6Umh
Merci d'avance,
Léa
Malheureusement, je n'arrive pas à faire fonctionner votre macro, j'ai pourtant suivi à la lettre vos consignes mais cela ne fonctionne pas.
J'ai repris le document de Boisgontierjacques et ai fait quelques modifications en suivant vos indications, mais je n'arrive pas à différencier les formes rondes, des formes rectangulaires. Comment faire ?
Ci-dessous, le lien vers mon document en cours :
http://www.cjoint.com/c/EKcqxLP6Umh
Merci d'avance,
Léa
f894009
Messages postés
17189
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
6 mai 2024
1 705
>
Lea9344
2 nov. 2015 à 18:56
2 nov. 2015 à 18:56
Bonjour,
fichier modifie avec "ma macro": https://www.cjoint.com/c/EKcr3mBgvqf
Une seule formule pour les deux formes
A+
fichier modifie avec "ma macro": https://www.cjoint.com/c/EKcr3mBgvqf
Une seule formule pour les deux formes
A+
Boisgontierjacques
Messages postés
175
Date d'inscription
jeudi 19 septembre 2013
Statut
Membre
Dernière intervention
26 décembre 2018
64
Modifié par Boisgontierjacques le 16/10/2015 à 17:42
Modifié par Boisgontierjacques le 16/10/2015 à 17:42
Bonjour,
https://www.cjoint.com/c/EJqpGO1nH3W
http://boisgontierjacques.free.fr/fichiers/Images/Indic.xls
=colorieimage(B2;SI(Feuil1!B2<100;couleurcellule(rouge);couleurcellule(vert)))
Boisgontier
https://www.cjoint.com/c/EJqpGO1nH3W
http://boisgontierjacques.free.fr/fichiers/Images/Indic.xls
=colorieimage(B2;SI(Feuil1!B2<100;couleurcellule(rouge);couleurcellule(vert)))
Boisgontier
Bonjour Boisgontierjacques,
Merci pour votre retour, cela m'a permis d'avancer. Cependant, je reste toujours bloquer sur un point : comment puis-je différencier les deux types de formes :
- rondes : colorier seulement le fond de la forme
- rectangle : colorier le contour + colorier le texte de la forme
Ci-dessous, le lien vers mon document en cours :
http://www.cjoint.com/c/EKcqxLP6Umh
Bonne journée,
Léa
Merci pour votre retour, cela m'a permis d'avancer. Cependant, je reste toujours bloquer sur un point : comment puis-je différencier les deux types de formes :
- rondes : colorier seulement le fond de la forme
- rectangle : colorier le contour + colorier le texte de la forme
Ci-dessous, le lien vers mon document en cours :
http://www.cjoint.com/c/EKcqxLP6Umh
Bonne journée,
Léa
Boisgontierjacques
Messages postés
175
Date d'inscription
jeudi 19 septembre 2013
Statut
Membre
Dernière intervention
26 décembre 2018
64
Modifié par Boisgontierjacques le 2/11/2015 à 21:04
Modifié par Boisgontierjacques le 2/11/2015 à 21:04
Bonsoir,
http://boisgontierjacques.free.fr/fichiers/Images/Indic1.xls
Il faut créer 2 fonctions
=colorieRond(B4;SI(Data!B2<100;couleurcellule(rouge);couleurcellule(vert)))
=colorieRectangle(B4&"2";SI(Data!B3<0;couleurcellule(rouge);couleurcellule(vert)))
Les formules sont copiables
Function ColorieRond(s, couleur)
Application.Volatile
Set f = Sheets(Application.Caller.Parent.Name)
f.Shapes(s).Fill.ForeColor.RGB = couleur
f.Shapes(s).TextFrame2.TextRange.Font.Fill.ForeColor.RGB = vbBlack
ColorieRond = ""
End Function
Function ColorieRectangle(s, couleur)
Application.Volatile
Set f = Sheets(Application.Caller.Parent.Name)
f.Shapes(s).Fill.ForeColor.RGB = vbWhite
f.Shapes(s).TextFrame2.TextRange.Font.Fill.ForeColor.RGB = couleur
f.Shapes(s).Line.ForeColor.RGB = couleur
ColorieRectangle = ""
End Function
Function CouleurCellule(c As Range)
Application.Volatile
CouleurCellule = c.Interior.Color
End Function
Boisgontier
http://boisgontierjacques.free.fr/fichiers/Images/Indic1.xls
Il faut créer 2 fonctions
=colorieRond(B4;SI(Data!B2<100;couleurcellule(rouge);couleurcellule(vert)))
=colorieRectangle(B4&"2";SI(Data!B3<0;couleurcellule(rouge);couleurcellule(vert)))
Les formules sont copiables
Function ColorieRond(s, couleur)
Application.Volatile
Set f = Sheets(Application.Caller.Parent.Name)
f.Shapes(s).Fill.ForeColor.RGB = couleur
f.Shapes(s).TextFrame2.TextRange.Font.Fill.ForeColor.RGB = vbBlack
ColorieRond = ""
End Function
Function ColorieRectangle(s, couleur)
Application.Volatile
Set f = Sheets(Application.Caller.Parent.Name)
f.Shapes(s).Fill.ForeColor.RGB = vbWhite
f.Shapes(s).TextFrame2.TextRange.Font.Fill.ForeColor.RGB = couleur
f.Shapes(s).Line.ForeColor.RGB = couleur
ColorieRectangle = ""
End Function
Function CouleurCellule(c As Range)
Application.Volatile
CouleurCellule = c.Interior.Color
End Function
Boisgontier
14 oct. 2015 à 14:14
J'ai essyé en rajoutant "If Sheets("Feuil1").Range("A1") < 100 Then ", mais cela ne fonctionne pas. La forme se réfère toutjours à la cellule re la feuille 2 :S
14 oct. 2015 à 14:21
le code est dans le VBA de quelle feuille ????
14 oct. 2015 à 15:58
Je viens de vérifier, la formule fonctionne. Par contre, elle ne se met pas à jour automatiquement. Pour se mettre à jour il faut rentrer du texte dans une cellule de la feuille 2 et faire "entrer".
Comment faire ?
Merci d'avance! :)
14 oct. 2015 à 16:18
un peu plus bas, j'ai ecrit ceci:
Ce qu'il faudrait savoir, c'est comment change la valeur de la cellule feuil1!A1 et si la feuil2 est en permanence active ou pas !!! Donc pouvez-vous nous en ecrire plus sur le sujet