Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maint enant je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'======================== ========================= ========================= ==================
' Mon module normal qui droit créer des CheckBox à l'execution, et quand on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le mom ent à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'======================== ========================= ========================= ==================
Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le m odule de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I" , "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC ", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM ", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW ", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG ", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt , True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACoche r)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================== ========================= ========================= ===============
Avant je mettait le code suivant à l'évènement de chaque case à co cher (at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================== ========================= ========================= ===============
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maint enant je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'======================== ========================= ========================= ==================
' Mon module normal qui droit créer des CheckBox à l'execution, et quand on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le mom ent à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'======================== ========================= ========================= ==================
Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le m odule de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I" , "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC ", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM ", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW ", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG ", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt , True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACoche r)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================== ========================= ========================= ===============
Avant je mettait le code suivant à l'évènement de chaque case à co cher (at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================== ========================= ========================= ===============
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maint enant je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'======================== ========================= ========================= ==================
' Mon module normal qui droit créer des CheckBox à l'execution, et quand on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le mom ent à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'======================== ========================= ========================= ==================
Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le m odule de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I" , "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC ", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM ", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW ", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG ", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt , True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACoche r)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================== ========================= ========================= ===============
Avant je mettait le code suivant à l'évènement de chaque case à co cher (at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================== ========================= ========================= ===============
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== > ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== > Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== > Avant je mettait le code suivant à l'évènement de chaque case à cocher (at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== > ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== > Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== > Avant je mettait le code suivant à l'évènement de chaque case à cocher (at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== > ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== > Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== > Avant je mettait le code suivant à l'évènement de chaque case à cocher (at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== > ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== > Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== > Avant je mettait le code suivant à l'évènement de chaque case à cocher (at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== > ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== > Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== > Avant je mettait le code suivant à l'évènement de chaque case à cocher (at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== > ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== > Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== > Avant je mettait le code suivant à l'évènement de chaque case à cocher (at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Un bout de code de Frédéric Sigonneau.. je crois !
Ajoute un commandbutton à un userform existant
'(avec le code de son événement Click)
Sub AddBouton()
Dim Usf As Object, btn As Object
Set Usf = ThisWorkbook.VBProject.VBComponents("Userform1")
Set btn = Usf.Designer.Controls.Add("forms.commandbutton.1")
With btn
.Caption = "Cliquer ici !..."
.Left = 60: .Top = 50
End With
With Usf.CodeModule
X = .CountOfLines
.insertlines X + 1, "Sub CommandButton1_Click()"
.insertlines X + 2, " MsgBox ""coucou"""
.insertlines X + 3, " unload Me"
.insertlines X + 4, "End Sub"
End With
VBA.UserForms.Add (Usf.Name)
UserForms(UserForms.Count - 1).Show
End Sub
"Gregory Hilaire" a écrit dans le message de news:
ufAdf%
Un grand Merci à MichDenis et à JB avec vos explications je vais encore
raffiner le code.
J'y étais presque: J'avais trouvé ceci
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Click()
Dim numero as byte
numero > val(iif(val(right(GrSaisie.name,2))=0,right(GrSaisie.name,1),right(GrSaisie.name,2)))
Columns(numero).Hidden = not GrSaisie.Value
End Sub
Un peu alambiqué pour rien :)
Maintenant ceci me porte à poser la question suivante est-il possible
d'avoir un code vba qui va ajouter des
procédures ou fonction à un "Control" que l'on a créé Dynamiquement. Du
Vba
qui modifie le Vba :) ?
Si oui un petit bout de code pour me mettre sur la piste et ensuite tout
ira
tout seul.
Par exemple je crée un bouton et lorsque l'on clique sur le bouton une
ligne
est caché par exemple !
UN GROS MERCI ENCORE UNE FOIS GRACE A VOUS TOUS JE ME SENS PROGRESSER
"JB" a écrit dans le message de news:
Bonjour,
Masque/Affiche colonnes:
http://cjoint.com/?cshZq32jbx
Dim n
Dim Chk(1 To 100) As New ClasseSaisie
Private Sub UserForm_Initialize()
n = 30
For b = 1 To n
retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & b, True)
Me("CheckBox" & b).Top = 60
Me("CheckBox" & b).Left = 10 + (b - 1) * 15
retour = Me.Controls.Add("Forms.Label.1", "Label" & b, True)
Me("Label" & b).Caption = Split(Cells(1, b).Address, "$")(1)
Me("Label" & b).Top = 40
Me("Label" & b).Left = 10 + (b - 1) * 15
Next
'--
For b = 1 To n: Set Chk(b).GrSaisie = Me("Checkbox" & b): Next b
End Sub
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
nomcheck = GrSaisie.Name
col = Val(Mid(GrSaisie.Name, 9))
Columns(col).Hidden = UserForm1.Controls(nomcheck).Value
End Sub
JB
On 17 fév, 23:41, "Gregory Hilaire" wrote:Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== >> ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== >> Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== >> Avant je mettait le code suivant à l'évènement de chaque case à cocher
(at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >>
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Un bout de code de Frédéric Sigonneau.. je crois !
Ajoute un commandbutton à un userform existant
'(avec le code de son événement Click)
Sub AddBouton()
Dim Usf As Object, btn As Object
Set Usf = ThisWorkbook.VBProject.VBComponents("Userform1")
Set btn = Usf.Designer.Controls.Add("forms.commandbutton.1")
With btn
.Caption = "Cliquer ici !..."
.Left = 60: .Top = 50
End With
With Usf.CodeModule
X = .CountOfLines
.insertlines X + 1, "Sub CommandButton1_Click()"
.insertlines X + 2, " MsgBox ""coucou"""
.insertlines X + 3, " unload Me"
.insertlines X + 4, "End Sub"
End With
VBA.UserForms.Add (Usf.Name)
UserForms(UserForms.Count - 1).Show
End Sub
"Gregory Hilaire" <ghilaire@sympatico.ca> a écrit dans le message de news:
ufAdf%23pcIHA.5164@TK2MSFTNGP03.phx.gbl...
Un grand Merci à MichDenis et à JB avec vos explications je vais encore
raffiner le code.
J'y étais presque: J'avais trouvé ceci
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Click()
Dim numero as byte
numero > val(iif(val(right(GrSaisie.name,2))=0,right(GrSaisie.name,1),right(GrSaisie.name,2)))
Columns(numero).Hidden = not GrSaisie.Value
End Sub
Un peu alambiqué pour rien :)
Maintenant ceci me porte à poser la question suivante est-il possible
d'avoir un code vba qui va ajouter des
procédures ou fonction à un "Control" que l'on a créé Dynamiquement. Du
Vba
qui modifie le Vba :) ?
Si oui un petit bout de code pour me mettre sur la piste et ensuite tout
ira
tout seul.
Par exemple je crée un bouton et lorsque l'on clique sur le bouton une
ligne
est caché par exemple !
UN GROS MERCI ENCORE UNE FOIS GRACE A VOUS TOUS JE ME SENS PROGRESSER
"JB" <boisgontier@hotmail.com> a écrit dans le message de news:
0df3bce7-f45c-4c1e-9e4a-bfa871b536fe@64g2000hsw.googlegroups.com...
Bonjour,
Masque/Affiche colonnes:
http://cjoint.com/?cshZq32jbx
Dim n
Dim Chk(1 To 100) As New ClasseSaisie
Private Sub UserForm_Initialize()
n = 30
For b = 1 To n
retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & b, True)
Me("CheckBox" & b).Top = 60
Me("CheckBox" & b).Left = 10 + (b - 1) * 15
retour = Me.Controls.Add("Forms.Label.1", "Label" & b, True)
Me("Label" & b).Caption = Split(Cells(1, b).Address, "$")(1)
Me("Label" & b).Top = 40
Me("Label" & b).Left = 10 + (b - 1) * 15
Next
'--
For b = 1 To n: Set Chk(b).GrSaisie = Me("Checkbox" & b): Next b
End Sub
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
nomcheck = GrSaisie.Name
col = Val(Mid(GrSaisie.Name, 9))
Columns(col).Hidden = UserForm1.Controls(nomcheck).Value
End Sub
JB
On 17 fév, 23:41, "Gregory Hilaire" <ghila...@sympatico.ca> wrote:
Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== >> ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== >> Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== >> Avant je mettait le code suivant à l'évènement de chaque case à cocher
(at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >>
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Un bout de code de Frédéric Sigonneau.. je crois !
Ajoute un commandbutton à un userform existant
'(avec le code de son événement Click)
Sub AddBouton()
Dim Usf As Object, btn As Object
Set Usf = ThisWorkbook.VBProject.VBComponents("Userform1")
Set btn = Usf.Designer.Controls.Add("forms.commandbutton.1")
With btn
.Caption = "Cliquer ici !..."
.Left = 60: .Top = 50
End With
With Usf.CodeModule
X = .CountOfLines
.insertlines X + 1, "Sub CommandButton1_Click()"
.insertlines X + 2, " MsgBox ""coucou"""
.insertlines X + 3, " unload Me"
.insertlines X + 4, "End Sub"
End With
VBA.UserForms.Add (Usf.Name)
UserForms(UserForms.Count - 1).Show
End Sub
"Gregory Hilaire" a écrit dans le message de news:
ufAdf%
Un grand Merci à MichDenis et à JB avec vos explications je vais encore
raffiner le code.
J'y étais presque: J'avais trouvé ceci
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Click()
Dim numero as byte
numero > val(iif(val(right(GrSaisie.name,2))=0,right(GrSaisie.name,1),right(GrSaisie.name,2)))
Columns(numero).Hidden = not GrSaisie.Value
End Sub
Un peu alambiqué pour rien :)
Maintenant ceci me porte à poser la question suivante est-il possible
d'avoir un code vba qui va ajouter des
procédures ou fonction à un "Control" que l'on a créé Dynamiquement. Du
Vba
qui modifie le Vba :) ?
Si oui un petit bout de code pour me mettre sur la piste et ensuite tout
ira
tout seul.
Par exemple je crée un bouton et lorsque l'on clique sur le bouton une
ligne
est caché par exemple !
UN GROS MERCI ENCORE UNE FOIS GRACE A VOUS TOUS JE ME SENS PROGRESSER
"JB" a écrit dans le message de news:
Bonjour,
Masque/Affiche colonnes:
http://cjoint.com/?cshZq32jbx
Dim n
Dim Chk(1 To 100) As New ClasseSaisie
Private Sub UserForm_Initialize()
n = 30
For b = 1 To n
retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & b, True)
Me("CheckBox" & b).Top = 60
Me("CheckBox" & b).Left = 10 + (b - 1) * 15
retour = Me.Controls.Add("Forms.Label.1", "Label" & b, True)
Me("Label" & b).Caption = Split(Cells(1, b).Address, "$")(1)
Me("Label" & b).Top = 40
Me("Label" & b).Left = 10 + (b - 1) * 15
Next
'--
For b = 1 To n: Set Chk(b).GrSaisie = Me("Checkbox" & b): Next b
End Sub
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
nomcheck = GrSaisie.Name
col = Val(Mid(GrSaisie.Name, 9))
Columns(col).Hidden = UserForm1.Controls(nomcheck).Value
End Sub
JB
On 17 fév, 23:41, "Gregory Hilaire" wrote:Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== >> ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== >> Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== >> Avant je mettait le code suivant à l'évènement de chaque case à cocher
(at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >>
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Un bout de code de Frédéric Sigonneau.. je crois !
Ajoute un commandbutton à un userform existant
'(avec le code de son événement Click)
Sub AddBouton()
Dim Usf As Object, btn As Object
Set Usf = ThisWorkbook.VBProject.VBComponents("Userform1")
Set btn = Usf.Designer.Controls.Add("forms.commandbutton.1")
With btn
.Caption = "Cliquer ici !..."
.Left = 60: .Top = 50
End With
With Usf.CodeModule
X = .CountOfLines
.insertlines X + 1, "Sub CommandButton1_Click()"
.insertlines X + 2, " MsgBox ""coucou"""
.insertlines X + 3, " unload Me"
.insertlines X + 4, "End Sub"
End With
VBA.UserForms.Add (Usf.Name)
UserForms(UserForms.Count - 1).Show
End Sub
"Gregory Hilaire" a écrit dans le message de news:
ufAdf%
Un grand Merci à MichDenis et à JB avec vos explications je vais encore
raffiner le code.
J'y étais presque: J'avais trouvé ceci
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Click()
Dim numero as byte
numero > val(iif(val(right(GrSaisie.name,2))=0,right(GrSaisie.name,1),right(GrSaisie.name,2)))
Columns(numero).Hidden = not GrSaisie.Value
End Sub
Un peu alambiqué pour rien :)
Maintenant ceci me porte à poser la question suivante est-il possible
d'avoir un code vba qui va ajouter des
procédures ou fonction à un "Control" que l'on a créé Dynamiquement. Du
Vba
qui modifie le Vba :) ?
Si oui un petit bout de code pour me mettre sur la piste et ensuite tout
ira
tout seul.
Par exemple je crée un bouton et lorsque l'on clique sur le bouton une
ligne
est caché par exemple !
UN GROS MERCI ENCORE UNE FOIS GRACE A VOUS TOUS JE ME SENS PROGRESSER
"JB" a écrit dans le message de news:
Bonjour,
Masque/Affiche colonnes:
http://cjoint.com/?cshZq32jbx
Dim n
Dim Chk(1 To 100) As New ClasseSaisie
Private Sub UserForm_Initialize()
n = 30
For b = 1 To n
retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & b, True)
Me("CheckBox" & b).Top = 60
Me("CheckBox" & b).Left = 10 + (b - 1) * 15
retour = Me.Controls.Add("Forms.Label.1", "Label" & b, True)
Me("Label" & b).Caption = Split(Cells(1, b).Address, "$")(1)
Me("Label" & b).Top = 40
Me("Label" & b).Left = 10 + (b - 1) * 15
Next
'--
For b = 1 To n: Set Chk(b).GrSaisie = Me("Checkbox" & b): Next b
End Sub
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
nomcheck = GrSaisie.Name
col = Val(Mid(GrSaisie.Name, 9))
Columns(col).Hidden = UserForm1.Controls(nomcheck).Value
End Sub
JB
On 17 fév, 23:41, "Gregory Hilaire" wrote:Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== >> ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== >> Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== >> Avant je mettait le code suivant à l'évènement de chaque case à cocher
(at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >>
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Un bout de code de Frédéric Sigonneau.. je crois !
Ajoute un commandbutton à un userform existant
'(avec le code de son événement Click)
Sub AddBouton()
Dim Usf As Object, btn As Object
Set Usf = ThisWorkbook.VBProject.VBComponents("Userform1")
Set btn = Usf.Designer.Controls.Add("forms.commandbutton.1")
With btn
.Caption = "Cliquer ici !..."
.Left = 60: .Top = 50
End With
With Usf.CodeModule
X = .CountOfLines
.insertlines X + 1, "Sub CommandButton1_Click()"
.insertlines X + 2, " MsgBox ""coucou"""
.insertlines X + 3, " unload Me"
.insertlines X + 4, "End Sub"
End With
VBA.UserForms.Add (Usf.Name)
UserForms(UserForms.Count - 1).Show
End Sub
"Gregory Hilaire" <ghilaire@sympatico.ca> a écrit dans le message de news:
ufAdf%23pcIHA.5164@TK2MSFTNGP03.phx.gbl...
Un grand Merci à MichDenis et à JB avec vos explications je vais encore
raffiner le code.
J'y étais presque: J'avais trouvé ceci
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Click()
Dim numero as byte
numero > val(iif(val(right(GrSaisie.name,2))=0,right(GrSaisie.name,1),right(GrSaisie.name,2)))
Columns(numero).Hidden = not GrSaisie.Value
End Sub
Un peu alambiqué pour rien :)
Maintenant ceci me porte à poser la question suivante est-il possible
d'avoir un code vba qui va ajouter des
procédures ou fonction à un "Control" que l'on a créé Dynamiquement. Du
Vba
qui modifie le Vba :) ?
Si oui un petit bout de code pour me mettre sur la piste et ensuite tout
ira
tout seul.
Par exemple je crée un bouton et lorsque l'on clique sur le bouton une
ligne
est caché par exemple !
UN GROS MERCI ENCORE UNE FOIS GRACE A VOUS TOUS JE ME SENS PROGRESSER
"JB" <boisgontier@hotmail.com> a écrit dans le message de news:
0df3bce7-f45c-4c1e-9e4a-bfa871b536fe@64g2000hsw.googlegroups.com...
Bonjour,
Masque/Affiche colonnes:
http://cjoint.com/?cshZq32jbx
Dim n
Dim Chk(1 To 100) As New ClasseSaisie
Private Sub UserForm_Initialize()
n = 30
For b = 1 To n
retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & b, True)
Me("CheckBox" & b).Top = 60
Me("CheckBox" & b).Left = 10 + (b - 1) * 15
retour = Me.Controls.Add("Forms.Label.1", "Label" & b, True)
Me("Label" & b).Caption = Split(Cells(1, b).Address, "$")(1)
Me("Label" & b).Top = 40
Me("Label" & b).Left = 10 + (b - 1) * 15
Next
'--
For b = 1 To n: Set Chk(b).GrSaisie = Me("Checkbox" & b): Next b
End Sub
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
nomcheck = GrSaisie.Name
col = Val(Mid(GrSaisie.Name, 9))
Columns(col).Hidden = UserForm1.Controls(nomcheck).Value
End Sub
JB
On 17 fév, 23:41, "Gregory Hilaire" <ghila...@sympatico.ca> wrote:
Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== >> ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== >> Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== >> Avant je mettait le code suivant à l'évènement de chaque case à cocher
(at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >>
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide
Un bout de code de Frédéric Sigonneau.. je crois !
Ajoute un commandbutton à un userform existant
'(avec le code de son événement Click)
Sub AddBouton()
Dim Usf As Object, btn As Object
Set Usf = ThisWorkbook.VBProject.VBComponents("Userform1")
Set btn = Usf.Designer.Controls.Add("forms.commandbutton.1")
With btn
.Caption = "Cliquer ici !..."
.Left = 60: .Top = 50
End With
With Usf.CodeModule
X = .CountOfLines
.insertlines X + 1, "Sub CommandButton1_Click()"
.insertlines X + 2, " MsgBox ""coucou"""
.insertlines X + 3, " unload Me"
.insertlines X + 4, "End Sub"
End With
VBA.UserForms.Add (Usf.Name)
UserForms(UserForms.Count - 1).Show
End Sub
"Gregory Hilaire" a écrit dans le message de news:
ufAdf%
Un grand Merci à MichDenis et à JB avec vos explications je vais encore
raffiner le code.
J'y étais presque: J'avais trouvé ceci
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Click()
Dim numero as byte
numero > val(iif(val(right(GrSaisie.name,2))=0,right(GrSaisie.name,1),right(GrSaisie.name,2)))
Columns(numero).Hidden = not GrSaisie.Value
End Sub
Un peu alambiqué pour rien :)
Maintenant ceci me porte à poser la question suivante est-il possible
d'avoir un code vba qui va ajouter des
procédures ou fonction à un "Control" que l'on a créé Dynamiquement. Du
Vba
qui modifie le Vba :) ?
Si oui un petit bout de code pour me mettre sur la piste et ensuite tout
ira
tout seul.
Par exemple je crée un bouton et lorsque l'on clique sur le bouton une
ligne
est caché par exemple !
UN GROS MERCI ENCORE UNE FOIS GRACE A VOUS TOUS JE ME SENS PROGRESSER
"JB" a écrit dans le message de news:
Bonjour,
Masque/Affiche colonnes:
http://cjoint.com/?cshZq32jbx
Dim n
Dim Chk(1 To 100) As New ClasseSaisie
Private Sub UserForm_Initialize()
n = 30
For b = 1 To n
retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & b, True)
Me("CheckBox" & b).Top = 60
Me("CheckBox" & b).Left = 10 + (b - 1) * 15
retour = Me.Controls.Add("Forms.Label.1", "Label" & b, True)
Me("Label" & b).Caption = Split(Cells(1, b).Address, "$")(1)
Me("Label" & b).Top = 40
Me("Label" & b).Left = 10 + (b - 1) * 15
Next
'--
For b = 1 To n: Set Chk(b).GrSaisie = Me("Checkbox" & b): Next b
End Sub
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
nomcheck = GrSaisie.Name
col = Val(Mid(GrSaisie.Name, 9))
Columns(col).Hidden = UserForm1.Controls(nomcheck).Value
End Sub
JB
On 17 fév, 23:41, "Gregory Hilaire" wrote:Bien le bonjour,
Je voulais avoir des Checkbox qui se créaient à l'execution (Run-Time) et
les associer à un tableau afin de les utiliser dans une boucle
Grace à JB cela fonctionne et très bien même ( Encore merci ). Maintenant
je
me heurte à un nouvel écueil comment recupérer les
valeurs de ces checkboxs, et comment inter agir avec les méthodes de ces
CheckBox....
Illustrons pour plus de clareté.
Mon module de classe [ qui ne fonctionne pas comme il faut :( ]
Public WithEvents GrSaisie As MSForms.CheckBox
Private Sub GrSaisie_Change()
'Columns("A").EntireColumn.Hidden = Not CheckBox1.Value
MsgBox GrSaisie.Name
End Sub
'=========================================================================================== >> ' Mon module normal qui droit créer des CheckBox à l'execution, et quand
on
clique sur un Checkbox il doit chacher la colonne qu'il
' représente (non coché) ou afficher la colonne (coché). Pour le moment à
l'initialisation il me dit les colonnes caché mais le hic c'est quand
' je veux cliquer pour cacher ou afficher :)
'=========================================================================================== >> Dim n As Integer
'Déclarons 63 Case à cocher du type que nous avions défini dans le module
de
Classe
Dim Chk(1 To 63) As New ClasseMesCasesACocher
Private Sub UserForm_Initialize()
Dim Retour 'Valeur retournée par l'ajout de Controls sur la
Dim NbrCol As Byte 'Nombre de Colonnes désirées
Dim NbrLig As Byte 'Nombre de Lignes désirées
Dim QteMax As Byte 'Quantité de valeurs désirées
Dim IndCnt As Byte 'Indice de chaque Control
Dim TabTit As Variant ' Liste des titres à cacher ou afficher (variant
obligatoire)
QteMax = 63
NbrCol = 4
NbrLig = QteMax NbrCol
TabTit = Array( _
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J" _
, "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T" _
, "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD" _
, "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO" _
, "AP", "AQ", "AR", "AS", "AT", "AU", "AV", "AW", "AX", "AY" _
, "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI" _
, "BJ", "BK", "BL" _
)
'Initialisation des paramètres pour 63 cases à cocher
For IndCnt = 1 To QteMax
Retour = Me.Controls.Add("Forms.Checkbox.1", "CheckBox" & IndCnt, True)
Me("CheckBox" & IndCnt).Top = 20 + ((IndCnt - 1) NbrCol) * 20 'Lignes
distants de 20 Pts
Me("CheckBox" & IndCnt).Left = 20 + ((IndCnt - 1) Mod NbrCol) * 60
'Colonne distant de 60 points
Me("CheckBox" & IndCnt).Caption = TabTit(IndCnt - 1)
Next
' Création de n instances (n Objets Chk de type ClasseMesCasesACocher)
For IndCnt = 1 To QteMax
Set Chk(IndCnt).GrSaisie = Me("Checkbox" & IndCnt)
Next IndCnt
Dim X As Byte 'variable pour les colonnes
X = 1
'Nous assumons ici que dans le cadre (Frame) nous n'avons que des case à
cocher
For Each ctrl In Me.Controls
ctrl.Value = Not Columns(X).EntireColumn.Hidden
X = X + 1
Next
End Sub
======================================================================================== >> Avant je mettait le code suivant à l'évènement de chaque case à cocher
(at
design time) maintenant qu'elle sont crées dynamiquement
je suis un peu perdu.
======================================================================================== >>
Private Sub ChkCol1_Click()
Columns("A").EntireColumn.Hidden = Not ChkCol1.Value
End Sub
Private Sub ChkCol2_Click()
Columns("B").EntireColumn.Hidden = Not ChkCol2.Value
End Sub
Un gros Merci pour tout aide