cs_sabrina7
Messages postés26Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention25 mars 2007
-
7 mars 2007 à 19:13
cs_sabrina7
Messages postés26Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention25 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.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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
cs_sabrina7
Messages postés26Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention25 mars 20071 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 !!!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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"
<!--
cs_sabrina7
Messages postés26Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention25 mars 20071 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.