Nom d'une case à cocher créee à partir du Formalaire
2 réponses
olivier
Bonjour,
Je crée par VBA des cases à cocher par copie d'une déjà
existante dans une feuille. Une fois les cases à cocher créées, j'aimerai
changer dans certaines des options. Mais comme je ne connais pas le nom que
VBA leur a affecté il m'est impossible d'affecter les options souhaitées.
Création de la case à cocher :
activesheet.CheckBoxes.Add(x,y,z,w).select La case à cocher peut
s'appeler un jour "case à cocher 28", le jour suivant "case à cocher 30"
Pour sélectionner la case à cocher pourra être une fois mon problème
résolu :
activesheet.Shapes("Check Box XX").Select
L'un d'entre vous pourrait il m'aider à avancer dans ma macro sans me
proposer une solution nécessitant une refonte de mon projet ?
En espérant que cela soit possible.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Caetera
> Je crée par VBA des cases à cocher par copie d'une déjà existante dans une feuille. Une fois les cases à cocher créées, j'aimerai changer dans certaines des options. Mais comme je ne connais pas le nom que VBA leur a affecté il m'est impossible d'affecter les options souhaitées.
Solution : créer les cases à cocher en les nommant A LA CREATION Exemple : ActiveSheet.CheckBoxes.Add(x, y, z, w).Name = "La_Case"
Ensuite il te sera facile d'agir Exemple : ActiveSheet.Shapes("La_Case").OnAction = "maMacro"
Etc
> Je crée par VBA des cases à cocher par copie d'une déjà
existante dans une feuille. Une fois les cases à cocher créées, j'aimerai
changer dans certaines des options. Mais comme je ne connais pas le nom que
VBA leur a affecté il m'est impossible d'affecter les options souhaitées.
Solution : créer les cases à cocher en les nommant A LA CREATION
Exemple :
ActiveSheet.CheckBoxes.Add(x, y, z, w).Name = "La_Case"
Ensuite il te sera facile d'agir
Exemple :
ActiveSheet.Shapes("La_Case").OnAction = "maMacro"
> Je crée par VBA des cases à cocher par copie d'une déjà existante dans une feuille. Une fois les cases à cocher créées, j'aimerai changer dans certaines des options. Mais comme je ne connais pas le nom que VBA leur a affecté il m'est impossible d'affecter les options souhaitées.
Solution : créer les cases à cocher en les nommant A LA CREATION Exemple : ActiveSheet.CheckBoxes.Add(x, y, z, w).Name = "La_Case"
Ensuite il te sera facile d'agir Exemple : ActiveSheet.Shapes("La_Case").OnAction = "maMacro"
Etc
michdenis
Un petit exemple : code dans le module de la feuille '------------------------------------ Sub test() Dim x As Shape, Sh As Shape, A As Integer 'ton checkbox de base déjà présent 'dans la feuille dont le nom est toto Set x = Me.Shapes("toto")
'Ajouter des case à cocher dans chacune de 'ces cellules + définir des caractéristiques For Each c In Range("A4:A12").Cells Set Sh = Me.Shapes.AddFormControl(xlCheckBox, _ c.Left, c.Top, c.Width, c.Height) With Sh.OLEFormat.Object A = A + 1 .Caption = "toto" & A .Value = 0 .PrintObject = False .ShapeRange.Fill.ForeColor.SchemeColor = 13 .ShapeRange.Fill.Visible = msoTrue .ShapeRange.Fill.Solid End With Next End Sub '------------------------------------
"olivier" a écrit dans le message de groupe de discussion : 49945ac2$0$4086$ Bonjour,
Je crée par VBA des cases à cocher par copie d'une déjà existante dans une feuille. Une fois les cases à cocher créées, j'aimerai changer dans certaines des options. Mais comme je ne connais pas le nom que VBA leur a affecté il m'est impossible d'affecter les options souhaitées.
Création de la case à cocher :
activesheet.CheckBoxes.Add(x,y,z,w).select La case à cocher peut s'appeler un jour "case à cocher 28", le jour suivant "case à cocher 30"
Pour sélectionner la case à cocher pourra être une fois mon problème résolu :
activesheet.Shapes("Check Box XX").Select
L'un d'entre vous pourrait il m'aider à avancer dans ma macro sans me proposer une solution nécessitant une refonte de mon projet ? En espérant que cela soit possible.
Merci d'avance pour vos idées et pour votre aide.
Olivier
Un petit exemple : code dans le module de la feuille
'------------------------------------
Sub test()
Dim x As Shape, Sh As Shape, A As Integer
'ton checkbox de base déjà présent
'dans la feuille dont le nom est toto
Set x = Me.Shapes("toto")
'Ajouter des case à cocher dans chacune de
'ces cellules + définir des caractéristiques
For Each c In Range("A4:A12").Cells
Set Sh = Me.Shapes.AddFormControl(xlCheckBox, _
c.Left, c.Top, c.Width, c.Height)
With Sh.OLEFormat.Object
A = A + 1
.Caption = "toto" & A
.Value = 0
.PrintObject = False
.ShapeRange.Fill.ForeColor.SchemeColor = 13
.ShapeRange.Fill.Visible = msoTrue
.ShapeRange.Fill.Solid
End With
Next
End Sub
'------------------------------------
"olivier" <atchoum67@voila.fr> a écrit dans le message de groupe de discussion :
49945ac2$0$4086$ba4acef3@news.orange.fr...
Bonjour,
Je crée par VBA des cases à cocher par copie d'une déjà
existante dans une feuille. Une fois les cases à cocher créées, j'aimerai
changer dans certaines des options. Mais comme je ne connais pas le nom que
VBA leur a affecté il m'est impossible d'affecter les options souhaitées.
Création de la case à cocher :
activesheet.CheckBoxes.Add(x,y,z,w).select La case à cocher peut
s'appeler un jour "case à cocher 28", le jour suivant "case à cocher 30"
Pour sélectionner la case à cocher pourra être une fois mon problème
résolu :
activesheet.Shapes("Check Box XX").Select
L'un d'entre vous pourrait il m'aider à avancer dans ma macro sans me
proposer une solution nécessitant une refonte de mon projet ?
En espérant que cela soit possible.
Un petit exemple : code dans le module de la feuille '------------------------------------ Sub test() Dim x As Shape, Sh As Shape, A As Integer 'ton checkbox de base déjà présent 'dans la feuille dont le nom est toto Set x = Me.Shapes("toto")
'Ajouter des case à cocher dans chacune de 'ces cellules + définir des caractéristiques For Each c In Range("A4:A12").Cells Set Sh = Me.Shapes.AddFormControl(xlCheckBox, _ c.Left, c.Top, c.Width, c.Height) With Sh.OLEFormat.Object A = A + 1 .Caption = "toto" & A .Value = 0 .PrintObject = False .ShapeRange.Fill.ForeColor.SchemeColor = 13 .ShapeRange.Fill.Visible = msoTrue .ShapeRange.Fill.Solid End With Next End Sub '------------------------------------
"olivier" a écrit dans le message de groupe de discussion : 49945ac2$0$4086$ Bonjour,
Je crée par VBA des cases à cocher par copie d'une déjà existante dans une feuille. Une fois les cases à cocher créées, j'aimerai changer dans certaines des options. Mais comme je ne connais pas le nom que VBA leur a affecté il m'est impossible d'affecter les options souhaitées.
Création de la case à cocher :
activesheet.CheckBoxes.Add(x,y,z,w).select La case à cocher peut s'appeler un jour "case à cocher 28", le jour suivant "case à cocher 30"
Pour sélectionner la case à cocher pourra être une fois mon problème résolu :
activesheet.Shapes("Check Box XX").Select
L'un d'entre vous pourrait il m'aider à avancer dans ma macro sans me proposer une solution nécessitant une refonte de mon projet ? En espérant que cela soit possible.