OVH Cloud OVH Cloud

Mise à jour Label (bis)

3 réponses
Avatar
Emcy
Salut, je repose ma question car ce qu'on m'a dis ne=20
fonctionne pas.

'************************************

Salut Emcy,
Essai avec ceci, pas test=E9 car trop de labels et puis un=20
peu f=E9n=E9ant :

Private Declare Function LockWindowUpdate Lib "user32" _
(ByVal HwndLock As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal=20
lpWindowName _
As String) As Long

Sub MAJCalendrierAnn=E9e(Optional a As Boolean)

Dim Bisextile As Boolean
Dim TableauJour() As Variant
Dim PremierJour As Byte
Dim i As Integer
Dim j As Integer
'fige la mise =E0 jour (normalement ;o))
LockWindowUpdate FindWindow(vbNullString, Me.Caption)

CalendrierAnn=E9e.LabelAnn=E9e.Caption =3D MoisSelection.Ann=E9e

TableauJour =3D Array("L", "M", "M", "J", "V", "S", "D")
PremierJour =3D Weekday(DateSerial(MoisSelection.Ann=E9e, 1, _
1), vbMonday)

For j =3D 0 To 365

i =3D j + 366


CalendrierAnn=E9e.Controls(i).Caption =3D TableauJour _
(PremierJour - 1)

PremierJour =3D PremierJour + 1
If PremierJour =3D 8 Then PremierJour =3D 1

Next j
're-dessine
LockWindowUpdate 0&
End Sub

Herv=E9.

"Emcy" a =E9crit dans le message news:
0f9f01c3a22a$49912140$a401280a@phx.gbl...
Salut,

j'ai un Userform avec 732 Label. Lorsque j'appuye sur un
bouton, =E7a lance cette macro :

Sub MAJCalendrierAnn=E9e(Optional a As Boolean)

Dim Bisextile As Boolean
Dim TableauJour() As Variant
Dim PremierJour As Byte
Dim i As Integer
Dim j As Integer

Application.ScreenUpdating =3D False

CalendrierAnn=E9e.LabelAnn=E9e.Caption =3D MoisSelection.Ann=E9e

TableauJour =3D Array("L", "M", "M", "J", "V", "S", "D")
PremierJour =3D Weekday(DateSerial(MoisSelection.Ann=E9e, 1,
1), vbMonday)

For j =3D 0 To 365

i =3D j + 366


CalendrierAnn=E9e.Controls(i).Caption =3D TableauJour
(PremierJour - 1)

PremierJour =3D PremierJour + 1
If PremierJour =3D 8 Then PremierJour =3D 1

Next j

Application.ScreenUpdating =3D True

End Sub

=3D> en gros cette macro remet les valeur de mes Labels =E0
jour.

Ce que je ne comprend pas, c'est que les labels
disparaissent puis r=E9apparaissent (pas tous en m=EAme
temps) pendant que la macro est lanc=E9e =3D> peut-on =E9citer
ce Ph=E9nom=E8ne ?

3 réponses

Avatar
Michel Pierron
Bonjour Emcy;
Les labels, ils n'ont pas de nom ?
Ce ne serait pas plutôt quelque chose du genre:
CalendrierAnnée.Controls("Label" & i).Caption = TableauJour(PremierJour - 1)
MP

"Emcy" a écrit dans le message de
news:01e301c3a2ab$ff0e4b20$
Salut, je repose ma question car ce qu'on m'a dis ne
fonctionne pas.

'************************************

Salut Emcy,
Essai avec ceci, pas testé car trop de labels et puis un
peu fénéant :

Private Declare Function LockWindowUpdate Lib "user32" _
(ByVal HwndLock As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal
lpWindowName _
As String) As Long

Sub MAJCalendrierAnnée(Optional a As Boolean)

Dim Bisextile As Boolean
Dim TableauJour() As Variant
Dim PremierJour As Byte
Dim i As Integer
Dim j As Integer
'fige la mise à jour (normalement ;o))
LockWindowUpdate FindWindow(vbNullString, Me.Caption)

CalendrierAnnée.LabelAnnée.Caption = MoisSelection.Année

