Afficher image en fonction du résultat d'une cellule

Bonjour à tous,

Je suis pas un expert en excel et ai besoin de votre aide.

J'aimerais, pour simple, qu'une flèche indique le niveau de consommation qui correspond à la note énergétique de cette consommation (vous savez, la fameuse étiquette présent sur tous les élements électriques).

En gros, si la machine indiqué consomme moins de 50 et que sa note est A, j'aimerais qu'une flèche indique sur le schéma le niveau A et ainsi de suite.

Comment puis-je faire ?

Merci d'avance.

93test.zip (19.63 Ko)

J'ai trouvé cela mais n'arrive pas à l'appliquer à mon cas :s

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$2" And Target.Count = 1 Then

On Error Resume Next

ActiveSheet.Shapes("monimage").Delete

On Error GoTo 0

If Target <> "" Then

Sheets("Images").Shapes(Target).Copy

Target.Offset(0, 2).Select

ActiveSheet.Paste

Selection.Name = "monImage"

Selection.ShapeRange.Left = ActiveCell.Left

Selection.ShapeRange.Top = ActiveCell.Top

Target.Select

End If

End If

End Sub

bonjour

une solution possible, on masque les flèches à travers une boucle et on fait juste apparaitre la flèche correspondante.

voir pièce jointe.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Byte

'si ce n'est pas la cellule cible on sort
If Target.Address(0, 0) <> "B1" Then Exit Sub

'on boucle sur chaque controle pour les rendre invisible
For i = 2 To 8
    ActiveSheet.Shapes.Range(Array("Right Arrow " & i)).Visible = False
Next i

'suivant la valeur de la cellule cible on initialise la variable i
Select Case Target
    Case Is < 50: i = 2
    Case 51 To 90: i = 3
    Case 91 To 151: i = 4
    Case 152 To 230: i = 5
    Case 231 To 330: i = 6
    Case 331 To 451: i = 7
    Case Is > 451: i = 8
End Select
'on rend visible le shapes correspondant
ActiveSheet.Shapes.Range(Array("Right Arrow " & i)).Visible = True
End Sub

a plus

118test.zip (26.32 Ko)

Merci c'est exactement ce que je voulais obtenir.

Malheureusement, lorsque je change la valeur B1, j'obtiens une erreur d'exécution de type 1004 : l'élément portant ce nom est introuvable.

Et lorsque je fais débogage, cette ligne est surligné en jaune : ActiveSheet.Shapes.Range(Array("Right Arrow " & i)).Visible = False

EDIT 1 : j'ai réussi à supprimer le débogage mais du coup la fléchèe affiché reste toujours la même

PS. Je vais être pénible mais dans la démarche, tu as bien mis 7 flèches, dans des cellules quelconques, que tu as renommé ?

salut

le bug viens du nom des shapes (right arrow), je suis sur une version anglaise d'excel, il faut que tu les renommes tel que sur ton fichier original

je n'ai pas renommé les shapes de ton fichier.

pour avoir le nom précis, lance un enregistreur de macro, et déplace une flèche, regarde le code généré.

a plus

edit : chez toi ça doit être ceci : ActiveSheet.Shapes.Range(Array("Flèche droite " & i)).Visible....

Yes

J'y avais pensé mais du coup c'était les i correspond aux numéros des flèches qui n'allait plus

Merci beaucoup

Juste pour mon information personnelle, qu'est ce que cela signifie cela : If Target.Address(0, 0) <> "B1" Then Exit Sub

Merci encore

EDIT 1 : ah oui et le fait que le dernier active.sheet n'avait pas la même tabulation que le 1er posais également un petit soucis

re

[quote=

EDIT 1 : ah oui et le fait que le dernier active.sheet n'avait pas la même tabulation que le 1er posais également un petit soucis [/quote]

oui, on fournit un code qui fonctionne dans un cadre précis, il faut ensuite l'adapter à ton environnement

le target.bidulmachin....

on veux que le code ne se déclenche que si la cellule B1 est modifiée, ceci évite d'avoir un code qui tourne pour rien.

comme nous sommes dans une macro évènementielle, toutes les cellules de la feuille peuvent déclencher celle ci

on teste donc l'adresse de la cellule (target) qui à déclencher. si l'adresse de la cellule est différent de B1 on sort du code

le (0,0) permet d'avoir l'adresse sous la forme la plus simple, tu peux tester ceci :

msgbox range("a1").address & "/" & range("a1").address(0,0) & "/" & range("a1").address(0,1)

a plus

Merci de ces explications et de vos compétences

Problème résolu

Rechercher des sujets similaires à "afficher image fonction resultat"