Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

(vba) jauge !

11 réponses
Avatar
j-pascal
Bonjour,

Dans un UF, j'ai 1 TextBox qui m'indique une valeur en Mo (cette valeur est
issue d'une variable "toto").
J'aimerais utiliser une "jauge" (verticale) dont la limite supérieure serait
100 Mo.
Dans la boite à outils, je trouve "LEDMeter" qui pourrait peut-être convenir
(??), mais j'ignore comment l'utiliser !

Merci d'avance pour vos lumières (et bon we),

JP

10 réponses

1 2
Avatar
Mishell
Bonjour.
Le contrôle ScrollBar me semble mieux adapté à ta demande.

MiShell


"j-pascal" wrote in message
news:%
Bonjour,

Dans un UF, j'ai 1 TextBox qui m'indique une valeur en Mo (cette valeur
est issue d'une variable "toto").
J'aimerais utiliser une "jauge" (verticale) dont la limite supérieure
serait 100 Mo.
Dans la boite à outils, je trouve "LEDMeter" qui pourrait peut-être
convenir (??), mais j'ignore comment l'utiliser !

Merci d'avance pour vos lumières (et bon we),

JP


Avatar
dunkelzahn
On 9 nov, 23:49, "j-pascal" wrote:
Bonjour,

Dans un UF, j'ai 1 TextBox qui m'indique une valeur en Mo (cette valeur e st
issue d'une variable "toto").
J'aimerais utiliser une "jauge" (verticale) dont la limite supérieure s erait
100 Mo.
Dans la boite à outils, je trouve "LEDMeter" qui pourrait peut-être c onvenir
(??), mais j'ignore comment l'utiliser !

Merci d'avance pour vos lumières (et bon we),

JP


Bonjour,

A ajouter dans la boite à outils le Progess Bar. Dans la fenêtre VBA
(ALT+F11), Menu Contrôles supplémentaires, puis tu cherches 'Microsoft
ProgressBar Control, version 6'.
La progress bar s'ajoute dans la fenêtre des composants. Il suffit
juste après de modifier la propriété Orientation en
ccOrientationVertical

Avatar
j-pascal
Bonjour,

Je me suis mal exprimé !
Le ScrollBar serati utile pour effectuer un réglage (fixer le nombre Max de
Mo par ex.).
La jauge dont je parle doit m'indiquer la valeur de ma variable (actuelle)
en fonction d'une valeur max (genre jauge d'essence : capacité max du
réservoir et carburant actuel) ...

@+

JP

"Mishell" a écrit dans le message de news:

Bonjour.
Le contrôle ScrollBar me semble mieux adapté à ta demande.

MiShell


"j-pascal" wrote in message
news:%
Bonjour,

Dans un UF, j'ai 1 TextBox qui m'indique une valeur en Mo (cette valeur
est issue d'une variable "toto").
J'aimerais utiliser une "jauge" (verticale) dont la limite supérieure
serait 100 Mo.
Dans la boite à outils, je trouve "LEDMeter" qui pourrait peut-être
convenir (??), mais j'ignore comment l'utiliser !

Merci d'avance pour vos lumières (et bon we),

JP






Avatar
Modeste
Bonsour® j-pascal avec ferveur ;o))) vous nous disiez :

La jauge dont je parle doit m'indiquer la valeur de ma variable
(actuelle) en fonction d'une valeur max (genre jauge d'essence :
capacité max du réservoir et carburant actuel) ...


http://www.andypope.info/vba/pmeter.htm

--
@+
;o)))

Avatar
j-pascal
Bonjour,


