thesebinou
Messages postés21Date d'inscriptionmercredi 5 novembre 2003StatutMembreDernière intervention 2 février 2005
-
27 nov. 2004 à 11:19
thesebinou
Messages postés21Date d'inscriptionmercredi 5 novembre 2003StatutMembreDernière intervention 2 février 2005
-
27 nov. 2004 à 12:39
Bonjour à tous,
Je suis débutant en programmation et n'est aucune formation à ce sujet, alors je me débrouille grace au net à essayer de faire un programme.
J'ai un projet sous VBA avec :
- 1 UserForm nommés Userform1
- 20 Labels nommés Label1_1 à Label1_10 pour les 10 premiers avec la propriété Tag de A à J et Labels2_1 à Label2_10 pour les 10 derniers avec , là aussi, la propriété Tag de A à J.
- 1 Label Nommé Resultat
Le but recherché est :
Chaque passage de la souris sur un label affiche le tag de ce label dans le label resultat.
J'ai bien réussi à le faire fonctionner sous VBA (voir code plus loin)mais je souhaitant passer sous VB, je n'arrive pas à le faire fonctionner en réutilisant le même code. (J'ai quand même changé Userform par Form en passant sous VB)
Si quelqu'un peut m'indiquer une voie de solution, car là je patauge...
Merci Beaucoup,
Voici le Code......
Code du UserForm
Private Sub UserForm_Initialize()
Dim nb As Integer
Dim Ctrl As Control
nb = 0
'Module pour les Label
For Each Ctrl In UserForm1.Controls
If TypeName(Ctrl) = "Label" Then
nb = nb + 1
ReDim Preserve Label(1 To nb)
Set Label(nb).GroupeLabel = Ctrl
End If
Next
End Sub
Code du module de classe
Public WithEvents GroupeLabel As msforms.Label
Private Sub GroupeLabel_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Affichage du numéro selectionné au passage de la souris
UserForm1.Resultat.Caption = GroupeLabel.Tag
Scalpweb
Messages postés1467Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention 5 mai 20104 27 nov. 2004 à 12:02
Ben, il me semble (jai pas lu tt ton code) que sous vb, il suffirait de rajouter dans l'évènement MouseMove de tes labels le code suivant :
Resultat.Caption = Label1_"Actuel".Tag
Mais il faudrait mieux que tu crée unb groupe de label, tous nommés Label1, mais dont les index variraient de 1 à 10. Ensuite, il te suffirai, dans la propriété MouseMove du groupe de label, de mettre :
thesebinou
Messages postés21Date d'inscriptionmercredi 5 novembre 2003StatutMembreDernière intervention 2 février 2005 27 nov. 2004 à 11:43
C'est encore moi,
J'ai oublié de préciser le nom du module : Classe1
Et j'ai oublié cette ligne dans le code de la form :
Dim Label() As New Classe1
De plus, losque je lance le projet, le message d'erreur sous VB est qu'il me surligne "WithEvents GroupeLabel As msforms.Label" en m'indiquant une erreur de complilation Type défini par l'utilisateur non défini !
Voici pour finir le code sous VB
Code du module de classe class1
Public WithEvents GroupeLabel As msforms.Label
Private Sub GroupeLabel_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Affichage du numéro selectionné au passage de la souris
Form1.Resultat.Caption = GroupeLabel.Tag
End Sub
Code de la Form Form1
Dim Label() As New Class1
Private Sub Form_Load()
Dim nb As Integer
Dim Ctrl As Control
nb = 0
'Module pour les Label
For Each Ctrl In Form1.Controls
If TypeName(Ctrl) = "Label" Then
nb = nb + 1
ReDim Preserve Label(1 To nb)
Set Label(nb).GroupeLabel = Ctrl
End If
Next
End Sub