Passage d'un groupe de controles en argument [Résolu]

Signaler
Messages postés
96
Date d'inscription
mercredi 2 juillet 2003
Statut
Membre
Dernière intervention
28 janvier 2009
-
Messages postés
96
Date d'inscription
mercredi 2 juillet 2003
Statut
Membre
Dernière intervention
28 janvier 2009
-
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

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
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
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Salut,

Plutôt comme cela :

Private sub MaProcedure ( MonLabel as label)

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
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

 
Messages postés
96
Date d'inscription
mercredi 2 juillet 2003
Statut
Membre
Dernière intervention
28 janvier 2009

Merci beaucoup à vous deux, c exactement ce que je cherchais