Formule ou macro

Résolu/Fermé
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 - 26 mars 2010 à 18:50
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 - 1 avril 2010 à 08:57
Salut,

Voici un exemple pour mon problème.

Voila, j'ai dans un fichier excel créer un cercle "Ellipse" et j'ai créer une liste déroulante avec :

CHOIX 1
CHOIX 2

Je voudrai si c'est possible faire en sorte que lorsque je choisi dans la liste CHOIX 1 que le cercle devienne bleu et si c'est CHOIX 2 qu'il devienne rouge

Comment faire ?

Merci


A voir également:

15 réponses

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
26 mars 2010 à 21:49
Bonsoir,
Voici une proposition :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijU2D1k1n.xls

N'hésite pas si tu as des questions.
1
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
26 mars 2010 à 22:22
Salut,

Autre code plus basique

https://www.cjoint.com/?dAwvZadtmd
1
UsulArrakis Messages postés 7405 Date d'inscription vendredi 28 mars 2003 Statut Contributeur Dernière intervention 27 janvier 2022 3 186
29 mars 2010 à 17:02
codes couleur : http://www.cijoint.fr/cjlink.php?file=cj201003/cijM8ygjZd.xls
1
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31
26 mars 2010 à 22:41
Salut,

@ Gord21
Ton code marche mais moi je veux que le fond change de couleur, pas seulement le contour.

@ Mike-31
J'ai une erreur de débogage

Merci
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
26 mars 2010 à 22:47
Comme ça ?
http://www.cijoint.fr/cjlink.php?file=cj201003/cijfepJSCi.xls
0
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31 > Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013
27 mars 2010 à 07:54
Pour moi c'est le meme fichier, simplement le cercle change de couleur, mais pas le fond du cercle.
A moin que se soit chez moi.

Merci
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
27 mars 2010 à 09:55
Bonjour,
Peut-être comme ça :
http://www.cijoint.fr/cjlink.php?file=cj201003/cij8IUkY9d.xls
J'ai ajouté les propriétés qui sont par défaut chez moi mais qui ne sont peut-être pas les mêmes chez toi.
@+
0
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31
28 mars 2010 à 13:04
Ok, c'est ce que je vous faire. Par contre, quel est le chiffre a mettre pour la couleur noir ? Comment mettre dans le code que le choix de la liste est sur une autre feuille ?

Apres j'ai reussi plus ou moin a adapter est il manque que c'est deux chose.

Merci
0
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31
28 mars 2010 à 13:33
C'est bon, j'ai trouver les couleur, pour le noir c'est 0.

Bon l'adaptation est bonne. Derniere question, si sur une meme page j'ai un autre cercle et une autre liste comment faire pour que sa arche comme la premiere ?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
Modifié par Mike-31 le 26/03/2010 à 22:49
Re,

Bizarre, je viens de le retester sans problème

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
26 mars 2010 à 22:50
Salut Mike,
Ca marche bien chez moi aussi.
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
27 mars 2010 à 10:41
Re,
Salut Gord21,

Si le code à été recopié ou un rond redessiné il est possible que la shape ne corresponde plus à oval 1 ou ellipse 1 dans ce cas adapter le code ou renommer la shape
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
28 mars 2010 à 14:10
Re,

Il serait possible de faire une boucle, mais je pense dans ton cas rester simple et doubler le code en gras.
Soit l'autre forme est piloté par la même liste déroulante et on prend référence sur la cellule A2 soit on modifie le code.
De même pour les formes, soit on reprend le nom de création Ellipse1 etc ..., soit on renomme chaque forme et on entre le nom à la place d' Oval 1 et 4 dans le code

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Shapes("Oval 1").Select
If [A2] = "Choix1" Then
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 15
Selection.ShapeRange.Fill.Visible = msoTrue
ElseIf [A2] = "Choix2" Then
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 10
Selection.ShapeRange.Fill.Visible = msoTrue
Else
Selection.ShapeRange.Fill.Visible = msoFalse
End If

ActiveSheet.Shapes("Oval 4").Select
If [A2] = "Choix1" Then
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 3
Selection.ShapeRange.Fill.Visible = msoTrue
ElseIf [A2] = "Choix2" Then
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 6
Selection.ShapeRange.Fill.Visible = msoTrue
Else
Selection.ShapeRange.Fill.Visible = msoFalse
End If

