Iteration de macros dans une autre vba

Résolu
Vba_Noob -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'aurais besoin d'un coup de main pour un code sous vba.
Voila la situation, je voudrais ecrire un procedure me permettant de cacher ou de faire apparaitre des macros d'une feuille excel, au moyen d'une autre macro.
Pour l'instant j'utilise l'instruction suivante:

Private Sub CommandButton1_Click()
CommandButton2.Visible = True
CommandButton3.Visible = True (or false
End Sub

Mais comme je dois realiser l'operation sur un grand nombre de macros je voudrais pouvoir ecrire une boucle qui m'eviterai de recopier cette instruction.
Quelque chose du genre:
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 4 To 7
CommandButton(i).Visible = False
Next i
End Sub

Enfin si c'est possible
Merci d'avance


2 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour

De 4 à 7 , c'est pas suffisant pour une boucle...
Mais je suppose que ça n'est qu'un exemple, donc essayez ceci (s'il s'agit de commandbutton issus de la boite à outils controles...) :
Private Sub CommandButton1_Click() 
Dim i As Integer 
For i = 4 To 7 
    Controls("CommandButton" & i ).Visible = False 
Next i 
End Sub
0
Vba_Noob
 
Oui en fait ma boucle se fait sur plus de 100 elements 4 a 7 c'est juste un example ^^.
Par contre j'ai essaye le code et la fonction controls ne semble pas etre reconnu par excel.
Je travail sous excel 2003 je sais si ca joue...
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Tes commandbutton sont dans ta feuille? Si oui, tu les as "dessinés" à partir de la barre d'outils "formulaire"? de la barre d'outil "boîte à outils controle"?
Tes commandbutton sont peut être dans une Userform?
Au besoin, passe nous une copie de ton fichier, sans données confidentielles, via https://www.cjoint.com/
0
Vba_Noob
 
mes commandboutton sont sur ma feuille excel et je les ai fait a partir de la "boite a outils control".
Et c'est quoi un Userform?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Un UserForm, si tu ne connais pas, c'est une boite de dialogue personnalisée que tu peux créer toi même avec un peu (beaucoup) de connaissances VBA...

Pour ta question ma réponse est ICI.

Un exemple d'UserForm
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Excuse, je n'avais pas vu que tu étais sur une feuille.....
Essaies ceci :
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 4 To 7
    If ActiveSheet.OLEObjects("CommandButton" & i).Visible = False Then
        ActiveSheet.OLEObjects("CommandButton" & i).Visible = True
    Else
        ActiveSheet.OLEObjects("CommandButton" & i).Visible = False
    End If
Next i
End Sub
0
Vba_Noob
 
Franchement ca marche du tonnerre.
Merci beaucoup pour ton temps et tes connaissances
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
de rien.
a+
0