Passage d'un groupe de controles en argument

Résolu
cs_bob10 Messages postés 96 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 28 janvier 2009 - 9 juil. 2007 à 14:28
cs_bob10 Messages postés 96 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 28 janvier 2009 - 9 juil. 2007 à 14:49
Salut tout le monde, j'ai une form avec plusieurs groupes de labels

exemple :     - label1(0), label1(1), label1(2), ...
                   - label2(0), label2(1), label2(2), ...
                   - label3(0), label3(1), label3(2), ...
et j'ai une procédure qui doit parcourir l'un des trois groupes de label à qui je dois passé en paramètre un de ces groupes de label dont j'imaginais l'écriture comme ça :

Private sub MaProcedure ( MonLabel() as label)
    Mon code
end sub

et que j'appellerais comme ça :
    MaProcedure Label1
ou MaProcedure Label2
ou MaProcedure Label3

Mais quand j'execute, ça me met une erreur "Incompatibilité de type : Tableau ou type défini par l'utilisateur attendu" et donc je sais pas trop comment faire ni même si c'est possible.

Merci d'avance

4 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 juil. 2007 à 14:35
Salut,
Passe par une variable de type Object:
Exemple avec un groupe de control Label1

Option Explicit

Private Sub Form_Load()
Call MaProcedure(Label1)
End Sub<hr />

Private Sub MaProcedure(MesLabel As Object)
Dim mLabel As Label
   
   For Each mLabel In MesLabel
       MsgBox mLabel.Caption
   Next
End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
9 juil. 2007 à 14:32
Salut,

Plutôt comme cela :

Private sub MaProcedure ( MonLabel as label)

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
9 juil. 2007 à 14:43
Salut,

Tiens regarde ce petit boout de code :

Private Sub TxtNul(MyObjTxt As Object, MyNbr As Integer)

' MyObjTxt correspond à un object sur la feuille, ici je vais l'utiliser pour un TextBox
' MyNbr correspond aux nombres de textbox indéxé
     
     ' Mon traitement
     Dim Boucle As integer
       For Boucle = 0 To MyNbr
            MyObjTxt(Boucle).Text = vbNullString Then
       Next Boucle

End Sub

Utilisation

Call TxtNul, Text1,5

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_bob10 Messages postés 96 Date d'inscription mercredi 2 juillet 2003 Statut Membre Dernière intervention 28 janvier 2009
9 juil. 2007 à 14:49
Merci beaucoup à vous deux, c exactement ce que je cherchais
0
Rejoignez-nous