[A2].Select
End Sub
0
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31
Modifié par vcloclo1 le 28/03/2010 à 14:45
Moi j'ai utilisé se code :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
'
' Déclaration des variables
Dim couleur As Integer
Dim option_selectionnee As String
'
' Initialisation des variables
option_selectionnee = Range("A4").Value
'
' Changement de couleur du cercle
Select Case option_selectionnee
Case "Type"
couleur = 1 '1 = blanc
Case "Echappement"
couleur = 0 '0 = noir
Case "Admission"
couleur = 30 '30 = bleu
'Couleur par default
Case Else
couleur = 1
End Select
'
With ActiveSheet.Shapes("Oval 1")
.Fill.Visible = msoTrue
.Fill.Solid
'Couleur de fond
.Fill.ForeColor.SchemeColor = couleur
.Fill.Transparency = 0#
.Line.Weight = 0.75
.Line.DashStyle = msoLineSolid
.Line.Style = msoLineSingle
.Line.Transparency = 0#
.Line.Visible = msoTrue
'Couleur de cercle
.Line.ForeColor.SchemeColor = 0
End With
'
'
End Sub

L'esprit c'est comme un parachute, qui est utile seulement quand il est ouvert.
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
28 mars 2010 à 17:05
Bonjour,
Comme le signale Mike dans son post 9, est-ce que la forme s'appelle bien "Oval 1" ?
0
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31
28 mars 2010 à 18:16
Oui. Le code que j'ai mis est adapter marche nikel sur "Oval 1" reste plus qu'a faire pour "Oval 2".

Merci
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
28 mars 2010 à 18:32
Pour le deuxième ovale, tu déclares deux nouvelles variables (par exemple couleur_2 et option_selectionnee_2) puis tu copies tout le code compris entre l'initialisation des variables et la fin du End With. Tu colles le texte copié avant le End Sub et tu remplaces dans le texte copié couleur par couleur_2, option_selectionnee par option_selectionnee_2, Oval 1 par Oval 2. Penses à adapter la cellule source (A4).
0
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31
28 mars 2010 à 20:32
Ok, tous fonctionne comme je le désiré.

Par contre, j'ai créer un bouton "Remise à zero" que dois je mettre comme macro pour que sa me mette par defaut le choix "Type" dans la case "A4" puis par exemple les cases A10,B10,C10 (c'est un exemple)

Merci
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
29 mars 2010 à 12:14
Bonjour,
Dans le code de ta macro, tu écris :
Range("A4").Value = "Type"

Idem pour les autres cellules.
@+
0
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31
29 mars 2010 à 13:29
Ok, tous marche nikel.

Vu que j'y suis, et sa peu servir pour plus tard, ou peu t'ont trouver les correspondance de toutes les couleurs en macro ?

Genre "0" pour le noir, "1" pour le blanc, etc...

Merci
0
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31
29 mars 2010 à 18:15
Merci ;-)

Par contre, moi le 30 sa correspond avec celui de ton fichier.

0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
29 mars 2010 à 21:04
Bonsoir,
Tu dois copier le code proposé par UsulArrakis dans ton classeur et lancer la macro. La palette est liées à ton classeur, certaines couleurs de ton classeur peuvent correspondre à celui de UsulArrakis mais ce n'est pas systématique. Tu peux adapter ta palette à ton besoin à l'aide de la fonction RGB en macro ou manuellement.
0
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31
30 mars 2010 à 10:20
Je me suis mal expliquer, se que je voulais dire, c'est que moi dans ma macro, le 30 me donne une couleur bleu alors que sur se tableau sa donne un rouge foncé.
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
30 mars 2010 à 12:53
Bonjour,
Oui les codes couleurs ne sont pas les mêmes en fonction des objets. Pour les formes, utilise plutôt ce code :
Sub PaletteCouleur2()
Dim Couleur As Long
Dim rectangle As Shape
   Application.ScreenUpdating = False
   Cells(1, 3).Value = "Couleur"
   Cells(1, 4).Value = "Code Couleur"
For Couleur = 1 To 56
   Set rectangle = ActiveSheet.Shapes.AddShape(msoShapeRectangle, Cells(1 + Couleur, 3).Left, Cells(1 + Couleur, 3).Top, Cells(1 + Couleur, 3).Width, Cells(1 + Couleur, 3).Height)
   rectangle.Fill.ForeColor.SchemeColor = Couleur
   rectangle.Line.Visible = msoFalse
   Cells(1 + Couleur, 4).Value = Couleur
Next
   Application.ScreenUpdating = True
End Sub
0
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31
31 mars 2010 à 19:11
Ok donc en fonction des forme les code couleur sont pas les meme ?

Merci
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
31 mars 2010 à 22:27
Bonsoir,
Oui, mais juste une précision, c'est seulement en fonction des objets (cellules ou formes). Pour deux formes différentes (cercle, rectangle, ...) les codes sont les mêmes.
C'est bizarre mais je n'ai pas d'explication.
0
vcloclo1 Messages postés 489 Date d'inscription jeudi 1 janvier 2009 Statut Membre Dernière intervention 13 octobre 2024 31
1 avril 2010 à 08:57
Ok bien compris. J'y vois plus clair maintenant.
0