Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
........) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
........) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
........) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
essaye de suivre les fils que tu inities. Ainsi tu verras que je t'ai
répondu hier en t'indiquant une méthode qui est reproductible à bien des
questions récurrentes sur "comment ne pas répéter des procédures
identiques pour un même type de controles".
A+Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels
(comme indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
essaye de suivre les fils que tu inities. Ainsi tu verras que je t'ai
répondu hier en t'indiquant une méthode qui est reproductible à bien des
questions récurrentes sur "comment ne pas répéter des procédures
identiques pour un même type de controles".
A+
Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels
(comme indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
essaye de suivre les fils que tu inities. Ainsi tu verras que je t'ai
répondu hier en t'indiquant une méthode qui est reproductible à bien des
questions récurrentes sur "comment ne pas répéter des procédures
identiques pour un même type de controles".
A+Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels
(comme indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
bon,
Imaginons que tes labels s'appellent label1, label2, et ainsi de suite
jusqu'à label6 . Ici c'est une exemple.
On va faire un module de classe (comme indiqué dans mon POST de réponse à
une de tes questions similaires d'hier). Le problème , ici c'est que la
classe MSForms.label n'a pas de propriété Name accessible par module de
classe. Donc , on va ruser et utiliser la propriété Accelerator qui elle
est accessible. Pour eviter que Accelerator soit visible en mode normal du
UF , on l'invalidera à l'issue du module de classe.
Dans l'exemple qui suit, on a déclaré les accelerators des labels dans les
propriétés du UF et les plages de cellules correspondantes dans des
Arrays.
label1 a recu l'accelerator "Z", label2 "y", label3 "x" et ainsi de suite
jusqu'à "2".Parallèlement, on a rangé dans l'Array arrlblcaption les
plages "D10", "F10" etc dans l'ordre dans lequel on veut voir correspondre
"z" avec Range("D10"),"y" avec range("F10"),etc...
Exemple:
Dans un module de classe nommé Classe1 écrire
Public WithEvents lbl As MSForms.Label
Private Sub lbl_Click()
arracclbl = Array("Z", "y", "x", "w", "v", "2")
With Sheets("Feuil3") 'ici l'exemple prend ses valeurs en Feuil3
arrlblcaption = Array(.Range("D10"), .Range("F10"), .Range("H10"),
.Range("J10"), .Range("L10"), .Range("N10"))
End With
With lbl
.Caption =
arrlblcaption(Application.WorksheetFunction.Match(.Accelerator, arracclbl,
0) - 1)
.Accelerator = ""
End With
End Sub
Dans le module du UF, écrire
Dim labelsuf(1 To 6) As New Classe1
Private Sub UserForm_Initialize()
For i = 1 To 6
Set labelsuf(i).lbl = Me.Controls("label" & i)
Next
End Sub
Au final si tu respectes les déclarations, quand tu cliqueras sur label1
p.e, celui recevra la valeur de range("D10") puisque l'accelerator de
label1 est "z" et que Application.WorksheetFunction.Match(.Accelerator,
arracclbl, 0) - 1 aura envoyé 0 et que arrlblcaption (0) vaut
range("D10").
A+essaye de suivre les fils que tu inities. Ainsi tu verras que je t'ai
répondu hier en t'indiquant une méthode qui est reproductible à bien des
questions récurrentes sur "comment ne pas répéter des procédures
identiques pour un même type de controles".
A+Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
bon,
Imaginons que tes labels s'appellent label1, label2, et ainsi de suite
jusqu'à label6 . Ici c'est une exemple.
On va faire un module de classe (comme indiqué dans mon POST de réponse à
une de tes questions similaires d'hier). Le problème , ici c'est que la
classe MSForms.label n'a pas de propriété Name accessible par module de
classe. Donc , on va ruser et utiliser la propriété Accelerator qui elle
est accessible. Pour eviter que Accelerator soit visible en mode normal du
UF , on l'invalidera à l'issue du module de classe.
Dans l'exemple qui suit, on a déclaré les accelerators des labels dans les
propriétés du UF et les plages de cellules correspondantes dans des
Arrays.
label1 a recu l'accelerator "Z", label2 "y", label3 "x" et ainsi de suite
jusqu'à "2".Parallèlement, on a rangé dans l'Array arrlblcaption les
plages "D10", "F10" etc dans l'ordre dans lequel on veut voir correspondre
"z" avec Range("D10"),"y" avec range("F10"),etc...
Exemple:
Dans un module de classe nommé Classe1 écrire
Public WithEvents lbl As MSForms.Label
Private Sub lbl_Click()
arracclbl = Array("Z", "y", "x", "w", "v", "2")
With Sheets("Feuil3") 'ici l'exemple prend ses valeurs en Feuil3
arrlblcaption = Array(.Range("D10"), .Range("F10"), .Range("H10"),
.Range("J10"), .Range("L10"), .Range("N10"))
End With
With lbl
.Caption =
arrlblcaption(Application.WorksheetFunction.Match(.Accelerator, arracclbl,
0) - 1)
.Accelerator = ""
End With
End Sub
Dans le module du UF, écrire
Dim labelsuf(1 To 6) As New Classe1
Private Sub UserForm_Initialize()
For i = 1 To 6
Set labelsuf(i).lbl = Me.Controls("label" & i)
Next
End Sub
Au final si tu respectes les déclarations, quand tu cliqueras sur label1
p.e, celui recevra la valeur de range("D10") puisque l'accelerator de
label1 est "z" et que Application.WorksheetFunction.Match(.Accelerator,
arracclbl, 0) - 1 aura envoyé 0 et que arrlblcaption (0) vaut
range("D10").
A+
essaye de suivre les fils que tu inities. Ainsi tu verras que je t'ai
répondu hier en t'indiquant une méthode qui est reproductible à bien des
questions récurrentes sur "comment ne pas répéter des procédures
identiques pour un même type de controles".
A+
Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
bon,
Imaginons que tes labels s'appellent label1, label2, et ainsi de suite
jusqu'à label6 . Ici c'est une exemple.
On va faire un module de classe (comme indiqué dans mon POST de réponse à
une de tes questions similaires d'hier). Le problème , ici c'est que la
classe MSForms.label n'a pas de propriété Name accessible par module de
classe. Donc , on va ruser et utiliser la propriété Accelerator qui elle
est accessible. Pour eviter que Accelerator soit visible en mode normal du
UF , on l'invalidera à l'issue du module de classe.
Dans l'exemple qui suit, on a déclaré les accelerators des labels dans les
propriétés du UF et les plages de cellules correspondantes dans des
Arrays.
label1 a recu l'accelerator "Z", label2 "y", label3 "x" et ainsi de suite
jusqu'à "2".Parallèlement, on a rangé dans l'Array arrlblcaption les
plages "D10", "F10" etc dans l'ordre dans lequel on veut voir correspondre
"z" avec Range("D10"),"y" avec range("F10"),etc...
Exemple:
Dans un module de classe nommé Classe1 écrire
Public WithEvents lbl As MSForms.Label
Private Sub lbl_Click()
arracclbl = Array("Z", "y", "x", "w", "v", "2")
With Sheets("Feuil3") 'ici l'exemple prend ses valeurs en Feuil3
arrlblcaption = Array(.Range("D10"), .Range("F10"), .Range("H10"),
.Range("J10"), .Range("L10"), .Range("N10"))
End With
With lbl
.Caption =
arrlblcaption(Application.WorksheetFunction.Match(.Accelerator, arracclbl,
0) - 1)
.Accelerator = ""
End With
End Sub
Dans le module du UF, écrire
Dim labelsuf(1 To 6) As New Classe1
Private Sub UserForm_Initialize()
For i = 1 To 6
Set labelsuf(i).lbl = Me.Controls("label" & i)
Next
End Sub
Au final si tu respectes les déclarations, quand tu cliqueras sur label1
p.e, celui recevra la valeur de range("D10") puisque l'accelerator de
label1 est "z" et que Application.WorksheetFunction.Match(.Accelerator,
arracclbl, 0) - 1 aura envoyé 0 et que arrlblcaption (0) vaut
range("D10").
A+essaye de suivre les fils que tu inities. Ainsi tu verras que je t'ai
répondu hier en t'indiquant une méthode qui est reproductible à bien des
questions récurrentes sur "comment ne pas répéter des procédures
identiques pour un même type de controles".
A+Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Tes labels sont regroupés dans un UserForm ????
La commnade Load du UserForm attribuera les données voulues losrque ton
événement déclencahnt la macro sera rencontré.
LoadBonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
........) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Tes labels sont regroupés dans un UserForm ????
La commnade Load du UserForm attribuera les données voulues losrque ton
événement déclencahnt la macro sera rencontré.
Load
Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
........) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Tes labels sont regroupés dans un UserForm ????
La commnade Load du UserForm attribuera les données voulues losrque ton
événement déclencahnt la macro sera rencontré.
LoadBonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
........) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Bonjour,
Si vos label sont sur une feuille de calcul comme je pense avoir compris,
procédez comme suit:
Sub cmdFillLabel()
Dim I As Integer
Dim intColumn As Integer
intColumn = 4' ColonneD
For I = 1 To 50
ActiveSheet.Shapes("Étiquette " & I).Select
Selection.Characters.Text = Cells(10, intColumn)
intColumn = intColumn + 1
Next
End Sub
Argy
--
Mes tutoriels sur http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on
obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment
Tes labels sont regroupés dans un UserForm ????
La commnade Load du UserForm attribuera les données voulues losrque ton
événement déclencahnt la macro sera rencontré.
LoadBonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25
contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
........) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Bonjour,
Si vos label sont sur une feuille de calcul comme je pense avoir compris,
procédez comme suit:
Sub cmdFillLabel()
Dim I As Integer
Dim intColumn As Integer
intColumn = 4' ColonneD
For I = 1 To 50
ActiveSheet.Shapes("Étiquette " & I).Select
Selection.Characters.Text = Cells(10, intColumn)
intColumn = intColumn + 1
Next
End Sub
Argy
--
Mes tutoriels sur http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on
obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment
Tes labels sont regroupés dans un UserForm ????
La commnade Load du UserForm attribuera les données voulues losrque ton
événement déclencahnt la macro sera rencontré.
Load
Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25
contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
........) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Bonjour,
Si vos label sont sur une feuille de calcul comme je pense avoir compris,
procédez comme suit:
Sub cmdFillLabel()
Dim I As Integer
Dim intColumn As Integer
intColumn = 4' ColonneD
For I = 1 To 50
ActiveSheet.Shapes("Étiquette " & I).Select
Selection.Characters.Text = Cells(10, intColumn)
intColumn = intColumn + 1
Next
End Sub
Argy
--
Mes tutoriels sur http://argyronet.developpez.com/
Ce qui donne son sens à la communication, c´est la réponse que l´on
obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment
Tes labels sont regroupés dans un UserForm ????
La commnade Load du UserForm attribuera les données voulues losrque ton
événement déclencahnt la macro sera rencontré.
LoadBonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25
contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
........) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Message à "AnonymousA"
Je n'en doute plus tu es très fort et tu ne va pas en douté non plus, je
suis très nul !
J'ai recu tes messages mais voilà.... En me relisant, je m'appercois que je
me suis très mal exprimé (j'me suis emmelé les pinceaux). Alors je
t'explique tout :
En fait, lorsque je change de données dans un combobox, je change de page
(soit un combobox comprenant les douzes mois et à chaque selection d'un mois
je change de page donc 12 pages)
Dans chacune de mes pages, les données à reporter dans mes labels se
trouvent sur le même numéro de ligne (10) et en sotant une colonne (soit
D10, F10, etc... comme tu l'as compris).
Je voudrait donc que les labels (au nombre de 50) s'alimentent
automatiquement à chaque changement de séléction du combobox (et donc
changement de pages).
Voilà en priant ton indulgence.... Je te souhaite une bonne soirée ou
journée selon....
A+
"anonymousA" a écrit dans le message de news:
434193b5$0$5403$bon,
Imaginons que tes labels s'appellent label1, label2, et ainsi de suite
jusqu'à label6 . Ici c'est une exemple.
On va faire un module de classe (comme indiqué dans mon POST de réponse à
une de tes questions similaires d'hier). Le problème , ici c'est que la
classe MSForms.label n'a pas de propriété Name accessible par module de
classe. Donc , on va ruser et utiliser la propriété Accelerator qui elle
est accessible. Pour eviter que Accelerator soit visible en mode normal du
UF , on l'invalidera à l'issue du module de classe.
Dans l'exemple qui suit, on a déclaré les accelerators des labels dans les
propriétés du UF et les plages de cellules correspondantes dans des
Arrays.
label1 a recu l'accelerator "Z", label2 "y", label3 "x" et ainsi de suite
jusqu'à "2".Parallèlement, on a rangé dans l'Array arrlblcaption les
plages "D10", "F10" etc dans l'ordre dans lequel on veut voir correspondre
"z" avec Range("D10"),"y" avec range("F10"),etc...
Exemple:
Dans un module de classe nommé Classe1 écrire
Public WithEvents lbl As MSForms.Label
Private Sub lbl_Click()
arracclbl = Array("Z", "y", "x", "w", "v", "2")
With Sheets("Feuil3") 'ici l'exemple prend ses valeurs en Feuil3
arrlblcaption = Array(.Range("D10"), .Range("F10"), .Range("H10"),
.Range("J10"), .Range("L10"), .Range("N10"))
End With
With lbl
.Caption =
arrlblcaption(Application.WorksheetFunction.Match(.Accelerator, arracclbl,
0) - 1)
.Accelerator = ""
End With
End Sub
Dans le module du UF, écrire
Dim labelsuf(1 To 6) As New Classe1
Private Sub UserForm_Initialize()
For i = 1 To 6
Set labelsuf(i).lbl = Me.Controls("label" & i)
Next
End Sub
Au final si tu respectes les déclarations, quand tu cliqueras sur label1
p.e, celui recevra la valeur de range("D10") puisque l'accelerator de
label1 est "z" et que Application.WorksheetFunction.Match(.Accelerator,
arracclbl, 0) - 1 aura envoyé 0 et que arrlblcaption (0) vaut
range("D10").
A+essaye de suivre les fils que tu inities. Ainsi tu verras que je t'ai
répondu hier en t'indiquant une méthode qui est reproductible à bien des
questions récurrentes sur "comment ne pas répéter des procédures
identiques pour un même type de controles".
A+Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Message à "AnonymousA"
Je n'en doute plus tu es très fort et tu ne va pas en douté non plus, je
suis très nul !
J'ai recu tes messages mais voilà.... En me relisant, je m'appercois que je
me suis très mal exprimé (j'me suis emmelé les pinceaux). Alors je
t'explique tout :
En fait, lorsque je change de données dans un combobox, je change de page
(soit un combobox comprenant les douzes mois et à chaque selection d'un mois
je change de page donc 12 pages)
Dans chacune de mes pages, les données à reporter dans mes labels se
trouvent sur le même numéro de ligne (10) et en sotant une colonne (soit
D10, F10, etc... comme tu l'as compris).
Je voudrait donc que les labels (au nombre de 50) s'alimentent
automatiquement à chaque changement de séléction du combobox (et donc
changement de pages).
Voilà en priant ton indulgence.... Je te souhaite une bonne soirée ou
journée selon....
A+
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
434193b5$0$5403$8fcfb975@news.wanadoo.fr...
bon,
Imaginons que tes labels s'appellent label1, label2, et ainsi de suite
jusqu'à label6 . Ici c'est une exemple.
On va faire un module de classe (comme indiqué dans mon POST de réponse à
une de tes questions similaires d'hier). Le problème , ici c'est que la
classe MSForms.label n'a pas de propriété Name accessible par module de
classe. Donc , on va ruser et utiliser la propriété Accelerator qui elle
est accessible. Pour eviter que Accelerator soit visible en mode normal du
UF , on l'invalidera à l'issue du module de classe.
Dans l'exemple qui suit, on a déclaré les accelerators des labels dans les
propriétés du UF et les plages de cellules correspondantes dans des
Arrays.
label1 a recu l'accelerator "Z", label2 "y", label3 "x" et ainsi de suite
jusqu'à "2".Parallèlement, on a rangé dans l'Array arrlblcaption les
plages "D10", "F10" etc dans l'ordre dans lequel on veut voir correspondre
"z" avec Range("D10"),"y" avec range("F10"),etc...
Exemple:
Dans un module de classe nommé Classe1 écrire
Public WithEvents lbl As MSForms.Label
Private Sub lbl_Click()
arracclbl = Array("Z", "y", "x", "w", "v", "2")
With Sheets("Feuil3") 'ici l'exemple prend ses valeurs en Feuil3
arrlblcaption = Array(.Range("D10"), .Range("F10"), .Range("H10"),
.Range("J10"), .Range("L10"), .Range("N10"))
End With
With lbl
.Caption =
arrlblcaption(Application.WorksheetFunction.Match(.Accelerator, arracclbl,
0) - 1)
.Accelerator = ""
End With
End Sub
Dans le module du UF, écrire
Dim labelsuf(1 To 6) As New Classe1
Private Sub UserForm_Initialize()
For i = 1 To 6
Set labelsuf(i).lbl = Me.Controls("label" & i)
Next
End Sub
Au final si tu respectes les déclarations, quand tu cliqueras sur label1
p.e, celui recevra la valeur de range("D10") puisque l'accelerator de
label1 est "z" et que Application.WorksheetFunction.Match(.Accelerator,
arracclbl, 0) - 1 aura envoyé 0 et que arrlblcaption (0) vaut
range("D10").
A+
essaye de suivre les fils que tu inities. Ainsi tu verras que je t'ai
répondu hier en t'indiquant une méthode qui est reproductible à bien des
questions récurrentes sur "comment ne pas répéter des procédures
identiques pour un même type de controles".
A+
Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!
Message à "AnonymousA"
Je n'en doute plus tu es très fort et tu ne va pas en douté non plus, je
suis très nul !
J'ai recu tes messages mais voilà.... En me relisant, je m'appercois que je
me suis très mal exprimé (j'me suis emmelé les pinceaux). Alors je
t'explique tout :
En fait, lorsque je change de données dans un combobox, je change de page
(soit un combobox comprenant les douzes mois et à chaque selection d'un mois
je change de page donc 12 pages)
Dans chacune de mes pages, les données à reporter dans mes labels se
trouvent sur le même numéro de ligne (10) et en sotant une colonne (soit
D10, F10, etc... comme tu l'as compris).
Je voudrait donc que les labels (au nombre de 50) s'alimentent
automatiquement à chaque changement de séléction du combobox (et donc
changement de pages).
Voilà en priant ton indulgence.... Je te souhaite une bonne soirée ou
journée selon....
A+
"anonymousA" a écrit dans le message de news:
434193b5$0$5403$bon,
Imaginons que tes labels s'appellent label1, label2, et ainsi de suite
jusqu'à label6 . Ici c'est une exemple.
On va faire un module de classe (comme indiqué dans mon POST de réponse à
une de tes questions similaires d'hier). Le problème , ici c'est que la
classe MSForms.label n'a pas de propriété Name accessible par module de
classe. Donc , on va ruser et utiliser la propriété Accelerator qui elle
est accessible. Pour eviter que Accelerator soit visible en mode normal du
UF , on l'invalidera à l'issue du module de classe.
Dans l'exemple qui suit, on a déclaré les accelerators des labels dans les
propriétés du UF et les plages de cellules correspondantes dans des
Arrays.
label1 a recu l'accelerator "Z", label2 "y", label3 "x" et ainsi de suite
jusqu'à "2".Parallèlement, on a rangé dans l'Array arrlblcaption les
plages "D10", "F10" etc dans l'ordre dans lequel on veut voir correspondre
"z" avec Range("D10"),"y" avec range("F10"),etc...
Exemple:
Dans un module de classe nommé Classe1 écrire
Public WithEvents lbl As MSForms.Label
Private Sub lbl_Click()
arracclbl = Array("Z", "y", "x", "w", "v", "2")
With Sheets("Feuil3") 'ici l'exemple prend ses valeurs en Feuil3
arrlblcaption = Array(.Range("D10"), .Range("F10"), .Range("H10"),
.Range("J10"), .Range("L10"), .Range("N10"))
End With
With lbl
.Caption =
arrlblcaption(Application.WorksheetFunction.Match(.Accelerator, arracclbl,
0) - 1)
.Accelerator = ""
End With
End Sub
Dans le module du UF, écrire
Dim labelsuf(1 To 6) As New Classe1
Private Sub UserForm_Initialize()
For i = 1 To 6
Set labelsuf(i).lbl = Me.Controls("label" & i)
Next
End Sub
Au final si tu respectes les déclarations, quand tu cliqueras sur label1
p.e, celui recevra la valeur de range("D10") puisque l'accelerator de
label1 est "z" et que Application.WorksheetFunction.Match(.Accelerator,
arracclbl, 0) - 1 aura envoyé 0 et que arrlblcaption (0) vaut
range("D10").
A+essaye de suivre les fils que tu inities. Ainsi tu verras que je t'ai
répondu hier en t'indiquant une méthode qui est reproductible à bien des
questions récurrentes sur "comment ne pas répéter des procédures
identiques pour un même type de controles".
A+Bonjour,
Dés que je clique sur un commandbutton, je voudrais remplir 25 contrôles
(label) nommés Jour1, Jour2,.... à l'aide de données qui se trouve sur
une
feuille excel.
Les données se trouvent alignées sur la ligne 10 (commencent en D10) et
sautent une colonne à chaque fois (soit données en D10, F10, H10, I10,
.......) du fait de la fusion des cellules D10/E1 ; F10/G10 ; etc....
Comment faire pour éviter une saisie dans chaqu'un des 25 labels (comme
indiqué ci dessous) ?
Private Sub Jour1_Click ( )
Jour1.Caption = [D10]
End Sub
Private Sub Jour2_Click ( )
Jour2.Caption = [F10]
End Sub
Etc....
Merci beaucoup !!!!