Dans un UF, j'ai 1 TextBox qui m'indique une valeur en Mo (cette valeur
est
issue d'une variable "toto").
J'aimerais utiliser une "jauge" (verticale) dont la limite supérieure
serait
100 Mo.


Bonjour,

A ajouter dans la boite à outils le Progess Bar. Dans la fenêtre VBA
(ALT+F11), Menu Contrôles supplémentaires, puis tu cherches 'Microsoft
ProgressBar Control, version 6'.
La progress bar s'ajoute dans la fenêtre des composants. Il suffit
juste après de modifier la propriété Orientation en
ccOrientationVertical

J'ai fait tout cela.
Pour l'instant, j'ai ceci :
'-------------------
Private Sub UserForm_Initialize()
With Me.ProgressBar1
.Min = 0
.Max = 5000
.Value = [a1].Value
End With
End Sub
'-------------------

C'est un début ;-)
Puis-je afficher au dessus de ladite barre (elle est horizontale), la valeur
Min, la valeur Max et éventuellement la valeur actuelle de ma cellele A1
(ie) ?

@+ ?

JP

Avatar
j-pascal
J'oubliais ...

Si je veux mettre 10 rectangles dans la ProgressBar (histoire que chaque
"rectangle" corresponde à 10% ...) ça "grossit" aussi le UF !
Peut-on régler le nombre de "division" pour une taille constante ?
@+

JP

"dunkelzahn" a écrit dans le message de
news:
On 9 nov, 23:49, "j-pascal" wrote:
Bonjour,

Dans un UF, j'ai 1 TextBox qui m'indique une valeur en Mo (cette valeur
est
issue d'une variable "toto").
J'aimerais utiliser une "jauge" (verticale) dont la limite supérieure
serait
100 Mo.
Dans la boite à outils, je trouve "LEDMeter" qui pourrait peut-être
convenir
(??), mais j'ignore comment l'utiliser !

Merci d'avance pour vos lumières (et bon we),

JP


Bonjour,

A ajouter dans la boite à outils le Progess Bar. Dans la fenêtre VBA
(ALT+F11), Menu Contrôles supplémentaires, puis tu cherches 'Microsoft
ProgressBar Control, version 6'.
La progress bar s'ajoute dans la fenêtre des composants. Il suffit
juste après de modifier la propriété Orientation en
ccOrientationVertical

Avatar
j-pascal
Bonsoir Modeste,

Merci, c'est génial ;-)

Je vais conserver la "DemoProgress1" qui correspond tout à fait à mes
attentes.
J'ai "élagué" tout le reste et je bute sur deux (petits) pb :
- Je n'arrive pas à "shunter" le "Display Value" (autrement dit, je
souhaiterais que le "%" s'affiche par défaut dans la "ProgressBar". Si je le
supprime, on me dit que la "variable" n'est pas définie ...
- Après déplacement de la ProgressBar, l'affichage du % reste en blanc (ce
qui est bien tant que la progression est en bleue, mais avant, j'ai du blanc
sur blanc, ce qui n'est pas terrible !). J'ai cherché dans les propriétés
mais je n'ai pas (encore) trouvé la solution ! (LabPg1 - LabPg1a - LabPg1v -
LabPg1va : je pense qu'il y a une subtilité qui m'échappe ...)

@+ ?

JP
"Modeste" a écrit dans le message de news:
%
Bonsour® j-pascal avec ferveur ;o))) vous nous disiez :

La jauge dont je parle doit m'indiquer la valeur de ma variable
(actuelle) en fonction d'une valeur max (genre jauge d'essence :
capacité max du réservoir et carburant actuel) ...


http://www.andypope.info/vba/pmeter.htm

--
@+
;o)))





Avatar
Modeste
Bonsour® j-pascal avec ferveur ;o))) vous nous disiez :

Bonsoir Modeste,

Merci, c'est génial ;-)

