FORUM Tom's Hardware » Programmation » VB / VBA / VBS » problème code vba pour jauge verticale
 

problème code vba pour jauge verticale

Il y a 405 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : problème code vba pour jauge verticale
 
Plus d'informations

Bonjour,

Je dois réaliser une jauge verticale pour un tableau de bord.
J'ai le code vba de l'ouvrage d'Alain Fernandez (l'essentiel du tableau de bord) mais je voudrais le modifier mais je n'y arrive pas.

Ce que je voudrais :
- avoir une cellule valeur qui permet de mettre à jour la jauge à la place d'un scrollbar
- mettre la jauge dans la feuil2 par exemple et les données dans la feuil1

Merci par avance

Code :
  1. Private Sub ScrollBar1_Change()
  2. seuilbas = Range("J6" ).Value    'lit la valeur du seuil bas en H12
  3. seuilhaut = Range("J7" ).Value  'lit la valeur du seuil haut en H13
  4. objectif = Range("J8" ).Value  'lit la valeur de l'objectif
  5. Call jaugeV(seuilbas, seuilhaut, ScrollBar1.Value, objectif)
  6. End Sub
  7. '****************************
  8. ' jauge vertical avec seuils
  9. ' 4 arguments d'entrée : les seuils, la mesure et l'objectif
  10. '****************************
  11. ' La couleur rouge "danger" est définie en deça du seuil bas.
  12. ' Pour la positionner au dessus du seuil haut inverser avec la couleur verte
  13. Sub jaugeV(seuilbas, seuilhaut, mesure, objectif)
  14. Max = 100 ' Affichage en %
  15. If seuilhaut > Max Then seuilhaut = Max  'prévient les erreurs
  16. If seuilbas > Max Then seuilbas = Max ' ""
  17. If mesure > Max Then mesure = Max ' ""
  18. mercure1.Height = (Tube1.Height / Max * mesure) ' Calcul la hauteur de mercure
  19. mercure1.Top = Tube1.Top + Tube1.Height - mercure1.Height - 1
  20. limite1.Height = (Tube1.Height / Max * objectif) ' Calcul la hauteur de l'indicateur d'objectif
  21. limite1.Top = Tube1.Top + Tube1.Height - limite1.Height - 1
  22. If mesure < seuilbas Then mercure1.BackColor = RGB(255, 0, 0)  'affiche en rouge (passer en vert le cas échéant)
  23. If mesure >= seuilbas And mesure < seuilhaut Then mercure1.BackColor = RGB(250, 250, 0) 'affiche en jaune
  24. If mesure >= seuilhaut Then mercure1.BackColor = RGB(0, 255, 0) 'affiche en vert (passer en rouge le cas échéant)
  25. mesure1.Caption = mesure  'affiche la valeur de la mesure
  26. If mesure >= objectif Then
  27.     mesure1.Font.Bold = True  'l'objectif est atteint, affiche la valeur en gras
  28.     mesure1.Font.Size = 12
  29. Else
  30.     mesure1.Font.Bold = False
  31.     mesure1.Font.Size = 10
  32. End If
  33. objectif1.Caption = objectif
  34. End Sub

zeb
Profil : Modérateur libre
Plus d'informations

>> seuilbas = Range("J6" ).Value 'lit la valeur du seuil bas en H12
C'est quoi ce foutage de gueule ?


Si tu as plusieurs feuilles, il faut explicitement les désigner quand tu fais référence à une cellule :

Code :
  1. seuilbas = Range("H12" ).Value    'lit la valeur du seuil bas en H12
  2. seuilbas = Wordksheet("Feuil1" ).Range("H12" ).Value    'lit la valeur du seuil bas en Feuille1, H12



Si ton code fait référence à une scrollbar, (ScrollBar1_Change(), ScrollBar1.Value) et que tu n'en veux pas, il faut sans doute changer certaines choses, je te l'accorde. Réfléchis un peu et reviens avec une solution, même bancale. On t'aidera.


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

c'est bon j'ai réussi.

merci


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » VB / VBA / VBS » problème code vba pour jauge verticale
 

Annonces Google
Publicité