TableauJour = Array("L", "M", "M", "J", "V", "S", "D")
PremierJour = Weekday(DateSerial(MoisSelection.Année, 1, _
1), vbMonday)

For j = 0 To 365

i = j + 366


CalendrierAnnée.Controls(i).Caption = TableauJour _
(PremierJour - 1)

PremierJour = PremierJour + 1
If PremierJour = 8 Then PremierJour = 1

Next j
're-dessine
LockWindowUpdate 0&
End Sub

Hervé.

"Emcy" a écrit dans le message news:
0f9f01c3a22a$49912140$
Salut,

j'ai un Userform avec 732 Label. Lorsque j'appuye sur un
bouton, ça lance cette macro :

Sub MAJCalendrierAnnée(Optional a As Boolean)

Dim Bisextile As Boolean
Dim TableauJour() As Variant
Dim PremierJour As Byte
Dim i As Integer
Dim j As Integer

Application.ScreenUpdating = False

CalendrierAnnée.LabelAnnée.Caption = MoisSelection.Année

TableauJour = Array("L", "M", "M", "J", "V", "S", "D")
PremierJour = Weekday(DateSerial(MoisSelection.Année, 1,
1), vbMonday)

For j = 0 To 365

i = j + 366


CalendrierAnnée.Controls(i).Caption = TableauJour
(PremierJour - 1)

PremierJour = PremierJour + 1
If PremierJour = 8 Then PremierJour = 1

Next j

Application.ScreenUpdating = True

End Sub

=> en gros cette macro remet les valeur de mes Labels à
jour.

Ce que je ne comprend pas, c'est que les labels
disparaissent puis réapparaissent (pas tous en même
temps) pendant que la macro est lancée => peut-on éciter
ce Phénomène ?
Avatar
Emcy
Salut,

Je crois que tu n'as pas bien compris le problème :
j'arrive bien à les mettres à jours mais j'ai un problème
d'affichage. je sais pas pourquoi lorsque je lance la
macro, le rafraichissement d'écran se fait n'importe
comment : les labels disparaissent puis réaparraissent
(pas en même temps). Si tu veux je peux t'envoyer le
classeur pour que tu comprennes mieux

-----Message d'origine-----
Bonjour Emcy;
Les labels, ils n'ont pas de nom ?
Ce ne serait pas plutôt quelque chose du genre:
CalendrierAnnée.Controls("Label" & i).Caption =
TableauJour(PremierJour - 1)

MP

"Emcy" a écrit
dans le message de

news:01e301c3a2ab$ff0e4b20$
Salut, je repose ma question car ce qu'on m'a dis ne
fonctionne pas.

'************************************

Salut Emcy,
Essai avec ceci, pas testé car trop de labels et puis un
peu fénéant :

Private Declare Function LockWindowUpdate Lib "user32" _
(ByVal HwndLock As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal
lpWindowName _
As String) As Long

Sub MAJCalendrierAnnée(Optional a As Boolean)

Dim Bisextile As Boolean
Dim TableauJour() As Variant
Dim PremierJour As Byte
Dim i As Integer
Dim j As Integer
'fige la mise à jour (normalement ;o))
LockWindowUpdate FindWindow(vbNullString, Me.Caption)

CalendrierAnnée.LabelAnnée.Caption = MoisSelection.Année

TableauJour = Array("L", "M", "M", "J", "V", "S", "D")
PremierJour = Weekday(DateSerial(MoisSelection.Année, 1,
_

1), vbMonday)

For j = 0 To 365

i = j + 366


CalendrierAnnée.Controls(i).Caption = TableauJour _
(PremierJour - 1)

PremierJour = PremierJour + 1
If PremierJour = 8 Then PremierJour = 1

Next j
're-dessine
LockWindowUpdate 0&
End Sub

Hervé.

"Emcy" a écrit dans le message news:
0f9f01c3a22a$49912140$
Salut,

j'ai un Userform avec 732 Label. Lorsque j'appuye sur un
bouton, ça lance cette macro :

Sub MAJCalendrierAnnée(Optional a As Boolean)

Dim Bisextile As Boolean
Dim TableauJour() As Variant
Dim PremierJour As Byte
Dim i As Integer
Dim j As Integer

Application.ScreenUpdating = False