Je vais conserver la "DemoProgress1" qui correspond tout à fait à mes
attentes.
J'ai "élagué" tout le reste et je bute sur deux (petits) pb :
- Je n'arrive pas à "shunter" le "Display Value" (autrement dit, je
souhaiterais que le "%" s'affiche par défaut dans la "ProgressBar".
Si je le supprime, on me dit que la "variable" n'est pas définie ...
- Après déplacement de la ProgressBar, l'affichage du % reste en
blanc (ce qui est bien tant que la progression est en bleue, mais
avant, j'ai du blanc sur blanc, ce qui n'est pas terrible !). J'ai
cherché dans les propriétés mais je n'ai pas (encore) trouvé la
solution ! (LabPg1 - LabPg1a - LabPg1v - LabPg1va : je pense qu'il y
a une subtilité qui m'échappe ...)
@+ ?


dans Private Sub UserForm_Initialize()
labPg1v.Visible = True
labPg1va.Visible = True

puis
dans Sub ProgressStyle1(Percent As Single, ShowValue As Boolean)
'
' Progress Style 1
' Label Over Label
'
Const PAD = " "

' If ShowValue Then <====== cette ligne en commentaire
labPg1v.Caption = PAD & Format(Percent, "0%")
labPg1va.Caption = labPg1v.Caption
labPg1va.Width = labPg1.Width
' End If <====== cette ligne en commentaire


@+
;o)))

Avatar
j-pascal
- Je n'arrive pas à "shunter" le "Display Value" (autrement dit, je
souhaiterais que le "%" s'affiche par défaut dans la "ProgressBar".
Si je le supprime, on me dit que la "variable" n'est pas définie ...
- Après déplacement de la ProgressBar, l'affichage du % reste en
blanc (ce qui est bien tant que la progression est en bleue, mais
avant, j'ai du blanc sur blanc, ce qui n'est pas terrible !).



Bonjour !

Ta proposition ne résoud pas mon pb (que j'ai dû mal exprimer ;-) )
Le classeur : http://cjoint.com/?llj66BZxUb
Le code du UF :
'--------------------------------
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Const PI = 3.14159265358979

Sub CommandButton2_Click() 'lance le défilement
Dim intIndex As Integer
Dim sngPercent As Single
Dim intMax As Integer

Application.Cursor = xlWait
intMax = 100
For intIndex = 1 To intMax
sngPercent = intIndex / intMax
ProgressStyle1 sngPercent, chkPg1Value.Value
DoEvents
'----- code ------
Sleep 10 '100
Next
Application.Cursor = xlDefault
End Sub

Sub ProgressStyle1(Percent As Single, ShowValue As Boolean)
Const PAD = " "
If ShowValue Then
labPg1v.Caption = PAD & Format(Percent, "0%")
labPg1va.Caption = labPg1v.Caption
labPg1va.Width = labPg1.Width
End If
labPg1.Width = Int(labPg1.Tag * Percent)
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
labPg1.Tag = labPg1.Width
labPg1.Width = 0
labPg1v.Visible = True 'ou = ""
labPg1va.Visible = True 'ou = ""
End Sub
'--------------------------------

Bon dimanche,

JP


Avatar
Modeste
Bonsour® j-pascal avec ferveur ;o))) vous nous disiez :

il y a 4 objets "label" superposés : Labpg1, Labpg1v, Labpg1a, Labpg1va,
ces 4 objets doivent etre :
visible, avoir les mêmes dimensions
utiliser les mêmes polices
avoir le même aspect (fmspécialeffectSunken)
Labpg1 : forecolor= blanc et doit etre au 1er plan

Sub ProgressStyle1(Percent As Single, ShowValue As Boolean)
Const PAD = " "
'-----------If ShowValue Then
labPg1v.Caption = PAD & Format(Percent, "0%")
labPg1.Caption = labPg1v.Caption
labPg1va.Width = labPg1.Width
'------------End If
labPg1.Width = Int(labPg1.Tag * Percent)
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
labPg1.Tag = labPg1.Width
labPg1.Width = 0
labPg1.Caption = ""
labPg1v.Caption = ""
labPg1va.Caption = ""
End Sub


@+
;o)))
1 2