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

Messages postés
49
Date d'inscription
mardi 11 juin 2002
Dernière intervention
28 janvier 2006
- - Dernière réponse : cs_CanisLupus
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
- 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
Messages postés
936
Date d'inscription
lundi 19 janvier 2004
Dernière intervention
17 mars 2017
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
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
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
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.