Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille (pour
leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille (pour
leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille (pour
leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence , on
peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence , on
peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+
Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence , on
peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence , on
peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence , on
peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+
Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence , on
peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
et j'oubliais un détail important: le bouton qui permet la visualisation du
code (crée à partir de la BO Controles) ne fonctionne pas sur la feuille: la
"main" n'apparait pas lors du focus.
Voilà ce que je voudrais faire sans y parvenir:
Private Sub CommandButton1_Click()
CommandButton2.Visible = False
CommandButton1.Visible = True
End Sub
Private Sub CommandButton2_Click()
CommandButton1.Visible = False
CommandButton2.Visible = True
End Sub
"anonymousA" a écrit dans le message de news:
4218d701$0$807$bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence , on
peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
et j'oubliais un détail important: le bouton qui permet la visualisation du
code (crée à partir de la BO Controles) ne fonctionne pas sur la feuille: la
"main" n'apparait pas lors du focus.
Voilà ce que je voudrais faire sans y parvenir:
Private Sub CommandButton1_Click()
CommandButton2.Visible = False
CommandButton1.Visible = True
End Sub
Private Sub CommandButton2_Click()
CommandButton1.Visible = False
CommandButton2.Visible = True
End Sub
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
4218d701$0$807$8fcfb975@news.wanadoo.fr...
bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence , on
peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+
Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
et j'oubliais un détail important: le bouton qui permet la visualisation du
code (crée à partir de la BO Controles) ne fonctionne pas sur la feuille: la
"main" n'apparait pas lors du focus.
Voilà ce que je voudrais faire sans y parvenir:
Private Sub CommandButton1_Click()
CommandButton2.Visible = False
CommandButton1.Visible = True
End Sub
Private Sub CommandButton2_Click()
CommandButton1.Visible = False
CommandButton2.Visible = True
End Sub
"anonymousA" a écrit dans le message de news:
4218d701$0$807$bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence , on
peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
re,
les controles selon qu'ils sont crées par la BO Conroles ou la BO
formulaires sont différents en nature et en comportement.La boite à outils
formulaires est d'ailleurs au delà d'Excel 97 (me semble t-il ) plus une
survivance du passé puique MS s'est délibérement orienté vers des
controles Active X dont le comportement est plus complexe mais plus riche
que ses prédécesseurs.
En conséquence les controles de la BO Formulaires peuvent être associées à
un macro que par défaut Excel nomme quandClic. tu noteras cependant que si
tu changes le nom de ce controle dans la zone Noms , Excel te proposera le
nom_QuandClic.Et on ne peut pas fair grand chose d'autre d'automatique
avec ces controles.
Pour les controles BO Controles, les macros evenementielles associées sont
à peu près du mêm ordre que celles que produisent les mêmes controles sur
un Userform donc beaucoup plus riches, la difficulté étant qu'il faut
ércire les codes qui y sont rattachés.
Enfin ceci dit, ce que je te proposais c'est d'utiliser le fait q'un
controle ( tant un controle de BO outils que de BO controles ) est un
objet contenu dans la collection shapes et qu'à condition de connaitre son
nom , il est possible d'utiliser la propriété visibles des objets shapes
pour le masquer ( quoique si tu lis le fil suivant tu verras que les
choses nes ont d'ailleurs pas forcément si simples), m'enfin....).
En résumé, si tu connais le nom de ton controle , tu peux écrire
Activesheet.shapes("nom de ton controle").visible úlse. Attention, il
s'agit du nom de l'objet et pas de sa légende ( propriété
TextFrame.Characters.Caption pour un bouton).
A tout hasard , je te communique ci-dessous uen petit code avec des
explications liminaires pour te retrouver dans les deux types de controle.
Dans ce code, je cherchais à déterminer si le controle était du type
controle BO Formulaires ou BO Controles et à donner la légende et le nom
du controle.
Sub detecteshapes()
'tes 2 types de boutons peuvent être détectés de la manière suivante:
'le 1er type (msoFormControl ou le nombre 8) est du type bouton de
controle
'généré par la barre d'outils "Formulaires tandis que le 2nd
'(msoOLEControlObject ou le nombre 12) est du type Controle Active X.
'Pour le 1er type de controles, c'est la propriété FormControlType qui te
'permet de déterminer si c'est un bouton ou pas (les constantes suivantes
sont
'possibles: xlButtonControl, xlCheckBox, xlDropDown, xlEditBox,
xlGroupBox,
'xlLabel, xlListBox, xlOptionButton, xlScrollBar ou xlSpinner numérotés
'succesivement de 0 à 9).
'Dans le deuxième type de controle, le ProgID sert à detecter si ce
controle
'est un bouton de commande. En fonction de quoi, certaines propriétes
peuvent
'être réalisées, et notamment la propriété Caption qui donne la légende du
'bouton
's.Type donne la nature de le forme qui est contenu dans la feuille , il
peut s'agir de
'msoAutoShape, msoCallout, msoChart, msoComment, msoEmbeddedOLEObject,
msoFormControl
',msoFreeform, msoGroup, msoLine, msoLinkedOLEObject, msoLinkedPicture
',msoMedia, msoOLEControlObject, msoPicture, msoPlaceholder,
'msoShapeTypeMixed ou msoTextEffect
'l'index des formes au sens numérotations des objets dans la collection
est
'déterminée chronologiquement selon l'ordre de création.
Dim s As Shape
For Each s In ActiveSheet.shapes
If s.Type = msoFormControl Then
If s.FormControlType = 0 Then
'1ere méthode ActiveSheet.shapes(s.Name).Select
'texte = Selection.Characters.Text
'MsgBox "nom controle" & s.Name & texte
'2eme méthode
MsgBox "nom controle: " & s.Name & "/ " &
s.TextFrame.Characters.Caption '( ou s.TextFrame.Characters.text)
End If
ElseIf s.Type = msoOLEControlObject And s.OLEFormat.Object.ProgId =
"Forms.CommandButton.1" Then
'MsgBox s.Name
MsgBox s.OLEFormat.Object.Name
MsgBox
ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Object.Caption
' MsgBox ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Name
End If
Next
End Sub
Espère que ca pourra t'être utile.
A+et j'oubliais un détail important: le bouton qui permet la visualisation
du code (crée à partir de la BO Controles) ne fonctionne pas sur la
feuille: la "main" n'apparait pas lors du focus.
Voilà ce que je voudrais faire sans y parvenir:
Private Sub CommandButton1_Click()
CommandButton2.Visible = False
CommandButton1.Visible = True
End Sub
Private Sub CommandButton2_Click()
CommandButton1.Visible = False
CommandButton2.Visible = True
End Sub
"anonymousA" a écrit dans le message de news:
4218d701$0$807$bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence ,
on peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
re,
les controles selon qu'ils sont crées par la BO Conroles ou la BO
formulaires sont différents en nature et en comportement.La boite à outils
formulaires est d'ailleurs au delà d'Excel 97 (me semble t-il ) plus une
survivance du passé puique MS s'est délibérement orienté vers des
controles Active X dont le comportement est plus complexe mais plus riche
que ses prédécesseurs.
En conséquence les controles de la BO Formulaires peuvent être associées à
un macro que par défaut Excel nomme quandClic. tu noteras cependant que si
tu changes le nom de ce controle dans la zone Noms , Excel te proposera le
nom_QuandClic.Et on ne peut pas fair grand chose d'autre d'automatique
avec ces controles.
Pour les controles BO Controles, les macros evenementielles associées sont
à peu près du mêm ordre que celles que produisent les mêmes controles sur
un Userform donc beaucoup plus riches, la difficulté étant qu'il faut
ércire les codes qui y sont rattachés.
Enfin ceci dit, ce que je te proposais c'est d'utiliser le fait q'un
controle ( tant un controle de BO outils que de BO controles ) est un
objet contenu dans la collection shapes et qu'à condition de connaitre son
nom , il est possible d'utiliser la propriété visibles des objets shapes
pour le masquer ( quoique si tu lis le fil suivant tu verras que les
choses nes ont d'ailleurs pas forcément si simples), m'enfin....).
En résumé, si tu connais le nom de ton controle , tu peux écrire
Activesheet.shapes("nom de ton controle").visible úlse. Attention, il
s'agit du nom de l'objet et pas de sa légende ( propriété
TextFrame.Characters.Caption pour un bouton).
A tout hasard , je te communique ci-dessous uen petit code avec des
explications liminaires pour te retrouver dans les deux types de controle.
Dans ce code, je cherchais à déterminer si le controle était du type
controle BO Formulaires ou BO Controles et à donner la légende et le nom
du controle.
Sub detecteshapes()
'tes 2 types de boutons peuvent être détectés de la manière suivante:
'le 1er type (msoFormControl ou le nombre 8) est du type bouton de
controle
'généré par la barre d'outils "Formulaires tandis que le 2nd
'(msoOLEControlObject ou le nombre 12) est du type Controle Active X.
'Pour le 1er type de controles, c'est la propriété FormControlType qui te
'permet de déterminer si c'est un bouton ou pas (les constantes suivantes
sont
'possibles: xlButtonControl, xlCheckBox, xlDropDown, xlEditBox,
xlGroupBox,
'xlLabel, xlListBox, xlOptionButton, xlScrollBar ou xlSpinner numérotés
'succesivement de 0 à 9).
'Dans le deuxième type de controle, le ProgID sert à detecter si ce
controle
'est un bouton de commande. En fonction de quoi, certaines propriétes
peuvent
'être réalisées, et notamment la propriété Caption qui donne la légende du
'bouton
's.Type donne la nature de le forme qui est contenu dans la feuille , il
peut s'agir de
'msoAutoShape, msoCallout, msoChart, msoComment, msoEmbeddedOLEObject,
msoFormControl
',msoFreeform, msoGroup, msoLine, msoLinkedOLEObject, msoLinkedPicture
',msoMedia, msoOLEControlObject, msoPicture, msoPlaceholder,
'msoShapeTypeMixed ou msoTextEffect
'l'index des formes au sens numérotations des objets dans la collection
est
'déterminée chronologiquement selon l'ordre de création.
Dim s As Shape
For Each s In ActiveSheet.shapes
If s.Type = msoFormControl Then
If s.FormControlType = 0 Then
'1ere méthode ActiveSheet.shapes(s.Name).Select
'texte = Selection.Characters.Text
'MsgBox "nom controle" & s.Name & texte
'2eme méthode
MsgBox "nom controle: " & s.Name & "/ " &
s.TextFrame.Characters.Caption '( ou s.TextFrame.Characters.text)
End If
ElseIf s.Type = msoOLEControlObject And s.OLEFormat.Object.ProgId =
"Forms.CommandButton.1" Then
'MsgBox s.Name
MsgBox s.OLEFormat.Object.Name
MsgBox
ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Object.Caption
' MsgBox ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Name
End If
Next
End Sub
Espère que ca pourra t'être utile.
A+
et j'oubliais un détail important: le bouton qui permet la visualisation
du code (crée à partir de la BO Controles) ne fonctionne pas sur la
feuille: la "main" n'apparait pas lors du focus.
Voilà ce que je voudrais faire sans y parvenir:
Private Sub CommandButton1_Click()
CommandButton2.Visible = False
CommandButton1.Visible = True
End Sub
Private Sub CommandButton2_Click()
CommandButton1.Visible = False
CommandButton2.Visible = True
End Sub
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
4218d701$0$807$8fcfb975@news.wanadoo.fr...
bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence ,
on peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+
Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
re,
les controles selon qu'ils sont crées par la BO Conroles ou la BO
formulaires sont différents en nature et en comportement.La boite à outils
formulaires est d'ailleurs au delà d'Excel 97 (me semble t-il ) plus une
survivance du passé puique MS s'est délibérement orienté vers des
controles Active X dont le comportement est plus complexe mais plus riche
que ses prédécesseurs.
En conséquence les controles de la BO Formulaires peuvent être associées à
un macro que par défaut Excel nomme quandClic. tu noteras cependant que si
tu changes le nom de ce controle dans la zone Noms , Excel te proposera le
nom_QuandClic.Et on ne peut pas fair grand chose d'autre d'automatique
avec ces controles.
Pour les controles BO Controles, les macros evenementielles associées sont
à peu près du mêm ordre que celles que produisent les mêmes controles sur
un Userform donc beaucoup plus riches, la difficulté étant qu'il faut
ércire les codes qui y sont rattachés.
Enfin ceci dit, ce que je te proposais c'est d'utiliser le fait q'un
controle ( tant un controle de BO outils que de BO controles ) est un
objet contenu dans la collection shapes et qu'à condition de connaitre son
nom , il est possible d'utiliser la propriété visibles des objets shapes
pour le masquer ( quoique si tu lis le fil suivant tu verras que les
choses nes ont d'ailleurs pas forcément si simples), m'enfin....).
En résumé, si tu connais le nom de ton controle , tu peux écrire
Activesheet.shapes("nom de ton controle").visible úlse. Attention, il
s'agit du nom de l'objet et pas de sa légende ( propriété
TextFrame.Characters.Caption pour un bouton).
A tout hasard , je te communique ci-dessous uen petit code avec des
explications liminaires pour te retrouver dans les deux types de controle.
Dans ce code, je cherchais à déterminer si le controle était du type
controle BO Formulaires ou BO Controles et à donner la légende et le nom
du controle.
Sub detecteshapes()
'tes 2 types de boutons peuvent être détectés de la manière suivante:
'le 1er type (msoFormControl ou le nombre 8) est du type bouton de
controle
'généré par la barre d'outils "Formulaires tandis que le 2nd
'(msoOLEControlObject ou le nombre 12) est du type Controle Active X.
'Pour le 1er type de controles, c'est la propriété FormControlType qui te
'permet de déterminer si c'est un bouton ou pas (les constantes suivantes
sont
'possibles: xlButtonControl, xlCheckBox, xlDropDown, xlEditBox,
xlGroupBox,
'xlLabel, xlListBox, xlOptionButton, xlScrollBar ou xlSpinner numérotés
'succesivement de 0 à 9).
'Dans le deuxième type de controle, le ProgID sert à detecter si ce
controle
'est un bouton de commande. En fonction de quoi, certaines propriétes
peuvent
'être réalisées, et notamment la propriété Caption qui donne la légende du
'bouton
's.Type donne la nature de le forme qui est contenu dans la feuille , il
peut s'agir de
'msoAutoShape, msoCallout, msoChart, msoComment, msoEmbeddedOLEObject,
msoFormControl
',msoFreeform, msoGroup, msoLine, msoLinkedOLEObject, msoLinkedPicture
',msoMedia, msoOLEControlObject, msoPicture, msoPlaceholder,
'msoShapeTypeMixed ou msoTextEffect
'l'index des formes au sens numérotations des objets dans la collection
est
'déterminée chronologiquement selon l'ordre de création.
Dim s As Shape
For Each s In ActiveSheet.shapes
If s.Type = msoFormControl Then
If s.FormControlType = 0 Then
'1ere méthode ActiveSheet.shapes(s.Name).Select
'texte = Selection.Characters.Text
'MsgBox "nom controle" & s.Name & texte
'2eme méthode
MsgBox "nom controle: " & s.Name & "/ " &
s.TextFrame.Characters.Caption '( ou s.TextFrame.Characters.text)
End If
ElseIf s.Type = msoOLEControlObject And s.OLEFormat.Object.ProgId =
"Forms.CommandButton.1" Then
'MsgBox s.Name
MsgBox s.OLEFormat.Object.Name
MsgBox
ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Object.Caption
' MsgBox ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Name
End If
Next
End Sub
Espère que ca pourra t'être utile.
A+et j'oubliais un détail important: le bouton qui permet la visualisation
du code (crée à partir de la BO Controles) ne fonctionne pas sur la
feuille: la "main" n'apparait pas lors du focus.
Voilà ce que je voudrais faire sans y parvenir:
Private Sub CommandButton1_Click()
CommandButton2.Visible = False
CommandButton1.Visible = True
End Sub
Private Sub CommandButton2_Click()
CommandButton1.Visible = False
CommandButton2.Visible = True
End Sub
"anonymousA" a écrit dans le message de news:
4218d701$0$807$bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence ,
on peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
Merci infiniment anonymous.
Ta macro est super pratique pour retrouver les noms précis des boutons sans
chercher.
Encore une question comment "armer" les boutons crées par la BO Controles?
Je veux dire quelle est la manoeuvre à faire pour obtenir la flèche sur
focus (donc le fonctionnement de la macro) à la place des "signes
d'encadrement" (mode création en quelque sorte). Jusqu'à présent je suis
obligé de sortir du classeur car je n'ai pas compris ça.
Encore merci et à bientôt.
"anonymousA" a écrit dans le message de news:
4218f39a$0$807$re,
les controles selon qu'ils sont crées par la BO Conroles ou la BO
formulaires sont différents en nature et en comportement.La boite à outils
formulaires est d'ailleurs au delà d'Excel 97 (me semble t-il ) plus une
survivance du passé puique MS s'est délibérement orienté vers des
controles Active X dont le comportement est plus complexe mais plus riche
que ses prédécesseurs.
En conséquence les controles de la BO Formulaires peuvent être associées à
un macro que par défaut Excel nomme quandClic. tu noteras cependant que si
tu changes le nom de ce controle dans la zone Noms , Excel te proposera le
nom_QuandClic.Et on ne peut pas fair grand chose d'autre d'automatique
avec ces controles.
Pour les controles BO Controles, les macros evenementielles associées sont
à peu près du mêm ordre que celles que produisent les mêmes controles sur
un Userform donc beaucoup plus riches, la difficulté étant qu'il faut
ércire les codes qui y sont rattachés.
Enfin ceci dit, ce que je te proposais c'est d'utiliser le fait q'un
controle ( tant un controle de BO outils que de BO controles ) est un
objet contenu dans la collection shapes et qu'à condition de connaitre son
nom , il est possible d'utiliser la propriété visibles des objets shapes
pour le masquer ( quoique si tu lis le fil suivant tu verras que les
choses nes ont d'ailleurs pas forcément si simples), m'enfin....).
En résumé, si tu connais le nom de ton controle , tu peux écrire
Activesheet.shapes("nom de ton controle").visible úlse. Attention, il
s'agit du nom de l'objet et pas de sa légende ( propriété
TextFrame.Characters.Caption pour un bouton).
A tout hasard , je te communique ci-dessous uen petit code avec des
explications liminaires pour te retrouver dans les deux types de controle.
Dans ce code, je cherchais à déterminer si le controle était du type
controle BO Formulaires ou BO Controles et à donner la légende et le nom
du controle.
Sub detecteshapes()
'tes 2 types de boutons peuvent être détectés de la manière suivante:
'le 1er type (msoFormControl ou le nombre 8) est du type bouton de
controle
'généré par la barre d'outils "Formulaires tandis que le 2nd
'(msoOLEControlObject ou le nombre 12) est du type Controle Active X.
'Pour le 1er type de controles, c'est la propriété FormControlType qui te
'permet de déterminer si c'est un bouton ou pas (les constantes suivantes
sont
'possibles: xlButtonControl, xlCheckBox, xlDropDown, xlEditBox,
xlGroupBox,
'xlLabel, xlListBox, xlOptionButton, xlScrollBar ou xlSpinner numérotés
'succesivement de 0 à 9).
'Dans le deuxième type de controle, le ProgID sert à detecter si ce
controle
'est un bouton de commande. En fonction de quoi, certaines propriétes
peuvent
'être réalisées, et notamment la propriété Caption qui donne la légende du
'bouton
's.Type donne la nature de le forme qui est contenu dans la feuille , il
peut s'agir de
'msoAutoShape, msoCallout, msoChart, msoComment, msoEmbeddedOLEObject,
msoFormControl
',msoFreeform, msoGroup, msoLine, msoLinkedOLEObject, msoLinkedPicture
',msoMedia, msoOLEControlObject, msoPicture, msoPlaceholder,
'msoShapeTypeMixed ou msoTextEffect
'l'index des formes au sens numérotations des objets dans la collection
est
'déterminée chronologiquement selon l'ordre de création.
Dim s As Shape
For Each s In ActiveSheet.shapes
If s.Type = msoFormControl Then
If s.FormControlType = 0 Then
'1ere méthode ActiveSheet.shapes(s.Name).Select
'texte = Selection.Characters.Text
'MsgBox "nom controle" & s.Name & texte
'2eme méthode
MsgBox "nom controle: " & s.Name & "/ " &
s.TextFrame.Characters.Caption '( ou s.TextFrame.Characters.text)
End If
ElseIf s.Type = msoOLEControlObject And s.OLEFormat.Object.ProgId =
"Forms.CommandButton.1" Then
'MsgBox s.Name
MsgBox s.OLEFormat.Object.Name
MsgBox
ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Object.Caption
' MsgBox ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Name
End If
Next
End Sub
Espère que ca pourra t'être utile.
A+et j'oubliais un détail important: le bouton qui permet la visualisation
du code (crée à partir de la BO Controles) ne fonctionne pas sur la
feuille: la "main" n'apparait pas lors du focus.
Voilà ce que je voudrais faire sans y parvenir:
Private Sub CommandButton1_Click()
CommandButton2.Visible = False
CommandButton1.Visible = True
End Sub
Private Sub CommandButton2_Click()
CommandButton1.Visible = False
CommandButton2.Visible = True
End Sub
"anonymousA" a écrit dans le message de news:
4218d701$0$807$bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence ,
on peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
Merci infiniment anonymous.
Ta macro est super pratique pour retrouver les noms précis des boutons sans
chercher.
Encore une question comment "armer" les boutons crées par la BO Controles?
Je veux dire quelle est la manoeuvre à faire pour obtenir la flèche sur
focus (donc le fonctionnement de la macro) à la place des "signes
d'encadrement" (mode création en quelque sorte). Jusqu'à présent je suis
obligé de sortir du classeur car je n'ai pas compris ça.
Encore merci et à bientôt.
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
4218f39a$0$807$8fcfb975@news.wanadoo.fr...
re,
les controles selon qu'ils sont crées par la BO Conroles ou la BO
formulaires sont différents en nature et en comportement.La boite à outils
formulaires est d'ailleurs au delà d'Excel 97 (me semble t-il ) plus une
survivance du passé puique MS s'est délibérement orienté vers des
controles Active X dont le comportement est plus complexe mais plus riche
que ses prédécesseurs.
En conséquence les controles de la BO Formulaires peuvent être associées à
un macro que par défaut Excel nomme quandClic. tu noteras cependant que si
tu changes le nom de ce controle dans la zone Noms , Excel te proposera le
nom_QuandClic.Et on ne peut pas fair grand chose d'autre d'automatique
avec ces controles.
Pour les controles BO Controles, les macros evenementielles associées sont
à peu près du mêm ordre que celles que produisent les mêmes controles sur
un Userform donc beaucoup plus riches, la difficulté étant qu'il faut
ércire les codes qui y sont rattachés.
Enfin ceci dit, ce que je te proposais c'est d'utiliser le fait q'un
controle ( tant un controle de BO outils que de BO controles ) est un
objet contenu dans la collection shapes et qu'à condition de connaitre son
nom , il est possible d'utiliser la propriété visibles des objets shapes
pour le masquer ( quoique si tu lis le fil suivant tu verras que les
choses nes ont d'ailleurs pas forcément si simples), m'enfin....).
En résumé, si tu connais le nom de ton controle , tu peux écrire
Activesheet.shapes("nom de ton controle").visible úlse. Attention, il
s'agit du nom de l'objet et pas de sa légende ( propriété
TextFrame.Characters.Caption pour un bouton).
A tout hasard , je te communique ci-dessous uen petit code avec des
explications liminaires pour te retrouver dans les deux types de controle.
Dans ce code, je cherchais à déterminer si le controle était du type
controle BO Formulaires ou BO Controles et à donner la légende et le nom
du controle.
Sub detecteshapes()
'tes 2 types de boutons peuvent être détectés de la manière suivante:
'le 1er type (msoFormControl ou le nombre 8) est du type bouton de
controle
'généré par la barre d'outils "Formulaires tandis que le 2nd
'(msoOLEControlObject ou le nombre 12) est du type Controle Active X.
'Pour le 1er type de controles, c'est la propriété FormControlType qui te
'permet de déterminer si c'est un bouton ou pas (les constantes suivantes
sont
'possibles: xlButtonControl, xlCheckBox, xlDropDown, xlEditBox,
xlGroupBox,
'xlLabel, xlListBox, xlOptionButton, xlScrollBar ou xlSpinner numérotés
'succesivement de 0 à 9).
'Dans le deuxième type de controle, le ProgID sert à detecter si ce
controle
'est un bouton de commande. En fonction de quoi, certaines propriétes
peuvent
'être réalisées, et notamment la propriété Caption qui donne la légende du
'bouton
's.Type donne la nature de le forme qui est contenu dans la feuille , il
peut s'agir de
'msoAutoShape, msoCallout, msoChart, msoComment, msoEmbeddedOLEObject,
msoFormControl
',msoFreeform, msoGroup, msoLine, msoLinkedOLEObject, msoLinkedPicture
',msoMedia, msoOLEControlObject, msoPicture, msoPlaceholder,
'msoShapeTypeMixed ou msoTextEffect
'l'index des formes au sens numérotations des objets dans la collection
est
'déterminée chronologiquement selon l'ordre de création.
Dim s As Shape
For Each s In ActiveSheet.shapes
If s.Type = msoFormControl Then
If s.FormControlType = 0 Then
'1ere méthode ActiveSheet.shapes(s.Name).Select
'texte = Selection.Characters.Text
'MsgBox "nom controle" & s.Name & texte
'2eme méthode
MsgBox "nom controle: " & s.Name & "/ " &
s.TextFrame.Characters.Caption '( ou s.TextFrame.Characters.text)
End If
ElseIf s.Type = msoOLEControlObject And s.OLEFormat.Object.ProgId =
"Forms.CommandButton.1" Then
'MsgBox s.Name
MsgBox s.OLEFormat.Object.Name
MsgBox
ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Object.Caption
' MsgBox ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Name
End If
Next
End Sub
Espère que ca pourra t'être utile.
A+
et j'oubliais un détail important: le bouton qui permet la visualisation
du code (crée à partir de la BO Controles) ne fonctionne pas sur la
feuille: la "main" n'apparait pas lors du focus.
Voilà ce que je voudrais faire sans y parvenir:
Private Sub CommandButton1_Click()
CommandButton2.Visible = False
CommandButton1.Visible = True
End Sub
Private Sub CommandButton2_Click()
CommandButton1.Visible = False
CommandButton2.Visible = True
End Sub
"anonymousA" <anonymousA@wanadoo.fr> a écrit dans le message de news:
4218d701$0$807$8fcfb975@news.wanadoo.fr...
bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence ,
on peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+
Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.
Merci infiniment anonymous.
Ta macro est super pratique pour retrouver les noms précis des boutons sans
chercher.
Encore une question comment "armer" les boutons crées par la BO Controles?
Je veux dire quelle est la manoeuvre à faire pour obtenir la flèche sur
focus (donc le fonctionnement de la macro) à la place des "signes
d'encadrement" (mode création en quelque sorte). Jusqu'à présent je suis
obligé de sortir du classeur car je n'ai pas compris ça.
Encore merci et à bientôt.
"anonymousA" a écrit dans le message de news:
4218f39a$0$807$re,
les controles selon qu'ils sont crées par la BO Conroles ou la BO
formulaires sont différents en nature et en comportement.La boite à outils
formulaires est d'ailleurs au delà d'Excel 97 (me semble t-il ) plus une
survivance du passé puique MS s'est délibérement orienté vers des
controles Active X dont le comportement est plus complexe mais plus riche
que ses prédécesseurs.
En conséquence les controles de la BO Formulaires peuvent être associées à
un macro que par défaut Excel nomme quandClic. tu noteras cependant que si
tu changes le nom de ce controle dans la zone Noms , Excel te proposera le
nom_QuandClic.Et on ne peut pas fair grand chose d'autre d'automatique
avec ces controles.
Pour les controles BO Controles, les macros evenementielles associées sont
à peu près du mêm ordre que celles que produisent les mêmes controles sur
un Userform donc beaucoup plus riches, la difficulté étant qu'il faut
ércire les codes qui y sont rattachés.
Enfin ceci dit, ce que je te proposais c'est d'utiliser le fait q'un
controle ( tant un controle de BO outils que de BO controles ) est un
objet contenu dans la collection shapes et qu'à condition de connaitre son
nom , il est possible d'utiliser la propriété visibles des objets shapes
pour le masquer ( quoique si tu lis le fil suivant tu verras que les
choses nes ont d'ailleurs pas forcément si simples), m'enfin....).
En résumé, si tu connais le nom de ton controle , tu peux écrire
Activesheet.shapes("nom de ton controle").visible úlse. Attention, il
s'agit du nom de l'objet et pas de sa légende ( propriété
TextFrame.Characters.Caption pour un bouton).
A tout hasard , je te communique ci-dessous uen petit code avec des
explications liminaires pour te retrouver dans les deux types de controle.
Dans ce code, je cherchais à déterminer si le controle était du type
controle BO Formulaires ou BO Controles et à donner la légende et le nom
du controle.
Sub detecteshapes()
'tes 2 types de boutons peuvent être détectés de la manière suivante:
'le 1er type (msoFormControl ou le nombre 8) est du type bouton de
controle
'généré par la barre d'outils "Formulaires tandis que le 2nd
'(msoOLEControlObject ou le nombre 12) est du type Controle Active X.
'Pour le 1er type de controles, c'est la propriété FormControlType qui te
'permet de déterminer si c'est un bouton ou pas (les constantes suivantes
sont
'possibles: xlButtonControl, xlCheckBox, xlDropDown, xlEditBox,
xlGroupBox,
'xlLabel, xlListBox, xlOptionButton, xlScrollBar ou xlSpinner numérotés
'succesivement de 0 à 9).
'Dans le deuxième type de controle, le ProgID sert à detecter si ce
controle
'est un bouton de commande. En fonction de quoi, certaines propriétes
peuvent
'être réalisées, et notamment la propriété Caption qui donne la légende du
'bouton
's.Type donne la nature de le forme qui est contenu dans la feuille , il
peut s'agir de
'msoAutoShape, msoCallout, msoChart, msoComment, msoEmbeddedOLEObject,
msoFormControl
',msoFreeform, msoGroup, msoLine, msoLinkedOLEObject, msoLinkedPicture
',msoMedia, msoOLEControlObject, msoPicture, msoPlaceholder,
'msoShapeTypeMixed ou msoTextEffect
'l'index des formes au sens numérotations des objets dans la collection
est
'déterminée chronologiquement selon l'ordre de création.
Dim s As Shape
For Each s In ActiveSheet.shapes
If s.Type = msoFormControl Then
If s.FormControlType = 0 Then
'1ere méthode ActiveSheet.shapes(s.Name).Select
'texte = Selection.Characters.Text
'MsgBox "nom controle" & s.Name & texte
'2eme méthode
MsgBox "nom controle: " & s.Name & "/ " &
s.TextFrame.Characters.Caption '( ou s.TextFrame.Characters.text)
End If
ElseIf s.Type = msoOLEControlObject And s.OLEFormat.Object.ProgId =
"Forms.CommandButton.1" Then
'MsgBox s.Name
MsgBox s.OLEFormat.Object.Name
MsgBox
ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Object.Caption
' MsgBox ActiveSheet.OLEObjects(s.OLEFormat.Object.Name).Name
End If
Next
End Sub
Espère que ca pourra t'être utile.
A+et j'oubliais un détail important: le bouton qui permet la visualisation
du code (crée à partir de la BO Controles) ne fonctionne pas sur la
feuille: la "main" n'apparait pas lors du focus.
Voilà ce que je voudrais faire sans y parvenir:
Private Sub CommandButton1_Click()
CommandButton2.Visible = False
CommandButton1.Visible = True
End Sub
Private Sub CommandButton2_Click()
CommandButton1.Visible = False
CommandButton2.Visible = True
End Sub
"anonymousA" a écrit dans le message de news:
4218d701$0$807$bonjour
les boutons appartiennent aussi à la collection Shapes. En conéquence ,
on peut activer la propirété visible de ceux-ci.
For Each sh In ActiveSheet.shapes
sh.Visible = True
Next
A+Bonjour,
Par la barre d'outil "formulaire" j'insère des boutons dans ma feuille
(pour leur affecter des macros bien sûr).
Ces objets sont-ils dotés d'une propriété Visible-True-False?
J'ai essayé d'en masquer certains par les macro déclenchées mais ça ne
marche pas.
Merci de votre enseignement.