Image conditionnelle [Résolu]

Messages postés
26
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
25 mars 2007
- - Dernière réponse : cs_sabrina7
Messages postés
26
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
25 mars 2007
- 11 mars 2007 à 14:56
Bonjour,


 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>


Je travail actuellement sur un tableau de bord sous Excel. Je voudrai en fonction d’une valeur dans une cellule, pouvoir afficher une image.


 


Si la cellule B6 = 1


Avoir dans la cellule B7 un soleil apparaît


 


Si la cellule B6 = 2


Avoir un nuage qui apparaît dans la cellule B7


 


Pour le moment mes images sont stockées sur une feuille excel. Comment je peux faire ça en VBE ou autrement.


 


Merci de votre aide
Sabrina
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
3
Merci
Bon tu vas être obligé de passer par un autre évènement, voici comment procéder :

Private Sub Worksheet_Calculate()
        Select Case Range("B6").Value
            Case 1: Shapes("Picture 1").Visible = msoTrue: Shapes("Picture
2").Visible = msoFalse
            Case 2: Shapes("Picture 2").Visible = msoTrue: Shapes("Picture
1").Visible = msoFalse
            Case Else: Shapes("Picture 1").Visible = msoFalse: Shapes("Picture
2").Visible = msoFalse
        End Select
        Select Case Range("B8").Value
            Case 1: Shapes("Picture 3").Visible = msoTrue: Shapes("Picture
4").Visible = msoFalse
            Case 2: Shapes("Picture 4").Visible = msoTrue: Shapes("Picture
3").Visible = msoFalse
            Case Else: Shapes("Picture 3").Visible = msoFalse: Shapes("Picture
4").Visible = msoFalse
        End Select
End Sub


~ <small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
Salut,

place tes images où tu voudrais qu'elles apparaissent, ouvre VB, double clique sur la bonne feuille (dans la fenêtre Projet) et place ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address =  "$B$6" Then
        Select Case Target.Value
            Case 1: Shapes("Picture 1").Visible = msoTrue: Shapes("Picture 2").Visible = msoFalse
            Case 2: Shapes("Picture 2").Visible = msoTrue: Shapes("Picture 1").Visible = msoFalse
            Case Else: Shapes("Picture 1").Visible = msoFalse: Shapes("Picture 2").Visible = msoFalse
        End Select
    End If
End Sub

~ <small> Mortalino ~ Colorisation automatique </small>

Ps : vérifie que le nom des pictures correspondent.

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Commenter la réponse de mortalino
Messages postés
26
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
25 mars 2007
0
Merci
Ok je te remercie, ca marche d'enfer !!!!!!! lol
Commenter la réponse de cs_sabrina7
Messages postés
26
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
25 mars 2007
0
Merci
J'aurai 2 autres questions :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$6" Then
        Select Case Target.Value
            Case 1: Shapes("Picture 1").Visible = msoTrue: Shapes("Picture 2").Visible = msoFalse
            Case 2: Shapes("Picture 2").Visible = msoTrue: Shapes("Picture 1").Visible = msoFalse
            Case Else: Shapes("Picture 1").Visible = msoFalse: Shapes("Picture 2").Visible = msoFalse
        End Select
    End If
End Sub

1) La valeur de la case B6 est une formule (ex: =G16+G17). Quand j'applique le code ci-dessus, cela ne marche plus.
2) Je souhaite utiliser le même bout de code dans la même feuille excel, pour un autre champ (ex : B8) avec d'autre image... Est-ce que je peux intégrer dedans, si oui ou je dois mettre le IF et si non, qu'es que je dois changer ??

Merci d'avance !!!!!
Commenter la réponse de cs_sabrina7
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
Salut,

1/ Quelle est la valeur de B6 ? (1, 2 ou autres ?)
--> Entre le If et le Select Case, place    MsgBox "~" & Target.Value & "~"
et dis moi ce qu'il y a dans le message entre les tildes (précises aussi s'il y a des espaces avec)
2/ Vu que ça doit fonctionner indépendament de l'autre, la structure sera la suivante :

    If Target.Address = "$B$6" Then
        Select Case Target.Value
            Case 1: Shapes("Picture 1").Visible = msoTrue: Shapes("Picture 2").Visible = msoFalse
            Case 2: Shapes("Picture 2").Visible = msoTrue: Shapes("Picture 1").Visible = msoFalse
            Case Else: Shapes("Picture 1").Visible = msoFalse: Shapes("Picture 2").Visible = msoFalse
        End Select

    ElseIf Target.Address = "$B$8" Then
        Select Case Target.Value
            Case 1: Shapes("Picture 3").Visible = msoTrue: Shapes("Picture 4").Visible = msoFalse
            Case 2: Shapes("Picture 4").Visible = msoTrue: Shapes("Picture 3").Visible = msoFalse
            Case Else: Shapes("Picture 3").Visible = msoFalse: Shapes("Picture 4").Visible = msoFalse
        End Select
    End If

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
Messages postés
26
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
25 mars 2007
0
Merci
En faite il y a une formule dans la case B6 qui est =N16+G44. Le msgbox affiche la valeur ~1~ sauf que c'est Picture 2 qui s'affiche et même en changeant les valeurs dans les case N16 et G44, rien n'y fait l'affiche des images conditionelles ne s'effectuent plus.

Je pense que ca vient de la formule dans la case, car quand il n'y a pas de formule, tout fonctionne correctement.
Commenter la réponse de cs_sabrina7
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
Je vais faire des tests avec des formules et te tiens au courant.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Commenter la réponse de mortalino
Messages postés
26
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
25 mars 2007
0
Merci
Ok ca marche, merci de ton aide Mortalino !!!!!
Commenter la réponse de cs_sabrina7