J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement
Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur
clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken".
Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique
sur un autre Label, le précédent revienne à l'état original (Raised) tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré:
Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click()
Set Objet = LabelA1
Call EnfoncerBouton
End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton()
Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then
'Ne rien faire
Else
ObjetPréc.SpecialEffect = fmSpecialEffectRaised
End If
Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes
résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur
clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
David B.
Salut,
Et pourquoi tu ne mettrai pas en variable statique l'objet précédent ?
Avant d'enfoncer ton bouton en cours, tu désenfonce le bouton mis en place dans l'élément statique, tu enfonce ensuite le bouton en cours et tu met le bouton en cours dans l'objet statique.
C'est peut une soluce comme une autre ?
@+ David B.
"Pierre Archambault" a écrit dans le message de news: ATctf.35127$
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken". Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique sur un autre Label, le précédent revienne à l'état original (Raised) tandis que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré: Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click() Set Objet = LabelA1 Call EnfoncerBouton End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton() Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then 'Ne rien faire Else ObjetPréc.SpecialEffect = fmSpecialEffectRaised End If Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Pierre
Salut,
Et pourquoi tu ne mettrai pas en variable statique l'objet précédent ?
Avant d'enfoncer ton bouton en cours, tu désenfonce le bouton mis en place
dans l'élément statique, tu enfonce ensuite le bouton en cours et tu met le
bouton en cours dans l'objet statique.
C'est peut une soluce comme une autre ?
@+
David B.
"Pierre Archambault" <pierre.archambault@videotron.ca> a écrit dans le
message de news: ATctf.35127$ZG5.816309@weber.videotron.net...
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement
Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur
clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken".
Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique
sur un autre Label, le précédent revienne à l'état original (Raised)
tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré:
Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click()
Set Objet = LabelA1
Call EnfoncerBouton
End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton()
Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then
'Ne rien faire
Else
ObjetPréc.SpecialEffect = fmSpecialEffectRaised
End If
Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes
résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur
clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Et pourquoi tu ne mettrai pas en variable statique l'objet précédent ?
Avant d'enfoncer ton bouton en cours, tu désenfonce le bouton mis en place dans l'élément statique, tu enfonce ensuite le bouton en cours et tu met le bouton en cours dans l'objet statique.
C'est peut une soluce comme une autre ?
@+ David B.
"Pierre Archambault" a écrit dans le message de news: ATctf.35127$
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken". Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique sur un autre Label, le précédent revienne à l'état original (Raised) tandis que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré: Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click() Set Objet = LabelA1 Call EnfoncerBouton End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton() Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then 'Ne rien faire Else ObjetPréc.SpecialEffect = fmSpecialEffectRaised End If Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Pierre
Pierre Archambault
Merci David
C'est justement ce que j'essaie de faire... Tout comme je le fesais dans la version sans module de classe.
Mais ça ne marche pas.
Voici le code que j'utilise dans le module de classe : ------------------------------------------------------------- Private Sub MesLabels_Click() Static AncLabel As Label
If MesLabels.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
If AncLabel Is Nothing Then 'Ne rien faire Else AncLabel.SpecialEffect = fmSpecialEffectRaised End If
MesLabels.SpecialEffect = fmSpecialEffectSunken Set AncLabel = MesLabels
End Sub -------------------------------------------------------------
"David B." a écrit dans le message de news:OWtQz%
Salut,
Et pourquoi tu ne mettrai pas en variable statique l'objet précédent ?
Avant d'enfoncer ton bouton en cours, tu désenfonce le bouton mis en place
dans l'élément statique, tu enfonce ensuite le bouton en cours et tu met le
bouton en cours dans l'objet statique.
C'est peut une soluce comme une autre ?
@+ David B.
"Pierre Archambault" a écrit dans le message de news: ATctf.35127$
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur
clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken". Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique
sur un autre Label, le précédent revienne à l'état original (Raised) tandis que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré: Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click() Set Objet = LabelA1 Call EnfoncerBouton End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton() Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then 'Ne rien faire Else ObjetPréc.SpecialEffect = fmSpecialEffectRaised End If Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Pierre
Merci David
C'est justement ce que j'essaie de faire... Tout comme je le fesais dans la
version sans module de classe.
Mais ça ne marche pas.
Voici le code que j'utilise dans le module de classe :
-------------------------------------------------------------
Private Sub MesLabels_Click()
Static AncLabel As Label
If MesLabels.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
If AncLabel Is Nothing Then
'Ne rien faire
Else
AncLabel.SpecialEffect = fmSpecialEffectRaised
End If
MesLabels.SpecialEffect = fmSpecialEffectSunken
Set AncLabel = MesLabels
End Sub
-------------------------------------------------------------
"David B." <david.bocquet@laposte.net> a écrit dans le message de
news:OWtQz%23XDGHA.3820@TK2MSFTNGP12.phx.gbl...
Salut,
Et pourquoi tu ne mettrai pas en variable statique l'objet précédent ?
Avant d'enfoncer ton bouton en cours, tu désenfonce le bouton mis en
place
dans l'élément statique, tu enfonce ensuite le bouton en cours et tu met
le
bouton en cours dans l'objet statique.
C'est peut une soluce comme une autre ?
@+
David B.
"Pierre Archambault" <pierre.archambault@videotron.ca> a écrit dans le
message de news: ATctf.35127$ZG5.816309@weber.videotron.net...
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement
Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque
l'utilisateur
clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken".
Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager
clique
sur un autre Label, le précédent revienne à l'état original (Raised)
tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré:
Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click()
Set Objet = LabelA1
Call EnfoncerBouton
End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton()
Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then
'Ne rien faire
Else
ObjetPréc.SpecialEffect = fmSpecialEffectRaised
End If
Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes
résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur
clique. Impossible de faire reprendre l'état "Raised" au Label
précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
C'est justement ce que j'essaie de faire... Tout comme je le fesais dans la version sans module de classe.
Mais ça ne marche pas.
Voici le code que j'utilise dans le module de classe : ------------------------------------------------------------- Private Sub MesLabels_Click() Static AncLabel As Label
If MesLabels.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
If AncLabel Is Nothing Then 'Ne rien faire Else AncLabel.SpecialEffect = fmSpecialEffectRaised End If
MesLabels.SpecialEffect = fmSpecialEffectSunken Set AncLabel = MesLabels
End Sub -------------------------------------------------------------
"David B." a écrit dans le message de news:OWtQz%
Salut,
Et pourquoi tu ne mettrai pas en variable statique l'objet précédent ?
Avant d'enfoncer ton bouton en cours, tu désenfonce le bouton mis en place
dans l'élément statique, tu enfonce ensuite le bouton en cours et tu met le
bouton en cours dans l'objet statique.
C'est peut une soluce comme une autre ?
@+ David B.
"Pierre Archambault" a écrit dans le message de news: ATctf.35127$
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur
clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken". Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique
sur un autre Label, le précédent revienne à l'état original (Raised) tandis que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré: Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click() Set Objet = LabelA1 Call EnfoncerBouton End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton() Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then 'Ne rien faire Else ObjetPréc.SpecialEffect = fmSpecialEffectRaised End If Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Pierre
Michel Pierron
Bonjour Pierre; Dans ton module UserForm: Option Explicit
Private Sub UserForm_Initialize() Dim Ctl As Control, i As Byte For Each Ctl In Me.Controls If Left(Ctl.Name, 5) = "Label" Then i = Val(Mid(Ctl.Name, 6)) ReDim Preserve Lbl(1 To i) Set Lbl(i).lblGroup = Ctl End If Next Ctl End Sub
Dans ton module Standard: Option Explicit Public Lbl() As New lblClass
Dans ton module de classe (lblClass): Option Explicit Public WithEvents lblGroup As MSForms.Label
Private Sub lblGroup_Click() Dim i As Byte For i = 1 To UBound(Lbl) UserForm1.Controls("Label" & i).SpecialEffect = 1 Next i lblGroup.SpecialEffect = 2 End Sub
Happy New year; MP
"Pierre Archambault" a écrit dans le message de news: ATctf.35127$
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken". Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique sur un autre Label, le précédent revienne à l'état original (Raised) tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré: Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click() Set Objet = LabelA1 Call EnfoncerBouton End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton() Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then 'Ne rien faire Else ObjetPréc.SpecialEffect = fmSpecialEffectRaised End If Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Pierre
Bonjour Pierre;
Dans ton module UserForm:
Option Explicit
Private Sub UserForm_Initialize()
Dim Ctl As Control, i As Byte
For Each Ctl In Me.Controls
If Left(Ctl.Name, 5) = "Label" Then
i = Val(Mid(Ctl.Name, 6))
ReDim Preserve Lbl(1 To i)
Set Lbl(i).lblGroup = Ctl
End If
Next Ctl
End Sub
Dans ton module Standard:
Option Explicit
Public Lbl() As New lblClass
Dans ton module de classe (lblClass):
Option Explicit
Public WithEvents lblGroup As MSForms.Label
Private Sub lblGroup_Click()
Dim i As Byte
For i = 1 To UBound(Lbl)
UserForm1.Controls("Label" & i).SpecialEffect = 1
Next i
lblGroup.SpecialEffect = 2
End Sub
Happy New year;
MP
"Pierre Archambault" <pierre.archambault@videotron.ca> a écrit dans le
message de news: ATctf.35127$ZG5.816309@weber.videotron.net...
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement
Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur
clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken".
Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique
sur un autre Label, le précédent revienne à l'état original (Raised)
tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré:
Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click()
Set Objet = LabelA1
Call EnfoncerBouton
End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton()
Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then
'Ne rien faire
Else
ObjetPréc.SpecialEffect = fmSpecialEffectRaised
End If
Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes
résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur
clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Bonjour Pierre; Dans ton module UserForm: Option Explicit
Private Sub UserForm_Initialize() Dim Ctl As Control, i As Byte For Each Ctl In Me.Controls If Left(Ctl.Name, 5) = "Label" Then i = Val(Mid(Ctl.Name, 6)) ReDim Preserve Lbl(1 To i) Set Lbl(i).lblGroup = Ctl End If Next Ctl End Sub
Dans ton module Standard: Option Explicit Public Lbl() As New lblClass
Dans ton module de classe (lblClass): Option Explicit Public WithEvents lblGroup As MSForms.Label
Private Sub lblGroup_Click() Dim i As Byte For i = 1 To UBound(Lbl) UserForm1.Controls("Label" & i).SpecialEffect = 1 Next i lblGroup.SpecialEffect = 2 End Sub
Happy New year; MP
"Pierre Archambault" a écrit dans le message de news: ATctf.35127$
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken". Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique sur un autre Label, le précédent revienne à l'état original (Raised) tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré: Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click() Set Objet = LabelA1 Call EnfoncerBouton End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton() Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then 'Ne rien faire Else ObjetPréc.SpecialEffect = fmSpecialEffectRaised End If Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Pierre
Michel Pierron
Re Pierre; Si tu souhaites réellement accéder à l'objet précédent: Dans ton module UserForm: Option Explicit Private Lbl() As New lblClass
Private Sub UserForm_Initialize() lblName = "" Dim Ctl As Control, i As Byte For Each Ctl In Me.Controls If Left(Ctl.Name, 5) = "Label" Then i = Val(Mid(Ctl.Name, 6)) ReDim Preserve Lbl(1 To i) Set Lbl(i).lblGroup = Ctl End If Next Ctl End Sub
Dans ton module standard: Option Explicit Public lblName As String
Dans ton module de classe(lblClass): Option Explicit Public WithEvents lblGroup As MSForms.Label
Private Sub lblGroup_Click() If Len(lblName) Then UserForm1.Controls(lblName).SpecialEffect = 1 lblGroup.SpecialEffect = 2 lblName = lblGroup.Name End Sub
MP
"Pierre Archambault" a écrit dans le message de news: ATctf.35127$
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken". Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique sur un autre Label, le précédent revienne à l'état original (Raised) tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré: Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click() Set Objet = LabelA1 Call EnfoncerBouton End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton() Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then 'Ne rien faire Else ObjetPréc.SpecialEffect = fmSpecialEffectRaised End If Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Pierre
Re Pierre;
Si tu souhaites réellement accéder à l'objet précédent:
Dans ton module UserForm:
Option Explicit
Private Lbl() As New lblClass
Private Sub UserForm_Initialize()
lblName = ""
Dim Ctl As Control, i As Byte
For Each Ctl In Me.Controls
If Left(Ctl.Name, 5) = "Label" Then
i = Val(Mid(Ctl.Name, 6))
ReDim Preserve Lbl(1 To i)
Set Lbl(i).lblGroup = Ctl
End If
Next Ctl
End Sub
Dans ton module standard:
Option Explicit
Public lblName As String
Dans ton module de classe(lblClass):
Option Explicit
Public WithEvents lblGroup As MSForms.Label
Private Sub lblGroup_Click()
If Len(lblName) Then UserForm1.Controls(lblName).SpecialEffect = 1
lblGroup.SpecialEffect = 2
lblName = lblGroup.Name
End Sub
MP
"Pierre Archambault" <pierre.archambault@videotron.ca> a écrit dans le
message de news: ATctf.35127$ZG5.816309@weber.videotron.net...
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement
Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur
clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken".
Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique
sur un autre Label, le précédent revienne à l'état original (Raised)
tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré:
Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click()
Set Objet = LabelA1
Call EnfoncerBouton
End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton()
Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then
'Ne rien faire
Else
ObjetPréc.SpecialEffect = fmSpecialEffectRaised
End If
Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes
résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur
clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Re Pierre; Si tu souhaites réellement accéder à l'objet précédent: Dans ton module UserForm: Option Explicit Private Lbl() As New lblClass
Private Sub UserForm_Initialize() lblName = "" Dim Ctl As Control, i As Byte For Each Ctl In Me.Controls If Left(Ctl.Name, 5) = "Label" Then i = Val(Mid(Ctl.Name, 6)) ReDim Preserve Lbl(1 To i) Set Lbl(i).lblGroup = Ctl End If Next Ctl End Sub
Dans ton module standard: Option Explicit Public lblName As String
Dans ton module de classe(lblClass): Option Explicit Public WithEvents lblGroup As MSForms.Label
Private Sub lblGroup_Click() If Len(lblName) Then UserForm1.Controls(lblName).SpecialEffect = 1 lblGroup.SpecialEffect = 2 lblName = lblGroup.Name End Sub
MP
"Pierre Archambault" a écrit dans le message de news: ATctf.35127$
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken". Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique sur un autre Label, le précédent revienne à l'état original (Raised) tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré: Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click() Set Objet = LabelA1 Call EnfoncerBouton End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton() Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then 'Ne rien faire Else ObjetPréc.SpecialEffect = fmSpecialEffectRaised End If Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Pierre
Pierre Archambault
Merci Michel
Bonne année, santé, prospérité, tout ce que tu désires.
Pierre
"Michel Pierron" a écrit dans le message de news:%
Re Pierre; Si tu souhaites réellement accéder à l'objet précédent: Dans ton module UserForm: Option Explicit Private Lbl() As New lblClass
Private Sub UserForm_Initialize() lblName = "" Dim Ctl As Control, i As Byte For Each Ctl In Me.Controls If Left(Ctl.Name, 5) = "Label" Then i = Val(Mid(Ctl.Name, 6)) ReDim Preserve Lbl(1 To i) Set Lbl(i).lblGroup = Ctl End If Next Ctl End Sub
Dans ton module standard: Option Explicit Public lblName As String
Dans ton module de classe(lblClass): Option Explicit Public WithEvents lblGroup As MSForms.Label
Private Sub lblGroup_Click() If Len(lblName) Then UserForm1.Controls(lblName).SpecialEffect = 1 lblGroup.SpecialEffect = 2 lblName = lblGroup.Name End Sub
MP
"Pierre Archambault" a écrit dans le message de news: ATctf.35127$
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur
clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken". Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique
sur un autre Label, le précédent revienne à l'état original (Raised) tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré: Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click() Set Objet = LabelA1 Call EnfoncerBouton End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton() Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then 'Ne rien faire Else ObjetPréc.SpecialEffect = fmSpecialEffectRaised End If Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Pierre
Merci Michel
Bonne année, santé, prospérité, tout ce que tu désires.
Pierre
"Michel Pierron" <michel.pierron@free.fr> a écrit dans le message de
news:%23SqsBvgDGHA.1028@TK2MSFTNGP11.phx.gbl...
Re Pierre;
Si tu souhaites réellement accéder à l'objet précédent:
Dans ton module UserForm:
Option Explicit
Private Lbl() As New lblClass
Private Sub UserForm_Initialize()
lblName = ""
Dim Ctl As Control, i As Byte
For Each Ctl In Me.Controls
If Left(Ctl.Name, 5) = "Label" Then
i = Val(Mid(Ctl.Name, 6))
ReDim Preserve Lbl(1 To i)
Set Lbl(i).lblGroup = Ctl
End If
Next Ctl
End Sub
Dans ton module standard:
Option Explicit
Public lblName As String
Dans ton module de classe(lblClass):
Option Explicit
Public WithEvents lblGroup As MSForms.Label
Private Sub lblGroup_Click()
If Len(lblName) Then UserForm1.Controls(lblName).SpecialEffect = 1
lblGroup.SpecialEffect = 2
lblName = lblGroup.Name
End Sub
MP
"Pierre Archambault" <pierre.archambault@videotron.ca> a écrit dans le
message de news: ATctf.35127$ZG5.816309@weber.videotron.net...
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement
Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque
l'utilisateur
clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken".
Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager
clique
sur un autre Label, le précédent revienne à l'état original (Raised)
tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré:
Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click()
Set Objet = LabelA1
Call EnfoncerBouton
End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton()
Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then
'Ne rien faire
Else
ObjetPréc.SpecialEffect = fmSpecialEffectRaised
End If
Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes
résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur
clique. Impossible de faire reprendre l'état "Raised" au Label
précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.
Bonne année, santé, prospérité, tout ce que tu désires.
Pierre
"Michel Pierron" a écrit dans le message de news:%
Re Pierre; Si tu souhaites réellement accéder à l'objet précédent: Dans ton module UserForm: Option Explicit Private Lbl() As New lblClass
Private Sub UserForm_Initialize() lblName = "" Dim Ctl As Control, i As Byte For Each Ctl In Me.Controls If Left(Ctl.Name, 5) = "Label" Then i = Val(Mid(Ctl.Name, 6)) ReDim Preserve Lbl(1 To i) Set Lbl(i).lblGroup = Ctl End If Next Ctl End Sub
Dans ton module standard: Option Explicit Public lblName As String
Dans ton module de classe(lblClass): Option Explicit Public WithEvents lblGroup As MSForms.Label
Private Sub lblGroup_Click() If Len(lblName) Then UserForm1.Controls(lblName).SpecialEffect = 1 lblGroup.SpecialEffect = 2 lblName = lblGroup.Name End Sub
MP
"Pierre Archambault" a écrit dans le message de news: ATctf.35127$
Bonjour à tous,
J'ai un UserForm qui contient 20 Labels qui doivent réagir à l'événement Click. Tous ces Labels ont l'effet spécial "Raised". Lorsque l'utilisateur
clique sur un des Labels, ce dernier s'enfonce comme un bouton "Sunken". Cela fonctionne sans problème mais je veux qu'aussitôt que l'usager clique
sur un autre Label, le précédent revienne à l'état original (Raised) tandis
que le Label actuel s'enfonce "Sunken".
J'avais d'abord programmé chacun des Labels pour obtenir l'effet désiré: Dans le module du UserForme:
Public Objet As Control
Private Sub LabelA1_Click() Set Objet = LabelA1 Call EnfoncerBouton End Sub
Puis une procédure pour passer de "Raised" à "Sunken":
Public Sub EnfoncerBouton() Static ObjetPréc As Control
If Objet.SpecialEffect = fmSpecialEffectSunken Then Exit Sub
Objet.SpecialEffect = fmSpecialEffectSunken
If ObjetPréc Is Nothing Then 'Ne rien faire Else ObjetPréc.SpecialEffect = fmSpecialEffectRaised End If Set ObjetPréc = Objet
End Sub
Mais voilà, si j'utilise un module de classe pour arriver aux mêmes résultat, cela ne fonctionne que pour le Label sur lequel l'utilisateur clique. Impossible de faire reprendre l'état "Raised" au Label précédent.
Si quelqu'un a une idée, je vous en remercie à l'avance.