XL 2010 cases à cocher

letroubadour

XLDnaute Occasionnel
bonjour

en colonne B est en principe alimentée par une formule, le résultat est 1 ou bien vide.
Si le résultat est 1 alors je veux pouvoir agir sur mes cases d'options pour alimenter le colonne D et si B est vide alors cases d'option vide ainsi que le cases correspondante en D

merci à tous

le troubadour
 

Pièces jointes

  • cases à cocher.xlsx
    17 KB · Affichages: 63

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Une idée de départ , par contre c'est du VBA je pense impossible de faire autre !!
J'utilise B2 pour ta case formule test=1 , teste un peu en modifiant A1 B1 pour avoir ou pas B2=1
C'est sur le principe connu de mémoriser à l'ouverture la valeur de la cellule concernée qui va changer
Si c'est Ok il faudra adapter à ton cas précisément
 

Pièces jointes

  • test case a cocher.xlsm
    29.6 KB · Affichages: 33

letroubadour

XLDnaute Occasionnel
Ok , je viens de comprendre, ça prends forme, merci pour ton aide
en Pj le nouveau fichier.
comment afficher le cases d'option sans avoir à cliquer dans une des cellules de la colonne B
et comment le faire sur un mois complet, faut -il répéter la macro trente et une fois ?

merci

le troubadour
 

Pièces jointes

  • cases à cocher.xlsm
    22.9 KB · Affichages: 16

herve62

XLDnaute Barbatruc
Supporter XLD
Normalement il ne faut pas cliquer dans la col B ???
Reprend ce dernier fichier joint ici car celui que tu as modifié ne va pas , tu ne respectes pas les groupements
avec les boutons , mieux vaut repartir sur des bases nouvelles . A la rigueur un nouveau fichier avec mes macros
et tes souhaits REELS ! dans les feuilles ,serait mieux pour continuer avec affectations des groupes et boutons
comme variable ; De 1 à 31 ne va pas être simple .... mais bon , à voir avec des Dim de tableaux .. peut être ??
Là je ne mets que des exemples bidon pour que tu vois , mais mon "truc" marche très bien !!!
 

Pièces jointes

  • cases à option.xlsm
    25.2 KB · Affichages: 17

letroubadour

XLDnaute Occasionnel
bonjour
en PJ ton dernier fichier avec mes voeux.
Col A les jours , en B en retrouve soit un 1 ou bien vide. et en G la cellule contrôlée par la case d'option ( 1 ou 2).
effectivement c'est nickel comme ça, ce que je veux c'est le reproduire sur les 30 jours suivants

merci pour ton aide et ta patience
 

Pièces jointes

  • cases à option.xlsm
    24.8 KB · Affichages: 21

sousou

XLDnaute Barbatruc
Bonjour à vous deux.
Une solution qui fabrique les boxs et les boutons

J'ai passer outre la vérif d'Hervé, pas bien compris à quoi elle sert!
Je ne répond pas peut-être exactement à tes besoins, mais tu peux t'inspirer de ce que j'ai fait
 

Pièces jointes

  • Copie de cases à option2.xlsm
    31.1 KB · Affichages: 20

letroubadour

XLDnaute Occasionnel
bonjour
merci sousou pour ton fichier , c'est exactement ça.
Il me faudrait encore quelques petite choses pour finaliser le projet.
- lorsque une case en B est vide la case correspondante en G doit l'être également.
- enlever jour 1 , jour 2, etc... sur les box
- et enlever le cadre noir de la box

sur la macro il y a une sauvegarde , est ce que c'est nécessaire ?

encore merci
 

Pièces jointes

  • Copie de cases à option3.xlsm
    67.7 KB · Affichages: 16

sousou

XLDnaute Barbatruc
re
regarde comme celà.
pour la sauvegarde? je pense que tu perles du module2.
A supprimer, il me sert à tester des syntaxes
 

Pièces jointes

  • Copie de Copie de cases à option3.xlsm
    64.2 KB · Affichages: 23
  • Copie de Copie de cases à option3.xlsm
    64.2 KB · Affichages: 11

ChTi160

XLDnaute Barbatruc
Bonjour
Bonjour le Fil ,(sousou)
Une autre approche via la procédure événementielle "Worksheet_Change"
Issue de l'adaptation de la procédure de "sousou"
VB:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Worksheets("feuil1")
Derlgn = .Cells(.Rows.Count, 1).End(xlUp).Row
If Intersect(Target, .Range(.Cells(2, 2), .Cells(Derlgn, 2))) Is Nothing Or Target.Rows.Count > 1 Then Exit Sub
On Error Resume Next
Set C = Target
    R = C.Row
    Application.ScreenUpdating = False
        For i = 1 To 2 'on va Boucler pour créer les OptionButton
         If C = 1 Then ' Si la valeur entree est = 1
            gauche = C.Offset(0, 1).Left
                 haut = C.Top + 2
            gauche = gauche + IIf(i = 1, 5, 60)
            Set OptB = .OptionButtons.Add(gauche, haut, 50, 5) 'On crée un OptionButton
             With OptB  'Avec l'optionButton ainsi crée
               .Characters.Text = IIf(i = 1, "Taux plein", "1/2 taux") 'On définit le texte
               .Name = "OptB" & i * R 'On le nomme
               .LinkedCell = C.Offset(0, 5).Address 'on lui affecte la Cellule Liée
             End With
           Else 'Si autre valeur
               .Shapes("OptB" & i * R).Delete 'On supprime les OptionButton
            C.Offset(0, 5) = "" 'On vide la cellule
         End If
        Next
  End With
  Application.ScreenUpdating = True
End Sub
Bonne fin de journée
jean marie
 

Discussions similaires

Réponses
10
Affichages
400

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG