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

OLEObject

8 réponses
Avatar
Apitos
Bonjour =E0 tous,

Pourquoi cette proc=E9dure abouti =E0 cette erreur :


"impossible de lire la propri=E9t=E9 OLEObject de la classe Worksheet."

'------------------
Private Sub CommandButton2_Click()
If ActiveSheet.OLEObjects("Case d'option 1").Object.Value =3D True
Then
MsgBox "Case d'option"
End If
End Sub
'-----------------
Merci.

8 réponses

Avatar
LSteph
Bonjour,
Supposons plusieurs options (si une seule prendre une case à cocher)
avec un bouton ceci renverra celle choisie. S'il y a plusieurs
séries de choix , jouer avec la propriété groupname pour conditionner.

Private Sub CommandButton1_Click()
Dim ctl As OLEObject
For Each ctl In Feuil1.OLEObjects
If ctl.Object = True Then MsgBox ctl.Object.Caption
Next
End Sub

'lSteph



Apitos a écrit :
Bonjour à tous,

Pourquoi cette procédure abouti à cette erreur :


"impossible de lire la propriété OLEObject de la classe Worksheet."

'------------------
Private Sub CommandButton2_Click()
If ActiveSheet.OLEObjects("Case d'option 1").Object.Value = True
Then
MsgBox "Case d'option"
End If
End Sub
'-----------------
Merci.


Avatar
LSteph
http://cjoint.com/?jfiLXflQFQ
Avatar
Apitos
Bonjour LSteph,

Qu'en est-il à propos des "Case d'option" de la barre d'outils
formulaire ?

Merci.
Avatar
michdenis
Attention, si tu n'as pas rebaptisé tes contrôles "Case à cocher"
lorsque tu es dans la feuille de calcul, tu peux apercevoir leur
nom dans la section extrème gauche de la barre des formules.
Cependant leur nom est en français "Case à cocher 1" mais
lorsque tu te retrouves en vba, leur nom par défaut devient :
"Check Box " + l'index. Si tu prends soin de leur donner
un nom personnalisé, ce dernier demeurera le même via
les 2 interfaces : Feuille de calcul et VBA.

La colllection OleObjects s'adresse particulièrement aux contrôles
émanant de la barre d'outils "Contrôle".

If Feuil1.Shapes("Check Box 1").OLEFormat.Object.Value = 1 Then
'Ton code
End If




"Apitos" a écrit dans le message de news:

Bonjour LSteph,

Qu'en est-il à propos des "Case d'option" de la barre d'outils
formulaire ?

Merci.
Avatar
lSteph
Bonjour,

outre que MD parle de case à cocher et que je lisais optionbutton
le principe qu'il évoque demeure.
Ainsi comme tu faisais appel à VBA et OLEObjects
j'en déduisais que tu utilisais les contrôles qui vont bien dans ce
contexte.
Donc pas ceux de la barre d'outil Formulaire.

Pour aller un peu plus loin que la question, que cherche tu à obtenir
à part afficher uniquement un message que si c'est la première option,
je suppose qu'il y en a d'autres...?!



Cordialement.

--
lSteph

On 5 sep, 12:28, Apitos wrote:
Bonjour LSteph,

Qu'en est-il à propos des "Case d'option" de la barre d'outils
formulaire ?

Merci.


Avatar
Apitos
Bonsoir à tous,

Merci MechDenis des tes explications

Une question : Qu'elle différence existe-t-il entre l'utilisation des
bouton de la boite à outils contrôles, et les boutons barre d'outils
formulaire ?

lSteph

En premier temps j'utilisais cette ligne pour voir l'état de ma "Case
d'option 63" de la barre d'outils formulaire :

If ActiveSheet.Shapes("Case d'option 63").ControlFormat.Value = xlOn
Then

Mais ça me donne toujours une erreur :

L'élément portant ce nom est introuvable

Pourtant il existe bien sur la feuille !!!!

C'est pour ça que j'ai modifier la ligne en :

If ActiveSheet.OLEObjects("Case d'option 63").Object.Value = True Then

et

If ActiveSheet.OLEObjects("Option Button 63").Object.Value = True Then

qui donne l'erreur :

"Impossible de lire la propriété OLEObject de la classe Worksheet."

Voilà !
Avatar
michdenis
| Une question : Qu'elle différence existe-t-il entre l'utilisation des
| bouton de la boite à outils contrôles, et les boutons barre d'outils
| formulaire ?
Les boutons de la barre d'outils "Contrôle" possèdent plus de
propriétés (couleur du texte, du fond du bouton......) et en plus
ils est possible d'utiliser un grand nombre d'événements qui
facilite la programmation de ces derniers quant à la manière
dont ils doivent répondre suite aux actions de l'usager. Lorsque
tu crées ce bouton, si tu double-cliques sur ce dernier, tu te
retrouves dans le module feuille associée et si tu regardes
dans la liste déroulante de droite du haut de cette feuille, tu
obtiendras la liste des événements disponibles.




**** 2 ***
'----------------------------------
Tu peux aussi utiliser ceci : Si tu gardes le nom par défaut des
contrôles émanant de la boîte à outils formulaire, tu dois
traduire en anglais leur appellation dans la fenêtre VBA

If ActiveSheet.Shapes("Option Button 1").ControlFormat.Value = xlOn then

OU

If ActiveSheet.Shapes("Option Button 1").OLEFormat.Object.Value = 1 then

'----------------------------------
Avatar
Apitos
Bonsoir michdenis,

Merci infiniment.

If ActiveSheet.Shapes("Option Button 1").ControlFormat.Value = xlOn the n

OU

If ActiveSheet.Shapes("Option Button 1").OLEFormat.Object.Value = 1 the n

'----------------------------------



Un autre message d'erreur :

"L'élément portant ce nom est introuvable"

Pourtant il figure bien sur la feuille !!!!