ajouter un label sur un formulaire par code?

Angelo7891

XLDnaute Junior
bonjour le forum j'ai déjà posé cette question mais sans réponse :(

j'aimerai ajouter un label sur un userform à chaque fois que j'appuis sur un bouton donc
dans l'évenement click de ce bouton j'ai mis :

Code:
Set montexte = Opération.Controls.Add('Forms.Label.1') 
    With montexte 
    .Left = 50 
    .Top = 50  
    .Width = 100 
    .Height = 25 
    .Name = Label & Nblabel 
    End With

(je récupere le NBlabel sur la feuille 2 du classeur )

le probleme c'est que la premiere fois cela cré bien le label mais ensuite quand je rappui sur le bouton 'ajout' ils disparaient
comment pourais je faire ?
 

Hervé

XLDnaute Barbatruc
bonjour angelo

lors du deuxième appui sur ton bouton, le label est bien créé, mais comme tu ne fais pas varier sa position, celui-ci se replace sur le premier.

il te faut donc une variable, que tu va incrémenter à chaque fois, afin que tes labels se créent l'un en dessous de l'autre, comme ca :


Dim ltop As Integer
'_______________________________
Private Sub CommandButton1_Click()
Dim montexte As Control

Set montexte = opération.Controls.Add('Forms.Label.1')
With montexte
.Left = 50
.Top = ltop
'on renvoi la valeur de ltop
.Width = 100
.Height = 25
.BorderStyle = 1
'juste pour essai
.Name = Label & Nblabel
End With
ltop = ltop + 35
'on incremente ltop
End Sub
'_____________________________________________
Private Sub UserForm_Initialize()
'a l'ouverture du userform on initialise la variable ltop
ltop = 50
End Sub


de plus, tu ne pourrais pas plutot imaginer de créer tes labels, puis de les faires apparaitres au fur et à mesure de tes besoins, ca serait plus simple.

salut

Message édité par: hervé, à: 21/03/2006 12:49
 

Angelo7891

XLDnaute Junior
lors du deuxième appui sur ton bouton, le label est bien créé, mais comme tu ne fais pas varier sa
position, celui-ci se replace sur le premier.


ba non chez moi il disparait lors du deuxieme appui sur le button ...

ps dans dans l'evenement Activate
j'ai mis :

Code:
For NoLabel = 10 To Nblabel - 1
        NoColonne = NbColonne - 4
        MsgBox (Me.Controls('Label' & NoLabel).Name)
        Me.Controls('Label' & NoLabel).Caption = Sheets(1).Cells(3, NoColonne).Value
        NoColonne = NoColonne - 1
    Next NoLabel

je passe les détail mais le Msgbox me dis le nom des Label or jusqu'au ca label13 ca marche puis au Label14 (celui que j'ai ajouter justement ) il y a une erreur objet introuvable
 

Hervé

XLDnaute Barbatruc
re

en pièce jointe une petite démo pour la création des labels.

salut [file name=angelo.zip size=10552]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/angelo.zip[/file]
 

Pièces jointes

  • angelo.zip
    10.3 KB · Affichages: 21

Angelo7891

XLDnaute Junior
voici mon fichier par contre j'ai du retirer des fonctionnaité ppour qu'il fasse moin que 50 k
mais j'ai garder ce qui concerne le probleme donc quand tu arrive t'a un userform bienvenue
tu clique sur suivant et la tu a un menu seul l'administartion fonctionne !

ensuite tu a 2 choix ajouter ou supprimer une opération : pareil seul ajouter fonctionne
et la tu vois ce qui se passe

les userform concerné s'apellent Opération (évenement initailize et activate) et Ajout_Opération (bouton valider)

Message édité par: Angelo7891, à: 21/03/2006 17:11
 

Angelo7891

XLDnaute Junior
... [file name=Mensuel1.zip size=46686]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Mensuel1.zip[/file]

Message édité par: Angelo7891, à: 21/03/2006 17:14
 

Pièces jointes

  • Mensuel1.zip
    45.6 KB · Affichages: 20
  • Mensuel1.zip
    45.6 KB · Affichages: 18
  • Mensuel1.zip
    45.6 KB · Affichages: 18

Hervé

XLDnaute Barbatruc
Bonsoir angelo

waouh

j'ai pas trouvé de solution à ton problème.

2 choses :

-dans l'userform Ajout_Opération, dans la procédure Valider_Ajout_Click :

.Name = Label & NewLabel

les variables label et newlabel ne sont pas initialisées.

- dans l'usf Opération, dans la procédure UserForm_Activate :

pour récupérer le contenu d'une textbox d'un autre userform, utilises ce type de syntaxe :

Me.Controls('Label' & NoLabel).Caption = Ajout_Opération.TextBox1

sinon, je ne suis pas arrivé à initialiser ce p....n de label

je pense, mais ceci n'engage que moi, que tu te prépares de jolies migraines.

désolé mais je ne peux guère aller plus loin sur ton projet.

je passe la main à plus fort que moi, t'inquiète pas sur ce forum y'en à des tas.

salut
 

Angelo7891

XLDnaute Junior
dans l'userform Ajout_Opération, dans la procédure Valider_Ajout_Click :

.Name = Label & NewLabel

je suis aller un peu vite :eek:

en fait le nom du label c'est par exemple Label14

donc j'aurais du mettre

Code:
.Name = 'Label' & NewLabel

pour NewLabel il est bien initilisé un peu plus haut

Code:
 Sheets('Feuil2').Visible = True
    Sheets('Feuil2').Select
    Range('A1').Value = Range('A1').Value + 2
    [b]NewLabel = Range('B1').Value + 1[/b]
    Sheets('Feuil2').Visible = False
    Sheets('Feuil1').Select


merci quand meme je vais voir avec d'autre sinon tt'en pis je n'autoriserai qu'un certain nombre d'opération supplémentaire
et je suiverai ton conseil de cacher puis faire aapparaitre au fur et a mesure des besoins
 

Discussions similaires

Réponses
0
Affichages
157

Statistiques des forums

Discussions
312 332
Messages
2 087 361
Membres
103 530
dernier inscrit
Chess01