• Initiateur de la discussion Initiateur de la discussion desatan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

desatan

XLDnaute Occasionnel
Bonjour à tous,

Je voudrais savoir si il est possible d'automatiser des flèches ?

Par exemple, si en A1=+5%, en B1=-10%

Je voudrais qu'un flèche fasse référence à A1 et donc qu'elle monte et soit de couleur verte et une autre flèche sur B1 en rouge et vers le bas ?

Les valeurs A1 et B1 sont amenés à changer régulièrement.

Merci par avance
 
Re : Flèche automatique

bonjour,

Code:
If Sheets("feuil2").Range("A2") = 0 Then Sheets("feuil1").Shapes("Flèche vers le bas 2").Visible = False

Pour mettre le critère sur une autre feuille il faut indiquer la feuille puis la cellule. Dans ce cas: Si la feuille2, cellule A2 =0 alors la forme "nom" de la feuille 1 ne sera pas visible. Par contre, si par la suite tu modifie les nom des onglets, il faudra aussi les renommer dans le code.

cordialement
 

Pièces jointes

Re : Flèche automatique

A4L9, j'essaye de reproduire ce que tu as fait mais je n'y arrive pas :-(

J'ai mis le code dans mon fichier, j'ai adapté les noms de feuilles et les cellules mais comment dire à ma forme automatique d'appliquer ce code ?
Quand je fais affecter macro ca ne fonctionne pas ?
MErci par avance
 
Re : Flèche automatique

re,

ou as tu placé le code? il faut de la mettre dans la feuille ou les flèche doivent apparaitre et non dans un module. Si tu as créé des flèches dans ton dossier, il faut également changer le nom de la forme. Lorsque tu sélectionne une forme son nom apparait en haut à gauche. Dans le fichier que j'ai envoyé il s'agissait des flèches 2,3,4 et 5. Mais dans ton fichier il peut s'agir des 6,7 et 8 par exemple.
Si je ne suis pas clair n'hésite pas à me le dire^^

de plus, affecter une macro à un objet créé un bouton. Cela signifie que pour que la macro se fasse, il faut d'abord cliquer sur le bouton pour la déclencher. Dans le fichier transmis, le code si situe dans la feuille ou se trouve les flèches, avec "worsheet" et "activate" de sélectionner dans les listes déroulante en haut de la fenêtre vba. Ce qui signifie que la macro s'exécute lors de l'activation (sélection) de la feuille.

si tu le souhaite je peut regarder directement sur ton fichier

cordialement
 
Dernière édition:
Re : Flèche automatique

Arf c'est effectivement le nom de la forme que je n'avais pas vu.
J'ai refait mais la forme rest noire :-( et je n'arrive pas à la placer là où je veux :-(
Je ne peux pas t'envoyer mon doc, c'est professionnel.
Merci pour ton aide
 
Re : Flèche automatique

Dans le fichier envoyé il y a quatre flèches: 2 vertes vert le haut et 2 rouges vers le bas. La couleur n'as pas été définie par la macro mais directement dans la mise en forme de la forme. Si tu n'as pas gérer la couleur avant c'est normal qu'elle ne change pas. Pour le placement, dans le code il y a les lignes avec left et top. Elles donnent la position des flèches. En modifiant la valeur tu peut changer le placement. Ce code n'est pas obligatoire mais permet d'afficher les formes au même endroit même si elles ont été préalablement déplacée.

je vais voir pour un code plus simple à adapter
 
Re : Flèche automatique

Oui seulement deux sont apparentes, car la rouge disparait et la verte s'affiche si A2 est positif et vice versa. De même que les deux disparaissent si le résultat est 0 ou s'il n'y a rien dans la cellule.

peut tu m'indiquer le nom des onglets que tu utilise? que je les intègre dans le code.
 
Re : Flèche automatique

re,

je te propose le mode opératoire suivant:

- dans ta feuille "synthèse 1", créé deux flèches vers le bas et deux flèches vers le haut
- met tes deux flèches vers le bas en rouge et celles vers le haut en vert avec la mise en forme d'objet
- dans la fenêtre vba, sélectionne la feuille "synthèse 1" et colle le code ci dessous
- modifie les cellules pour ton classeur, et indique les numéros des flèches au lieu des ??? que j'ai mis
- pour l'instant le position des flèches est restée en haut à gauche avec les données du code mais cela pourra se modifier facilement une fois que ça fonctionnera 😉

peut être à tu déjà fait la manip mais comme je n'ai pas ton classeur ce n'est pas facile de se rendre compte.



Code:
Private Sub Worksheet_Activate()


'désactive le rafraichissement de l'écran
Application.ScreenUpdating = False

'masquer les flèches si le résultat est nul ou inexistant

                                                                 ' numéro des flèches à indiquer au lieu des ???
If Sheets("données").Range("A2") = 0 Then Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Visible = False
If Sheets("données").Range("A2") = 0 Then Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Visible = False

If Sheets("données").Range("A2") = "" Then Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Visible = False
If Sheets("données").Range("A2") = "" Then Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Visible = False

If Sheets("données").Range("B2") = 0 Then Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Visible = False
If Sheets("données").Range("B2") = 0 Then Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Visible = False

If Sheets("données").Range("B2") = "" Then Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Visible = False
If Sheets("données").Range("B2") = "" Then Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Visible = False

'si A2 est négatif la flèche rouge apparait
    If Sheets("données").Range("A2") < 0 Then Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Visible = False
    If Sheets("données").Range("A2") < 0 Then Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Visible = True

'position de la flèche à son apparition
        Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Top = 80
        Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Left = 15

'si A2 est positif la flèche verte apparait
    If Sheets("données").Range("A2") > 0 Then Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Visible = True
    If Sheets("données").Range("A2") > 0 Then Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Visible = False

'position de la flèche à son apparition
        Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Top = 80
        Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Left = 15
        
'si B2 est négatif la flèche rouge apparait
    If Sheets("données").Range("B2") < 0 Then Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Visible = False
    If Sheets("données").Range("B2") < 0 Then Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Visible = True
    
'position de la flèche à son apparition
        Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Top = 80
        Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Left = 75
        
'si B2 est positif la flèche verte apparait
    If Sheets("données").Range("B2") > 0 Then Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Visible = True
    If Sheets("données").Range("B2") > 0 Then Sheets("Synthèse1").Shapes("Flèche vers le bas ???").Visible = False
    
'position de la flèche à son apparition
        Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Top = 80
        Sheets("Synthèse1").Shapes("Flèche vers le haut ???").Left = 75
        
'active le rafraichissement de l'écran
Application.ScreenUpdating = True

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
665
W
  • Question Question
Microsoft 365 MFC dans tableau
Réponses
2
Affichages
361
Réponses
2
Affichages
607
Retour