Image conditionnelle

Résolu
cs_sabrina7 Messages postés 26 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 25 mars 2007 - 7 mars 2007 à 19:13
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

8 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 mars 2007 à 19:40
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"
<!--
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 mars 2007 à 22:26
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>
0
cs_sabrina7 Messages postés 26 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 25 mars 2007 1
9 mars 2007 à 19:43
Ok je te remercie, ca marche d'enfer !!!!!!! lol
0
cs_sabrina7 Messages postés 26 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 25 mars 2007 1
10 mars 2007 à 18:54
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 !!!!!
0

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

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 mars 2007 à 19:03
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"
<!--
0
cs_sabrina7 Messages postés 26 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 25 mars 2007 1
10 mars 2007 à 19:14
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.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 mars 2007 à 19:16
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"
<!--
0
cs_sabrina7 Messages postés 26 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 25 mars 2007 1
11 mars 2007 à 14:56
Ok ca marche, merci de ton aide Mortalino !!!!!
0
Rejoignez-nous