CalendrierAnnée.LabelAnnée.Caption = MoisSelection.Année

TableauJour = Array("L", "M", "M", "J", "V", "S", "D")
PremierJour = Weekday(DateSerial(MoisSelection.Année, 1,
1), vbMonday)

For j = 0 To 365

i = j + 366


CalendrierAnnée.Controls(i).Caption = TableauJour
(PremierJour - 1)

PremierJour = PremierJour + 1
If PremierJour = 8 Then PremierJour = 1

Next j

Application.ScreenUpdating = True

End Sub

=> en gros cette macro remet les valeur de mes Labels à
jour.

Ce que je ne comprend pas, c'est que les labels
disparaissent puis réapparaissent (pas tous en même
temps) pendant que la macro est lancée => peut-on éciter
ce Phénomène ?


.



Avatar
Michel Pierron
Oui; fais peter in my box;
MP
"Emcy" a écrit dans le message de
news:091d01c3a2b1$d8fcc0a0$
Salut,

Je crois que tu n'as pas bien compris le problème :
j'arrive bien à les mettres à jours mais j'ai un problème
d'affichage. je sais pas pourquoi lorsque je lance la
macro, le rafraichissement d'écran se fait n'importe
comment : les labels disparaissent puis réaparraissent
(pas en même temps). Si tu veux je peux t'envoyer le
classeur pour que tu comprennes mieux

-----Message d'origine-----
Bonjour Emcy;
Les labels, ils n'ont pas de nom ?
Ce ne serait pas plutôt quelque chose du genre:
CalendrierAnnée.Controls("Label" & i).Caption TableauJour(PremierJour - 1)
MP

"Emcy" a écrit
dans le message de

news:01e301c3a2ab$ff0e4b20$
Salut, je repose ma question car ce qu'on m'a dis ne
fonctionne pas.

'************************************

Salut Emcy,
Essai avec ceci, pas testé car trop de labels et puis un
peu fénéant :

Private Declare Function LockWindowUpdate Lib "user32" _
(ByVal HwndLock As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal
lpWindowName _
As String) As Long

Sub MAJCalendrierAnnée(Optional a As Boolean)

Dim Bisextile As Boolean
Dim TableauJour() As Variant
Dim PremierJour As Byte
Dim i As Integer
Dim j As Integer
'fige la mise à jour (normalement ;o))
LockWindowUpdate FindWindow(vbNullString, Me.Caption)

CalendrierAnnée.LabelAnnée.Caption = MoisSelection.Année

TableauJour = Array("L", "M", "M", "J", "V", "S", "D")
PremierJour = Weekday(DateSerial(MoisSelection.Année, 1,
_

1), vbMonday)

For j = 0 To 365

i = j + 366


CalendrierAnnée.Controls(i).Caption = TableauJour _
(PremierJour - 1)

PremierJour = PremierJour + 1
If PremierJour = 8 Then PremierJour = 1

Next j
're-dessine
LockWindowUpdate 0&
End Sub

Hervé.

"Emcy" a écrit dans le message news:
0f9f01c3a22a$49912140$
Salut,

j'ai un Userform avec 732 Label. Lorsque j'appuye sur un
bouton, ça lance cette macro :

Sub MAJCalendrierAnnée(Optional a As Boolean)

Dim Bisextile As Boolean
Dim TableauJour() As Variant
Dim PremierJour As Byte
Dim i As Integer
Dim j As Integer

Application.ScreenUpdating = False

CalendrierAnnée.LabelAnnée.Caption = MoisSelection.Année

TableauJour = Array("L", "M", "M", "J", "V", "S", "D")
PremierJour = Weekday(DateSerial(MoisSelection.Année, 1,
1), vbMonday)

For j = 0 To 365

i = j + 366


CalendrierAnnée.Controls(i).Caption = TableauJour
(PremierJour - 1)

PremierJour = PremierJour + 1
If PremierJour = 8 Then PremierJour = 1

Next j

Application.ScreenUpdating = True

End Sub

=> en gros cette macro remet les valeur de mes Labels à
jour.

Ce que je ne comprend pas, c'est que les labels
disparaissent puis réapparaissent (pas tous en même
temps) pendant que la macro est lancée => peut-on éciter
ce Phénomène ?


.