Paramétrer le nom d'une Progress Bar sous Excel 2003
mrpommy
Messages postés1Date d'inscriptionmercredi 12 décembre 2007StatutMembreDernière intervention12 décembre 2007
-
12 déc. 2007 à 00:46
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 2016
-
12 déc. 2007 à 10:52
Bonjour à tous,
Je pratique le VBA sous Excel 2003 depuis quelques mois seulement et je m'exalte devant les possibilités ouvertes par les communications, incrémentations et autres opérations entres ces deux logiciel.
Mais aujourd'hui j'ai découvert un truc que j'arrive pas à faire ou alors ma méthode est mauvaise
(Ca doit être ca...)
J'expose mon problème:
J'ai une feuille excel avec 200 lignes de suivi de pièces
Je récupère un pourcentage en Colonne "DV" à partir de la Ligne "4"
J'ai 1 ProgressBar devant chaque ligne (soit 200 ProgressBar) qui doivent afficher cette valeur de pourcentage
A chaque action sur la ligne qui fait augmenter le pourcentage, je veux actualiser la ProgressBar.
J'arrive à le faire pour la première ligne avec le sub suivant:
Private Sub PB()
' Je récupère la valeur de la ligne active (en l'occurence 4 pour la première ligne
remplie)
Dim i As Integer
i = ActiveCell.Row
' A la ligne 4 j'ai une Progressbar de nom PRB1 (Name) qui prend la valeur de mon
pourcentage en Range("DV4")
PRB1.Value = Range("DV" & i).Value
End Sub
Cela marche parfaitement dès que je modifie une valeur qui joue sur mon pourcentage, la ProgressBar augmente
Problème:
Comment paramétrer (ou variabiliser) le nom de ma ProgressBar (le 1 derrière PRB) pour que cela fonctionne pour chaque ligne (eh oueh j'en ai 200 quand même et ca me relou un peu de me tapper 200 sub)
J'ai essayé pas mal de trucs et chercher et fouiller sur le net et dans les bouquins mais je n'ai rien trouvé.
J'ai essayé un truc du genre (puis plein d'autre avec des OleObjects et .Name et j'en passe)
Private Sub PB()
Dim i As Integer
i = ActiveCell.Row
' J'affecte j = i - 3 pour que la ProgressBar PRB1 correspondent à la ligne 4 ou elle se
trouve
Dim j as integer
j = i - 3
PRB(j).Value = Range("DV" & i).Value
End Sub
En clair ce que je veux c'est quand: ligne 4> PRB1.value = Range("DV4").value
ligne 5> PRB2.value = Range("DV5").value
...
..
.
ligne 203> PRB200.value = Range("DV203").value
Est ce que cela est assez clair? Quelqu'un aurais t'il une réponse?
A voir également:
Paramétrer le nom d'une Progress Bar sous Excel 2003
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 12 déc. 2007 à 10:52
bonjour
Excuses-moi d'intervenir car je ne suis pas expert dans ce domaine précis, mais si cela peux te servir, inspires toi du code suivant que je viens de découvrir : je l'ai parcouru et il me semble répondre à ton problème suppression de tous les controles (checkbox : dans le cas présent ce sera des ProgressBar) et réallocation avec les valeurs ensuites mises à jour et le code utilise bien la collection OleObjects