Formule ou macro

Résolu
vcloclo1 Messages postés 501 Date d'inscription   Statut Membre Dernière intervention   -  
vcloclo1 Messages postés 501 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   289
 
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 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

Autre code plus basique

https://www.cjoint.com/?dAwvZadtmd
1
UsulArrakis Messages postés 7405 Date d'inscription   Statut Contributeur Dernière intervention   3 190
 
codes couleur : http://www.cijoint.fr/cjlink.php?file=cj201003/cijM8ygjZd.xls
1
vcloclo1 Messages postés 501 Date d'inscription   Statut Membre Dernière intervention   32
 
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   Statut Membre Dernière intervention   289
 
Comme ça ?
http://www.cijoint.fr/cjlink.php?file=cj201003/cijfepJSCi.xls
0
vcloclo1 Messages postés 501 Date d'inscription   Statut Membre Dernière intervention   32 > Gord21 Messages postés 918 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   289
 
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 501 Date d'inscription   Statut Membre Dernière intervention   32
 
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 501 Date d'inscription   Statut Membre Dernière intervention   32
 
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 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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   Statut Membre Dernière intervention   289
 
Salut Mike,
Ca marche bien chez moi aussi.
0
Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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 501 Date d'inscription   Statut Membre Dernière intervention   32
 
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   Statut Membre Dernière intervention   289
 
Bonjour,
Comme le signale Mike dans son post 9, est-ce que la forme s'appelle bien "Oval 1" ?
0
vcloclo1 Messages postés 501 Date d'inscription   Statut Membre Dernière intervention   32
 
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   Statut Membre Dernière intervention   289
 
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 501 Date d'inscription   Statut Membre Dernière intervention   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   Statut Membre Dernière intervention   289
 
Bonjour,
Dans le code de ta macro, tu écris :
Range("A4").Value = "Type"

Idem pour les autres cellules.
@+
0
vcloclo1 Messages postés 501 Date d'inscription   Statut Membre Dernière intervention   32
 
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 501 Date d'inscription   Statut Membre Dernière intervention   32
 
Merci ;-)

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

0
Gord21 Messages postés 918 Date d'inscription   Statut Membre Dernière intervention   289
 
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 501 Date d'inscription   Statut Membre Dernière intervention   32
 
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   Statut Membre Dernière intervention   289
 
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 501 Date d'inscription   Statut Membre Dernière intervention   32
 
Ok donc en fonction des forme les code couleur sont pas les meme ?

Merci
0
Gord21 Messages postés 918 Date d'inscription   Statut Membre Dernière intervention   289
 
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 501 Date d'inscription   Statut Membre Dernière intervention   32
 
Ok bien compris. J'y vois plus clair maintenant.
0