valeur des "shapes" dans excel

pedro123456

XLDnaute Junior
Bonjour a tous, j'ai fait un petit questionnaire sur excel grâce a des "box" que l'on peut cocher.

J'aimerais arriver à savoir si la personne a coché ou non la box :

le nom de la shape est :
Shapes("q1c1")

quel est le code vba pour savoir si la personne à cochée ou non?

Merci pour vos réponses! (et laissez moi savoir si mon msge est assez clair ou non!)
Cordialement

Pedro
 

skoobi

XLDnaute Barbatruc
Re : valeur des "shapes" dans excel

Bonjour,

si tu parles des cases à cocher voici:

activesheet.shapes("q1c1").controlformat.value = -4146 'case pas cochée
activesheet.shapes("q1c1").controlformat.value = 1 'case cochée
 

pedro123456

XLDnaute Junior
Re : valeur des "shapes" dans excel

Hello, merci pour la réponse.

Par contre j'ai encore un souci, mon code donne ça :

If ActiveSheet.Shapes("q1c1").ControlFormat.Value = 1 Then
MsgBox (ok)
End If


le problème c'est que quand je l'execute, j'ai une erreur qui me dis erreur d'execution 438 ( a la ligne If ActiveSheet.Shapes("q1c1").ControlFormat.Value = 1 Then)

Propriété ou méthode non géree par cet objet.

Puis-je encore avoir de l'aide please!

Merci

Pedro
 

pedro123456

XLDnaute Junior
Re : valeur des "shapes" dans excel

euh

euhm aucune idée je passe!!!

je joins la feuille ici!

Merci!
(PS j'ai enlever le code macro car le fichier était trop gros sinon)

mon code :
If ActiveSheet.Shapes("q1c1").ControlFormat.Value = 1 Then 'case cochée
MsgBox ("ok")
End If

Merci!!

Pedro
 

Pièces jointes

  • essai.xls
    47.5 KB · Affichages: 63
  • essai.xls
    47.5 KB · Affichages: 58
  • essai.xls
    47.5 KB · Affichages: 59

skoobi

XLDnaute Barbatruc
Re : valeur des "shapes" dans excel

C'est un controle (boites à outils controle)

Mets-toi en "mode création" puis double clique dessus.
Dans VBE écris ceci:

Code:
Private Sub q1c1_Click()
If q1c1 Then
MsgBox "coché"
Else: MsgBox "décoché"
End If
End Sub

puis désactive le mode création.
 

skoobi

XLDnaute Barbatruc
Re : valeur des "shapes" dans excel

Re tout le monde,
pedro123456 a écrit:

bonjour skoobi, (doo?? ) bon ok....

Avant tout je te remercie pour l'aide que tu m'as donné sur le forum concernant la valeur des "shapes" contrôles.

J'ai cependant encore un souci et c'est pour cela que je te contact!

En effet, si tu reprend le petit fichier excel "essai" que j'avais attaché sur le forum. Ta solution était d'écrire un code en double clickant sur le contrôle "Oui" par exemple et d'afficher un msgbox...

En fait j'ai envoyé le petit questionnaire à des amis qui m'ont répondu. (sans avoir créer de code auparavant)
Je me retrouve donc avec pas mal de fichiers excel et des contrôles cochés etc...

J'aimerais donc créer un code (sur une feuille excel autre) qui lierais ces réponses!

Exemple le premier controle se nomme q1c1...est-il possible de créer un code qui arrive à lire cette valeur?
(sans passer par le contrôle en lui même)!

Je ne sais pas si j'ai été clair! mais merci pour le temps que tu prendras pour m'aider!
C'était déja super sympa ce que tu as fais!

Voilou merci bcp!


Pedro123456

est-il possible de créer un code qui arrive à lire cette valeur?

Sans passer par le bouton je ne sais pas faire désolé. :(
 

wilfried_42

XLDnaute Barbatruc
Re : valeur des "shapes" dans excel

bonjour pedro, Skoobi :)

voici un code qui permet de passer en revue tous les chekbox (boite de controle)

Code:
Sub scrute_checkbox()

    Dim Wo As OLEObject
    
    For Each Wo In ActiveSheet.OLEObjects
        If TypeOf Wo.Object Is MSForms.CheckBox Then MsgBox Wo.Name & ": " & Obj.Object.Value
    Next Wo

End Sub

si tu veux travailler directrement sur les noms d'objet
Code:
MsgBox ActiveSheet.OLEObjects("Q1q1c1").Object.Value
exemple d'utilisation : Plusieur Questionnaires (Q1 à X) Plusieurs Questions (q1 à x)
Exemple il y a 15 questions pour le questionnaire 2, N° de quetionnaire mis dans numquest
Code:
dim numquest as byte, i as integer
Nomquest = 2
for i = 1 to 15
   msgbox "Question " & i & ":" & _
       ActiveSheet.OLEObjects("Q" & numquest & "q" & i & "c1").Object.Value
next i
 

Discussions similaires

Réponses
16
Affichages
851