[VBA/Excel] Label dynamique

Fermé
Gilou - 6 févr. 2011 à 18:02
 Gilou - 6 févr. 2011 à 19:32
Bonjour,


J'ai crée un projet VBA-Excel qui avance bien. J'ai un problème pour afficher un texte particulier dans le Label (Label3) d'une userform (Userform3). Mon intention étant de faire afficher le contenu des cellules A3 et B3 dans le label.

J'ai ceci comme code

Private Sub UserForm3_Initialize()
Sheets("Feuil2").Activate
Cells("A3:B3").Select
UserForm3.Label3.Caption = Cells(A, 3).Value & " = " & Cells(B, 3).Value
End Sub


En l'état, ça ne fait rien. "Label3" s'affiche comme si de rien n'était.
Si je remplace la 1ère ligne ainsi

Private Sub UserForm_Initialize()

j'ai une erreur 1004 "Erreur définie par l'application ou par l'objet". Et le débogueur surligne la ligne qui appelle l'Userform3 (qui contient la label3).

Quelqu'un voit-il le pb ?

Merci
Gilou
A voir également:

3 réponses

Bonjour,

- l'evenement Initialize de la UserForm3 s'appelle : UserForm_Initialize

si tu définis UserForm3_Initialize c'est une sub personnelle qui n'est jamais appellée

-Le problème dans ton code de la UserForm_Initialize(), est effectivement celui signalé par CCM81.

Je te propose le code suivant dans la userform3:

Private Sub UserForm_Initialize()
Dim plage As String
  plage = Worksheets("Feuil2").Range("A3").Value & " = " & Worksheets("Feuil2").Range("B3").Value
  Me.Label3.Caption = plage
End Sub


Bonne soirée
1
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
Modifié par ccm81 le 6/02/2011 à 18:52
bonsoir

Cells(A, 3).Value : je crois que le pb est là puisque A ne me semble pas contenir une valeur, il y peut etre confusion entre les styles

- soit Cells(lig,col) en style L1C1, soit ici Cells(3,1).Value je pense
- soit Range(cel) en style A1, soit ici Range("A3").Value

- le cells("A3:B3").select est inutile
- je mettrai un with sheets("Feuil2") .... end with à la place de sheets('Feuil2").activate , ce qui donnerait ensuite
.Cells(3,1).Value ou .Range("A3").Value

bonne suite
0
Merci, ça marche
0