ajouter un label sur un formulaire par code?

  • Initiateur de la discussion Initiateur de la discussion Angelo7891
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Angelo7891

Guest
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 ?
 
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
 
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
 
ok je mettrai un fichier en pièce jointe mais il faut que je le modifie avant (le mien est trop gros )


par contre j'ai pas réussis à ouvrir le tiens enfin je l'ai ouvert mais des que j'appuyai sur le bouton il plantais excel
 
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
 
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
 
dans l'userform Ajout_Opération, dans la procédure Valider_Ajout_Click :

.Name = Label & NewLabel

je suis aller un peu vite 😱

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
0
Affichages
658
A
Réponses
6
Affichages
769
Antilope_
A
Retour