Manipuler les Shapes par VBA Excel.
Bonsoir a tous,
Je m'adonne à créer un rapport de performance , et pour optimiser un peu l'affichage de mon rapport je voudrais rajouter une forme automatique (Shape) sous forme d'un manométre indiquant la rentabilite (La performance) rendu.
Quelqu'un saurait comment pouvoir manipuler soit-disons la rotation d'une fléche (Shape) par VBA?
Merci et bon courage a tous les developpeurs :P.
Karimbon
Manipuler les Shapes par VBA Excel.
Je te remercie Michel pour ta réponse rapide, je viens de lancer la recherche tel que tu me l'as recommandé mais il parait que tous les résultats ont rapport avec le DELPHI et moi avec le delphi c'est :roll:
et il y a aussi des trucs genre raccordement d'internet, ce n'est malheureusement pas ce que je cherche.
Merci quand méme.
Karimbon.
1 pièce(s) jointe(s)
Manipuler les Shapes par VBA Excel.
Tu as raison Michel, je me suis contenté de la premiére page de la recherche, finalement je viens de trouver dans le lien que tu m'as donné ce que je cherchait, je te remercie enormément.
un autre truc que j'ai éssayé et cela a bel et bien marché.
Et bien la solution je l’ai , en effet après avoir fouiller dans la rubrique d’aide VBA sur les shapes Mot clé : « shape rotation » je suis tombé sur le lien suivant : Aide > Référence des modèles objet Excel > Shape, objet > Propriétés
En suite j’ai procédé comme suite :
1. Insérer la forme automatique : « Flèche en haut » qui me servira d’aiguille. (voir l'attachement).
2. Renommer ma flèche : (dans le code ci-dessous le nom de la flèche = « indice »)
3. Insérer une formule dans la cellule E73 renvoyant la performance mensuelle de mon engin [(Total Heures Opérationnelles x 100)/Total heures du mois): puis une formule condionnelle dont le critére pérformance s'y affichera selon le nombres des heures opérationnelles de mon engins : ici les la condition suivante:
Code:
=SI(E73>=80;("Excellent");SI(ET((E73>=60);(E73<80));("Good");SI(ET((E73>=29);(E73<=59));("bad");SI(ET(E73<=29;(E73<>0));("Very bad");("")))))
critères sont : « Excellent », « Good », « Bad », « Very bad ».
4. Et bien le code ci-dessous que j’ai attribué à ma feuil opérera à partir de la valeur de la cellule G73.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("g73").Value = "Excellent" Then
ActiveSheet.Shapes("indice").Rotation = 112
ElseIf Range("g73").Value = "Good" Then
ActiveSheet.Shapes("indice").Rotation = 68
ElseIf Range("g73").Value = "bad" Then
ActiveSheet.Shapes("indice").Rotation = -68
ElseIf Range("g73").Value = "Very bad" Then
ActiveSheet.Shapes("indice").Rotation = -112
ElseIf Range("g73").Value = "" Then
ActiveSheet.Shapes("indice").Rotation = 0
End If
End Sub |
Karimbon