Savoir si un controle est chargé sur une form [Résolu]

cs_krafi 49 Messages postés mardi 11 juin 2002Date d'inscription 28 janvier 2006 Dernière intervention - 13 nov. 2004 à 14:23 - Dernière réponse : cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention
- 13 nov. 2004 à 18:10
Salut,

Comment peut-on savoir qu'un controle (label, textbox) est chargé sur une form ?, car je crée un label dynamiquement, lors de l'evenement click sur un bouton, et biensûr si je re click sur le bouton, une erreur me dit que le contrôle est déja chargé.

Public Sub AfficheMsg(LeMsg As String, f As Form, Style As String)

Si f.LblInfo pas chargé alors '<- Mon prob est ici

Load f.LblInfo(1)

With f.LblInfo(1)

.Left = 0
.Top = 0
.Caption = LeMsg
.AutoSize = True
.Visible = True

End With

Fin Si

End Sub

Voilà, si quelqu'un a une soluce, ça m'aiderais bien. Ca doit pas être grand chose en plus.

Merci
Afficher la suite 

4 réponses

Meilleure réponse
valtrase 936 Messages postés lundi 19 janvier 2004Date d'inscription 17 mars 2017 Dernière intervention - 13 nov. 2004 à 15:47
3
Merci
salut tu peux faire ceci

dim ctl as control
For Each ctl In Me.Controls
            If TypeOf ctl Is Textbox Then msgbox " Controle textbox chargé"


addaptes le code en conséquence

@+ J.P.

Merci valtrase 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Meilleure réponse
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 13 nov. 2004 à 18:10
3
Merci
Après une tite étude, voilà mon code qui peut pllaier à certains bugs du 1er :

Public Sub AfficheMsg(LeMsg As String, f As Form, Style As String)
Dim c As Control
Dim x As Integer
Dim test As Boolean

For Each c In f.Controls
If c.Name = "lblinfo" Then
test = True
On Error GoTo trt_error
If c.Index > x Then x = c.Index
On Error GoTo 0
End If
Next

If Not test Then
MsgBox "Le controle n'existe pas !"
Exit Sub
End If

Load f.lblinfo(x + 1) ' le controle existe et on en crée une nouvelle instance

With f.lblinfo(x + 1)

.Left = 0
.Top = 0
.Caption = LeMsg
.AutoSize = True
.Visible = True

End With
Exit Sub
trt_error:
MsgBox "Le controle existe mais ne fait pas partie d'un goupe de controles"
End Sub


Cordialement, CanisLupus

Merci cs_CanisLupus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 13 nov. 2004 à 16:41
0
Merci
Ou sinon, fais une routine de traitement d'erreur avant la ligne qui pose problème :

On error resume next
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 13 nov. 2004 à 17:34
0
Merci
Salut, essaie ça :

Public Sub AfficheMsg(LeMsg As String, f As Form, Style As String)
Dim c As Control
Dim x As Integer

For Each c In f.Controls
If c.Name = "lblinfo" Then
If c.Index > x Then x = c.Index
End If
Next

If x = 0 Then Exit Sub ' le controle n'existe pas

Load f.lblinfo(x + 1) ' le controle existe et on en crée une nouvelle instance

With f.lblinfo(x + 1)

.Left = 0
.Top = 0
.Caption = LeMsg
.AutoSize = True
.Visible = True

End With

'Fin Si

End Sub


Cordialement, CanisLupus

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.