Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nom d'une case à cocher créee à partir du Formalaire

2 réponses
Avatar
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.

Merci d'avance pour vos idées et pour votre aide.


Olivier

2 réponses

Avatar
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
Avatar
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