Afficher image selon résultat d'une cellule

Résolu/Fermé
david44 Messages postés 4 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 29 février 2008 - 28 févr. 2008 à 17:39
david44 Messages postés 4 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 29 février 2008 - 29 févr. 2008 à 09:55
Bonjour,
voilà je ne sais pas si on pourra m'aider après plusieurs tests je m'en remet à vous..
J'aimerais effectuer l'affichage d'une image dans une feuille Excel selon le résultat d'une cellule (contenant une formule de calcul de %)
Aussi voilà le problème G une cellule "K6" qui calcule le % de 2 autres cellules (placées au dessus)
Selon le résultat obtenu, je désire afficher une image :
orage -> lorsque le résultat est < à 50 %
nuageux -> lorsque le résultat est < à 70 % et >=50 %
couvert -> lorsque le résultat est < à 90 % et >=70 %
soleil -> lorsque le résultat est >= à 90 %

Voilà mon code mais lorsque je tente de mettre de nouvelles conditions pour prendre en compte les autres tranches de test --> il m'affiche toujours le soleil. J'ai bien essayé avec EvenIf ou encore mettre plusieurs conditons If imbriquées mais rien à faire
Aussi voilà le code qui marche mais avec seulement une condition :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim objFeuille As Worksheet, objPict As Picture

If Worksheets("Feuil2").Range("K6").Value > 90 Then
Set objFeuille = ActiveSheet
Set objPict = objFeuille.Pictures.Insert("C:\Documents and Settings\xxxx\Bureau\soleil.bmp")
With objPict
.Left = Range("G2").Left
.Top = Range("G2").Top
End With
Else
Set objFeuille = ActiveSheet
Set objPict = objFeuille.Pictures.Insert("C:\Documents and Settings\xxxx\Bureau\orage.bmp")
With objPict
.Left = Range("G2").Left
.Top = Range("G2").Top
End With
End If
End Sub

Si quelqu'un peut m'aider je ne le remercierais jamais assez !!
A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 févr. 2008 à 19:29

Erreur, désolé
0
david44 Messages postés 4 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 29 février 2008
29 févr. 2008 à 09:53
Pour Info avec l'aide d'un gars super doué Nommé Maximin vlà un code que marche au poil :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

' déclaration des variables
Dim objFeuille As Worksheet, objPict As Picture
Dim fichier As String
Dim positionX As String
Dim positionY As String

' définition des objets
Set objFeuille = ActiveSheet

' définition de la position et de l'image en fonction de la valeur
If Worksheets("Feuil2").Range("K6").Value < 0.5 Then
fichier = "C:\Documents and Settings\xxxx\Bureau\orage.bmp"
positionX = "L10"
positionY = "L10"
ElseIf Worksheets("Feuil2").Range("K6").Value >= 0.5 And Worksheets("Feuil2").Range("K6").Value < 0.7 Then
fichier = "C:\Documents and Settings\xxxx\Bureau\nuageux.bmp"
positionX = "L10"
positionY = "L10"
ElseIf Worksheets("Feuil2").Range("K6").Value >= 0.7 And Worksheets("Feuil2").Range("K6").Value < 0.9 Then
fichier = "C:\Documents and Settings\xxxxx\Bureau\couvert.bmp"
positionX = "L10"
positionY = "L10"
ElseIf Worksheets("Feuil2").Range("K6").Value >= 0.9 Then
fichier = "C:\Documents and Settings\xxxxx\Bureau\soleil.bmp"
positionX = "L10"
positionY = "L10"
End If

' positionnement de l'objet
Set objPict = objFeuille.Pictures.Insert(fichier)
With objPict
.Left = Range(positionX).Left
.Top = Range(positionY).Top
End With

End Sub
0
david44 Messages postés 4 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 29 février 2008
29 févr. 2008 à 09:54
cf message précédent désolé J'ai oublié de cocher problème résolu !!

@+
0
david44 Messages postés 4 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 29 février 2008
29 févr. 2008 à 09:55
cf message précédent désolé J'ai oublié de cocher problème résolu !!
arf encore
@+
0