Nommer les boutons d'une USF à l'initialisation de celle-ci

Matt51100

XLDnaute Occasionnel
Bonjour le forum,

A l'appel d'une USF j'aimerai que les 44 boutons qu'elle contient soit nommés suivant des variables.

J'ai cherché un peu et j'ai écrit ceci :

Code:
Private Sub UserForm_Initialize()

Label1 = titre123

Dim i As Integer

aller = Cells(vligne, colonnePMG).Value
Nlot = Cells(vligne, colonnePMG2).Value

For i = 0 To 44 Step 1
aller = Cells(vligne + i, colonnePMG).Value
Nlot = Cells(vligne + i, colonnePMG2).Value
Controls("CommandButton" & i + 1).Caption = "PMG " & aller & " " & Nlot
Next i

End Sub

Ce qui ne marche. Apparemment c'est au niveau de la ligne contenant le "Controls". Quelqu'un peut-il m'aider ?

Merci d'avance.

A+, Matt.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Nommer les boutons d'une USF à l'initialisation de celle-ci

Bonjour Matt, bonjour le forum,

Rajoute Me. devant Controls... (non testé)
Code:
Me.Controls("CommandButton" & i + 1).Caption = "PMG " & aller & " " & Nlot

[Édition]
Bonjour PierreJean on s'est croisé.
 

Matt51100

XLDnaute Occasionnel
Re : Nommer les boutons d'une USF à l'initialisation de celle-ci

Bonjour Robert, pierrejean,

J'ai déjà tenté le Me, sans résultat.

J'ai cependant trouvé une solution posté par Hasco. Cependant j'aurais préféré une solution dans la userform et non en passant par un module.

A+, Matt.
 

Matt51100

XLDnaute Occasionnel
Re : Nommer les boutons d'une USF à l'initialisation de celle-ci

Re,

Je vous poste le fichier car j'aimerais vraiment trouver une solution à partir de ma façon de faire.

A+, Matt.
 

Pièces jointes

  • Classeur1.xls
    37 KB · Affichages: 62
  • Classeur1.xls
    37 KB · Affichages: 58
  • Classeur1.xls
    37 KB · Affichages: 59

pierrejean

XLDnaute Barbatruc
Re : Nommer les boutons d'une USF à l'initialisation de celle-ci

Re

Le probleme n'etait pas dans la ligne Controls.... mais dans l'initialisation des variables

VB:
Private Sub UserForm_Initialize()
Label1 = titre123
Dim i As Integer
vligne = 4
colonnePMG = 2
colonnePMG2 = 4
aller = Cells(vligne, colonnePMG).Value
Nlot = Cells(vligne, colonnePMG2).Value
For i = 0 To 44 Step 1
aller = Cells(vligne + i, colonnePMG).Value
Nlot = Cells(vligne + i, colonnePMG2).Value
Controls("CommandButton" & i + 1).Caption = "PMG " & aller & " " & Nlot
Next i
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Nommer les boutons d'une USF à l'initialisation de celle-ci

Bonjour le fil, bonjour le forum,

Ça mache si on ouvre l'UserForm en lançant la procédure PMGAC du Module8 qui définit les variables publiques.
 

Matt51100

XLDnaute Occasionnel
Re : Nommer les boutons d'une USF à l'initialisation de celle-ci

Re,

Effectivement pierrejean, ta solution marche. Je ne comprends pas cependant, pourquoi, je dois déclarer les variables vligne, colonnePMG et colonnePMG2 dans la USF et non dans le module 8 vu qu'elles sont en public.

Merci beaucoup.

A+, Matt.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Nommer les boutons d'une USF à l'initialisation de celle-ci

Bonjour le fil, bonjour le forum,

Matt tu fait une confusion entre la déclaration et la définition d'une variable. Une variable déclarée publique va avoir une portée au niveau de tout le projet mais si elle n'est pas definie elle nulle (pour une variable déclarée Integer par exemple).

Public li As Integer 'ne fait que déclarer la variable
Cells(li, 1).Select 'va planter car li vaut 0

Public li As Integer
li = Range("A65536").End(xlUp).Row 'définit la variable
Cells(li, 1).Select 'ne va plus planter...

Soit tu définies les variables dans la procédure PMGAC et tu lances l'UserForm à partir de cette procédure, soit comme le préconise PierreJean, tu définies les variables à l'initialisation de l'UserForm et tu te passe de la procédure.
 
Dernière édition:

Matt51100

XLDnaute Occasionnel
Re : Nommer les boutons d'une USF à l'initialisation de celle-ci

Re,

oui, je vois bien ce que tu veux dire, je me suis mal exprimé dans mon post précédent.
Pourtant mes variables étaient définies dans PMGAC. Donc au final je ne comprends pas pourquoi cela ne marchait pas sur mon fichier d'origine.

Bon, vu que mon problème est résolu, c'est cool.

Encore merci.

A+, Matt.
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal