Soyez le premier à donner votre avis sur cette source.
Snippet vu 4 260 fois - Téléchargée 38 fois
Private Sub Form_activate() HideControls ("frame") End Sub Private Sub HideControls(str As String) For i = 0 To Form1.Controls.Count - 1 If InStr(1, Form1.Controls(i), str, vbTextCompare) <> 0 Then Form1.Controls(i).Visible = False End If Next End Sub
princefido n'avait rien compris a l'exemple VB.
Rien que pour reprendre l'argument :
<<<1 - Tu déclare O comme Object : Désolé mais ne comparons pas le type Object au tupe byte !!!>>>
Désolé, mais ne parles pas de ce que tu ne connais pas ! Dans le for each, l'Object que tu crois plus long ne fait que prendre la valeur du pointeur de chaque contrôle de ta feuille : c'est une valeur long, le "mot" le plus rapide sur un processeur 32 bits (les notres) en compilation. Je n'itère pas avec O, je le renseigne.
Il est encore temps de corriger ton code source, ça se fait pour ceux qui vont arriver sur ta source prochainement : met l'exemple de JeCommence : c'est mieux.
@+
Celiphane
j'ai lu qq part sur ce site qu'il faut tjrs préférer un for each à un for next, question de rapidité ! et puis ce que tu dis c'est faux car si il y a plus de 255 controles ton byte va planter le programme, et il suffit de rajouter un test sur le nom de l'objet comme tu l'as fait pour dans ton code pour n'affecter que certains controles, par exemple (je m'inspire, j'avoue, des codes plus haut...dsl) :
Private Sub showctrl(ByVal flag As Boolean, byval str as string)
On Error Resume Next
Dim O As Object
For Each O In Me
If InStr(1, O.Name, str, vbTextCompare) <> 0 Then O.Visible = flag
Next O
End Sub
Un mélange des 2, c'est pas le meilleur ?
1 - Tu déclare O comme Object : Désolé mais ne comparons pas le type Object au tupe byte !!!
2 - Ca va mettre tout les objets en invisible, et si tu veux mettre que les frames et les textbox, il faudra écrire deux procédures une pour les frames et une pour les textbox
Sinon pour la déclaration du i, c'est que ce code fait partie d'un programme, et le i est déclaré dans les Option Explicit.
Merci quand même pour les critiques.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.