Formule ou macro

Résolu
vcloclo1 Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   -  
vcloclo1 Messages postés 493 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



--
L'esprit c'est comme un parachute, qui est utile seulement quand il est ouvert.

15 réponses

  1. Gord21 Messages postés 928 Statut Membre 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
  2. UsulArrakis Messages postés 7683 Statut Contributeur 3 196
     
    codes couleur : http://www.cijoint.fr/cjlink.php?file=cj201003/cijM8ygjZd.xls
    1
  3. vcloclo1 Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   33
     
    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
    1. Gord21 Messages postés 928 Statut Membre 289
       
      Comme ça ?
      http://www.cijoint.fr/cjlink.php?file=cj201003/cijfepJSCi.xls
      0
      1. vcloclo1 Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   33 > Gord21 Messages postés 928 Statut Membre
         
        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
    2. Gord21 Messages postés 928 Statut Membre 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
    3. vcloclo1 Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   33
       
      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
    4. vcloclo1 Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. Gord21 Messages postés 928 Statut Membre 289
       
      Salut Mike,
      Ca marche bien chez moi aussi.
      0
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  8. vcloclo1 Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   33
     
    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
  9. Gord21 Messages postés 928 Statut Membre 289
     
    Bonjour,
    Comme le signale Mike dans son post 9, est-ce que la forme s'appelle bien "Oval 1" ?
    0
  10. vcloclo1 Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   33
     
    Oui. Le code que j'ai mis est adapter marche nikel sur "Oval 1" reste plus qu'a faire pour "Oval 2".

    Merci
    0
    1. Gord21 Messages postés 928 Statut Membre 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
  11. vcloclo1 Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   33
     
    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
    1. Gord21 Messages postés 928 Statut Membre 289
       
      Bonjour,
      Dans le code de ta macro, tu écris :
      Range("A4").Value = "Type"

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

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

    0
    1. Gord21 Messages postés 928 Statut Membre 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
  14. vcloclo1 Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   33
     
    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
    1. Gord21 Messages postés 928 Statut Membre 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
  15. vcloclo1 Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   33
     
    Ok donc en fonction des forme les code couleur sont pas les meme ?

    Merci
    0
    1. Gord21 Messages postés 928 Statut Membre 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
    2. vcloclo1 Messages postés 493 Date d'inscription   Statut Membre Dernière intervention   33
       
      Ok bien compris. J'y vois plus clair maintenant.
      0