Checkbox et VBA

Checkbox et VBA - VB/VBA/VBS - Programmation

Marsh Posté le 31-01-2019 à 15:49:10    

Bonjour à tous et par avance, merci pour votre aide,
Après de nombreuses heures à chercher une solution, je sèche totalement sur mon problème.
Le problème se situe en VBA excel et est le suivant:
sur ma feuille 1, RESULTATS, j'ai une feuille de calcul avec différentes formules qui sert à présenter les résultats uniquement avec graphiques etc.
Sur cette feuille 1, j'ai 4 cases à cocher insérées par l'outil de contrôle formulaire. Elles se nomment cordon 1 à cordon 4 (texte affiché). Le nom de la check box, en haut à gauche d'excel, nom de variable, est bien "Case à cocher 1" à 4.
Les 4 checkbox ont un "format de contrôle" type VRAI/FAUX, sur 4 cellules à côté.  
En fonction de la combinaison des 4 booléens x-x-x-x, x=VRAI ou FAUX, les formules différent sur la feuille 3.
 
sur une feuille 2, EFFORTS, j'ai une liste de combinaisons de variables N1 à N7, avec une ligne=une combinaison et une variable=une colonne.
Sur cette même feuille, j'ai placé un autre tableau de 4 lignes. ces 4 lignes correspondent aux 4 valeurs possibles de la variable N1.
Ce tableau des "N1" possibles contient sur chaque ligne une combinaison de 4 booléens y-y-y-y correspondant à ce que devrait devrait être les 4 checkbox de la feuille 1 RESULTATS pour ce N1..
 
Sur la feuille 3, il y a les formules
L'ensemble de mes macros sont en module et non sur les feuilles 1,2 ou 3.
 
Ce que je voudrais, c'est parcourir les listings d'efforts et en fonction du N1 de chaque ligne, aller piocher la combinaison y-y-y-y correspondant de la feuille EFFORTS pour aller cocher/décocher en conséquence les 4 checkbox de la feuille RESULTATS.
Sauf que j'arrive pas à cocher/décocher une checkbox en fonction de la valeur d'une autre cellule qui n'est pas sur la même feuille que la checkbox en question.
J'ai essayé avec des me.control, des shapes, des OLEObject, des checkbox.value...rien ne fonctionne.
Au pire, j'ai d'autres solutions comme éluder la case à cocher en ne mettant que des listes VRAI/FAUX aux bons endroits et en supprimant les case à cocher, mais je souhaiterais savoir tout de même où le bas blesse.
 
Merci de votre aide.

Reply

Marsh Posté le 31-01-2019 à 15:49:10   

Reply

Marsh Posté le 31-01-2019 à 17:37:23    

Bonjour,
 
Pour tester et cocher ou décocher les cases à cocher :

Code :
  1. Sub test()
  2. Dim chk As Shape
  3. Dim nom As String
  4.   ' Noms des checkboxes
  5.   For Each chk In Worksheets("RESULTATS" ).Shapes
  6.     If chk.Type = msoFormControl Then
  7.       If chk.FormControlType = xlCheckBox Then
  8.         nom = chk.Name
  9.         MsgBox nom
  10.       End If
  11.     End If
  12.   Next chk
  13.   ' Définir le dernier chekbox
  14.   Set chk = Worksheets("RESULTATS" ).Shapes(nom)
  15.   ' Cocher le chekbox
  16.   chk.ControlFormat.Value = xlOn
  17.   ' Décocher le chekbox
  18.   chk.ControlFormat.Value = xlOff
  19. End Sub


---------------
Cordialement, Patrice
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed