Indexer un commandButton ou une ProgressBar!!!!

lmic626262 Messages postés 9 Date d'inscription mardi 6 septembre 2005 Statut Membre Dernière intervention 28 septembre 2005 - 6 sept. 2005 à 12:11
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 6 sept. 2005 à 17:22
Salut,
Le numéro d'une ProgressBar ou d'un CommandButton peut-il etre indéxé comme ci-dessous...
Je veut mettre à jour 600 ProgressBars suivant 600 cellules différentes sans taper 600 lignes de prog!!!
Bien sur le _ & Numa ne fonctionne pas.

Dim Numa As Integer
'REFRESH PROGESS BARS
Private Sub CommandButton18_Click()
Numa = 20
For Numa = 20 To 30
ProgressBar _ & Numa .Value = Range("i" & Numa).Value
Next
End Sub

Merci d'avance.
LMIC62

9 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
6 sept. 2005 à 12:16
600 progressbar ça me parait une hérésie !!!!



si t'es en Vb6 tu peux les créer dynamiquement:

Load progressbar(Numa)


Daniel
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
6 sept. 2005 à 12:26
Si tu veux les créés sur une feuille de calcul, regarde les propriétés
OLE de la feuille, tu doit touuver un truc du genre OLEControl ou un
truc du genre. c'est une collection.



Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)

Une question se pose sur le forum, pas en privé


NH
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 sept. 2005 à 13:25
pour indexer des contrôles, il suffit d'utiliser leur propriété INDEX qui est faite pour çà


'la Form contient un bouton CmdRun
'et 30 boutons Commands_indexes(0 à 29)
Private Sub CmdRun_Click()
Dim Numa As Integer
For Numa = 3 To 25
Commands_indexes(Numa).Caption = "Caption Changé"
Next
End Sub


<SMALL> Colorisation automatique (PCPT) [AFCK]</SMALL>


il en sera de même pour les progressbarr.

pour créer des contrôles indéxes, il suffit de créer le premier contrôle, puis de le copier avec le même nom.
(msg box, accepter)

PCPT
0
lmic626262 Messages postés 9 Date d'inscription mardi 6 septembre 2005 Statut Membre Dernière intervention 28 septembre 2005
6 sept. 2005 à 14:03
Je suis sous Excel 2002 VBA 6.3
Je teste la function INDEX....

Private Sub CommandButton18_Click()
Dim Numa As Integer
For Numa = 20 To 22
ProgressBar_Index(Numa).Value = Range("i" & Numa).Value
Next
End Sub

La function ProgressBar_Index pose probléme (fontion non définit),
j'ai pris index et progressBar au singulier puis au pluriel et cela pose probléme aussi.
2 progressBar avec le meme n'est pas authorisé.
Merci pour vos réponses...

LMIC62
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 sept. 2005 à 14:09
considère que ton objet devient un tableau.
si tu utilises un tableau(3) :

numa = 2
test = tableau_index(numa)
tu lirais la valeur ainsi?

c'est pourtant ce que tu fais dans l'exemple que tu as posté.
mon exemple est pour VB6, mais VBA accepte les composant indexés.
par contre, il n'y a pas de déclaration à faire. (tous Variant)

ps : image en chemin local = visible que pour toi (signature)

PCPT
0
lmic626262 Messages postés 9 Date d'inscription mardi 6 septembre 2005 Statut Membre Dernière intervention 28 septembre 2005
6 sept. 2005 à 14:46
Désolé, votre notion de tableau m'échappe.
Je suis débutant en VB, vos réponses sont interessantes à tous mais j'ai des difficultées à les mettre en pratique vu mon incompétence dans le domaine.
Sans vous demander d'écrire les ligne de prog à ma place, (ce que vous avez déjà fait), un exemple fonctionnel sous VB6 serait le bien venu.
Est-ce qu'il faut charger des bibliothéques en supp pour accedé à certaines fonctions?
Les functions _indexes ne fontionnent pas chez moi!!

LMIC62
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 sept. 2005 à 15:13
ouvre un nouveau projet. (donc macro...)
dépose une TxtBox sur ton Formulaire

ton objet va s'appeler Text1 pas défaut

sélectionne le, édition copier.
ton Formulaire va prendre le Focus. Edition coller
un message apparaît :
Il y a déjà un contrôle nommé 'Text1'. Voulez-vous créer un groupe de contrôles?
click OUI.

ton contrôle se nomme toujours Text1, mais il est indexé.
fais encore Edition Coller 2 ou 3 fois, et place les de manière à les avoir tous en vue.

double-click sur l'un d'entre eux.

la page de code s'ouvre, en affichant la ligne
Private Sub Text1_Change(Index As Integer)


End Sub

donc quand une touche est saisie, l'évènement Change se déclanche.

pour l'exemple, je crée 6 TextBox, donc Text1(0 à 5)

voici 2 exemples :




'EXEMPLE n°1
'
'on saisi une donnée.
'si on la saisie dans Text1(0), on copie
'cette valeur également dans Text1(5)
'
'
Private Sub Text1_Change(Index As Integer) If Index 0 Then Text1(5).Text Text1(0).Text
End Sub

'EXEMPLE n°2
'
'on saisie une donnée.
'
'si on la saisie dans Text1(2),
'on change la couleur de fond du Text1(0) en vert
'
'sinon si c'est dans Text1(5), on met toutes les
'couleurs de fond en blanc
'
'si c'est dans une autre, on met toutes les
'couleurs de fond en rouge
'
'
Private Sub Text1_Change(Index As Integer)
Dim i As Integer

If Index = 2 Then
Text1(0).BackColor = vbGreen

ElseIf Index = 5 Then
For i = 0 To 5
Text1(i).BackColor = vbWhite
Next i

Else
For i = 0 To 5
Text1(i).BackColor = vbRed
Next i
End If
End Sub


<SMALL> Colorisation automatique [AFCK]</SMALL>


espérant que çà soit plus clair.

PCPT
0
lmic626262 Messages postés 9 Date d'inscription mardi 6 septembre 2005 Statut Membre Dernière intervention 28 septembre 2005
6 sept. 2005 à 17:10
Merci pour ta réponse, cela doit fonctionner en VB application mais pas sous excel en VB6.3.
Sous excel, on créé une TextBox1 et non une TxtBox
Quand on renomme, il ne propose pas de "Voulez-vous créer un groupe de contrôles?"
Par contre il informe d'un "Nom Ambigu détecté".
Pour moi sous Excel en VB6.3, votre solution n'est pas compatible, par contre j'ai appris qq chose si je programme un jour en VB6 "natif".
Merci à tous.
LMIC62
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 sept. 2005 à 17:22
*Quand on renomme, il ne propose pas de "Voulez-vous créer un groupe de contrôles?"

bah oui, puisque je n'ai jamais parlé de renommage.
et qu'il nomme par défaut Text1 ou TextBox1, çà reste un composant. c'est le principe qu'on veut. puisque ta demande de départ est en rapport avec un CommandButton et une ProgressBar.

essai de voir si mon code n'est pas adaptable. je doute fortement que, même sous VBA6.3, les groupes de contrôles ne soient pas intégrables.

bonne continuation
PCPT
0
Rejoignez-nous