Apparition de flèches Excel

Quintino38 Messages postés 3 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 17 juillet 2008 - 16 juil. 2008 à 12:06
Quintino38 Messages postés 3 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 17 juillet 2008 - 17 juil. 2008 à 10:08
Bonjour,

Je suis (quasi) novice en programmation et je souhaiterais savoir si et comment il est possible de faire apparaïtre différentes flèches enfonction de certaines valeur.

Plus précisément:

si la valeur de la cellule C21 est inférieuire à -1%, alors une flèche verte orientée vers le bas apparaît.
si cette valeur est comprise entre -1% et 1%. alors une flèche orange orientée vers la droite apparaît. si cette valeur est supérieure à 1% alors, une flèche rouge apparaît, orientée vers le haut.

Comment dois-je procéder pour parvenir à ce résultat?

Merci beaucoup de votre aide

7 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
16 juil. 2008 à 15:17
Salut,

une idée en passant, tu crées 3 images (menu Insertion).
et dans l'évènement Worksheet_Change

If Target.Address = "$C$21" then
    Select Case Target.Value        Case Is < -1: Shapes("Image 1").Visible True: Shapes("Image 2").Visible False: Shapes("Image 3").Visible = False        Case -1 To 1: Shapes("Image 1").Visible False: Shapes("Image 2").Visible True: Shapes("Image 3").Visible = False        Case Else: Shapes("Image 1").Visible False: Shapes("Image 2").Visible False: Shapes("Image 3").Visible = True
    End Select
End If

@++

le mystérieux chevalier,"Provençal, le gaulois"
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
16 juil. 2008 à 15:24
Une simple formule =SI avec 3 critères suffit.
En fonction de tes conditions, tu fais apparaître un des 3 caractères suivants : é, ê, è
Il te suffit ensuite de passer le format de la cellule à la police Wingdings (standard avec Windows) pour avoir tes flèches.

Sinon, sans jouer avec les flèches, mais avec un code couleur sur ta cellule, une simple Mise en forme conditionnelle suffit (Menu Format\Mise en forme conditionnelle).

Molenn
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
16 juil. 2008 à 15:25
Bouh Mortalino !! Surtout pas de code VBA pour faire ça ... Bouuuuuuuuuuh
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 juil. 2008 à 15:35
Lol, salut Molenn

Bah tu me connais, suis très habitué au VBA, et moins avec les formules.
En tout cas, je viens de tester ta soluce, c'est pas mal cette bidouille avec la police d'écriture, bien pensé

@++

le mystérieux chevalier,"Provençal, le gaulois"
0

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

Posez votre question
Quintino38 Messages postés 3 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 17 juillet 2008
17 juil. 2008 à 08:53
Bonjour,

Effectivement la mise en forme conditionnelle est très astucieuse, d'autant plus que l'on peut la croiser avec la formule avec les flèches: genre rouge/vert.
Par contre j'ai un léger problème pour mettre les trois conditions:
J'ai ainsi inscrit: SI(C21<5%;"é"), et mis en wingdings
Comment fait-on pour compléter la formule avec les 2 autres conditions?

Mortalino, ta solution me paraît excellente, mais j'aimerai savoir comment je dois faire pour accéder 1) à l'événement worksheet_change et 2) au nom de mes images. Cela me permettrai d'utiliser des symbôles plus travaillé, comme des panneaux "Attention danger"

Par pur hasard, connaîtriez-vous la transcription de ces astuces sous openoffice -mon travail doit être aux deux formats-?

Merci beaucoup
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
17 juil. 2008 à 09:05
Il ne faut pas inscrire dans ta formule SI(C21<5% ... parce qu'Excel ne le comprend pas. Le pourcentage n'est qu'un mode d'affichage. Mais bohn, il suffit de savoir que 5%, c'est 0,05

Ta formule devient donc, pour reprendre ton énoncé de départ :
=SI(C21<-0,1;"é";SI(C21<0,1;"ê";"è"))

Pour répondre à une question adressée à Mortalino, pour accéder à worksheet_change, il faut aller dans l'éditeur VB (taper alt+F11 dans EXCEL)

Molenn
0
Quintino38 Messages postés 3 Date d'inscription mercredi 16 juillet 2008 Statut Membre Dernière intervention 17 juillet 2008
17 juil. 2008 à 10:08
Je suis allé sous VBA (par alt+ F11)
J'ai sélectionné "worksheet", puis "change" à la place de "selection_change", j'ai copié-collé le code ci-dessus, mais malheureusement rien ne se passe.
Apparemment le nom de mes images est respectivement "Forme automatique 30" pour le panneau attention; "Forme automatique 29" pour la flèche vers le bas et "Forme automatique 28" pour la flèche vers le haut.
Cela donne (pour la case G20, si G20<3% alors flèche vers le bas, si -3%<G20<3%, panneau attention et si G20>3% alors flèche vers le haut):

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$20" Then
Select Case Target.Value
Case Is < -0.03: Shapes("TableaudeBord_Formeautomatique29").Visible True: Shapes("TableaudeBord_Formeautomatique30").Visible False: Shapes("TableaudeBord_Formeautomatique28").Visible = False
Case -0.03 To 0.03: Shapes("TableaudeBord_Formeautomatique29").Visible False: Shapes("TableaudeBord_Formeautomatique30").Visible True: Shapes("TableaudeBord_Formeautomatique28").Visible = False
Case Else: Shapes("TableaudeBord_Formeautomatique29").Visible False: Shapes("TableaudeBord_Formeautomatique30").Visible False: Shapes("TableaudeBord_Formeautomatique28").Visible = True
End Select
End If
End Sub
0
Rejoignez-nous