Simplification d'une écriture

lilianfred

XLDnaute Nouveau
Bonsoir au FORUM

ESt ce qu'il est possible de simplifier cette écriture?

"Commandboutton1.Visible=True
Commandboutton2.Visible=True
Commandboutton3.Visible=True
...."

Le but est d'éviter d'écrire sur plusieurs lignes et donc de n'écrire le code que sur une ligne.

Merci de votre aide

Lilianfred
 

Staple1600

XLDnaute Barbatruc
Re : Simplification d'une écriture

Bonjour à tous, salut Excel-lent

Sur la même piste qu'Excel-lent
Ici on boucle sur tous les contrôles de l'userform, mais on ne prend en compte que les CommandButton
Code:
Dim ctrl As Control
For Each ctrl In Me.Controls
 If TypeOf ctrl Is MSForms.CommandButton Then ctrl.Visible = True
Next ctrl
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Simplification d'une écriture

Bonjour lilianfred, Excel-lent, JM,

Le monsieur a dit "sur une seule ligne" !

Donc voilà :

Code:
For i = 1 To 3: Me.Controls("Commandbutton" & i).Visible = True: Next i
Ou bien :

Code:
For Each ctrl In Me.Controls: If TypeOf ctrl Is MSForms.CommandButton Then ctrl.Visible = True: Next ctrl
Plus sérieusement, la solution de JM est plus souple car elle permet une évolution du nombre de CommandButton sans avoir à modifier le code. Mais, si le fichier comprend un nombre important de contrôles de tous types, celle de Excel-lent devrait s'avérer plus rapide.

Voilà, c'était juste pour d(r)ire.

Bon dimanche à vous.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 777
Messages
2 092 031
Membres
105 157
dernier inscrit
looping-07