Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

case a cocher et macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

laurent999

XLDnaute Occasionnel
Bonjour a tous,
J'ai un petit souci, novice en macro j'essai d'insérer une case à cocher par macro sur une feuille de calcul.
Cependant cela ne fonctionne pas.
je pense avoir compris le problème, mais je n'arrive pas à le résoudre, en fait quand j'enregistre la macro, j'insére une case à cocher et la renomme.
quand je test la macro cela bug pour la renommer en fait il ne trouve pas la case car elle change de nom a chaque fois.elle se nomme case 61, puis case 62.Elle devient donc introuvable.

Si quelqu'un sait comment faire,je suis preneur.
Cela fait 2 jours que je me casse la tête sur cela.

Merci.
Laurent
 
Re : case a cocher et macro

Bonsoir Laurent,

Avec ta macro cela aurait été plus facile de voir.

Mais voici un exemple pour ajouter 4 case à cocher sur la feuille 1

Code:
Sub InsererCaseACocher()
    Dim LaCase As Object
    Dim i As Byte
    For i = 0 To 3
        Set LaCase = Sheets(1).Shapes.AddFormControl(xlCheckBox, 100, 20 * i + 1, 100, 20)
        With LaCase
            .DrawingObject.Caption = "Case a cocher" & i
            .Name = "MaCaseACocher" & i
        End With
    Next i
End Sub

A+
 
Re : case a cocher et macro

Merci pour ta réponse,

Je t'envois le code

Si tu as une soluce cela m'arrangerai bien je t'avoues.

Merci encore

Sub insertcase()
'
' insertcase Macro
'

'
ActiveSheet.CheckBoxes.Add(69, 168.75, 72, 72).Select
ActiveSheet.Shapes("Check Box 212").Select
Selection.Characters.Text = "Concess"
Range("C12").Select
ActiveSheet.Shapes("Check Box 212").Select
Selection.ShapeRange.IncrementLeft -68.25
Selection.ShapeRange.IncrementTop -18#
End Sub
 
Re : case a cocher et macro

Re Laurent,

voici:

Code:
Sub insertcase()
    Dim LaCase As Shape
    'Dans la ligne ci-dessous 69=gauche,168.75=Haut,72=Largeur,72=Hauteur
    'Si tu indiques ici les position et dimension voulues de la case à cocher
    'Les lignes .IncrementLeft et .IncrementTop sont inutiles
    Set LaCase = Sheets(1).Shapes.AddFormControl(xlCheckBox, 69, 168.75, 72, 72)
    With LaCase
        .DrawingObject.Caption = "Concess"
        .IncrementLeft -68.25
        .IncrementTop -18#
    End With
End Sub

A+
 
Re : case a cocher et macro

Sub InsererCaseACocher()
Dim LaCase As Shape
Set LaCase = Sheets(1).Shapes.AddFormControl(xlCheckBox, 69, 168.75, 72, 72)
With LaCase
.DrawingObject.Caption = "Concess"
.IncrementLeft -68.25
.IncrementTop -18#
End With
End Sub
Merci Hasco,
Cela fonctione parfaitement.
Cependant j'aimerai comprendre la macro
Que veut dire Dim LaCase As Shape?
après je pense que cela veut dire Poser LaCase sur la première feuille la forme de lacase est 69,168,75,72,72
après je comprend moins
DrawingObject.Caption?
A part quelle est nommée Concess et sa position.
Je ne comprends pas DrawingObject.Caption

Encore merci.
Laurent
 
Re : case a cocher et macro

Bonjour Laurent, Le forum,

Voici détaillée, la procédure


Déclaration d'une variable qui contiendra une référence à la case à cocher
et nommée arbitrairement 'LaCase'. Cette variable est d'un type Shape' (Forme). Dans les feuilles de calcul les objets (commandButton, case à cocher, zone de texte, image etc.) sont insérés dans des 'formes'
Chaque feuille de calcul posséde sa collection d'objets Shapes

Dim LaCase As Shape

'ajout dans la collection des objets shapes de la feuille 1 d'une forme de type 'case à cocher' (xlCheckBox) et référencement dans la variable 'LaCase'. Cette case à cocher sera positionné à 69 points du du bord gauche de la fenêtre des cellules, 168.75 du bord haut et aura 72 points de largeur sur 72 points de hauteur. '(Tout ça en une seule instruction')

Set LaCase = Sheets(1).Shapes.AddFormControl(xlCheckBox, 69, 168.75, 72, 72)

A la création l'objet shape (conteneur de la case à cocher) est nommé automatiquement par Excel 'check box X' où X est un numéro.
L'objet dessiné(DrawingObject) à l'intérieur de l'objet shape est quant à lui nommé suivant la langue de la version xl 'Case à chocher X'.

Quant on manipule par VBA ce genre d'objet il faut bien faire attention à ce sur quoi on agit:

-Le conteneur (Shape)
-L'objet lui même (DrawingObject)

chacun possédant des propriétés et méthodes identiques et d'autres différentes

DrawingObject est l'objet(la case à cocher) dessiné dans notre Forme(shape) sur la feuille
Caption est la propriété qui permet d'afficher un texte sur un objet.
.DrawingObject.Caption = "Concess"

Cette propriété (Caption) est différente de la propriété 'Name' qui est le nom d'un objet:

Si tu veux que ta case à cocher s'appelle "Concess" tu peux mettre
.DrawingObject.Name="Concess" (le nom sera équivalent au texte qui est affiché sur l'objet mais il pourrait être différent.)
C'est ce nom qui apparaîtra dans la zone des noms ou de référence de cellules à gauche de la barre de formule

Si tu veux renommer son conteneur (objet Shape) tu met simplement
.Name="LeMêmeNomOuUnAutreNom"


IncrementLeft déplace l'objet vers la gauche de -68.25 points
IncrementTop déplace l'objet de -18 point vers le haut
Comme dit dans le mon précédent post ces lignes ne sont pas forcément
necessaires. La position de l'objet pouvant être paramétrée au moment de sa création. Elles sont souvent écrites par l'enregistreur de macro quand on redimensionne ou déplace à la souris un objet sur une feuille de calcul.

.IncrementLeft -68.25
.IncrementTop -18


Pour les supprimer et retrouver quand même la position voulue remplace la ligne de création de l'objet, plus haut par

Sheets(1).Shapes.AddFormControl(xlCheckBox,0.75, 150.75, 72, 72)

Après un tel roman tu as le droit d'être saoul.

A+


 
Dernière modification par un modérateur:
Re : case a cocher et macro

Bonjour hasco,

Un grand merci à toi.
Pour ces explications.
Cette fois j'ai compris et je pense que le but de ce forme et d'apprendre et de comprendre ce que l'on nous transmet et non de copier bêtement.

Encore un grand merci pour ces explications.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
232
Réponses
5
Affichages
325
P
Réponses
4
Affichages
908
Polo94100
P
Réponses
5
Affichages
731
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…