Créer des formes invisible/visible dans excel via VBA
J'ai ce problème depuis quelques heures et je voudrais vraiment l'apprécier un peu d'aide avec elle.
Fondamentalement, je veux être en mesure de cacher/afficher des formes en fonction des sélections d'un utilisateur sur un objet userform. J'ai cassé le problème en un exemple très simple. Si j'insère une forme appelée "ovale 1" dans une feuille et d'exécuter le code:
Sub hideshape()
With ActiveSheet
.Shapes("Oval 1").Select
With Selection
.Visible = False
End With
End With
End Sub
la forme disparaît, mais quand j'exécute ce code
Sub unhideshape()
With ActiveSheet
.Shapes("Oval 1").Select
With Selection
.Visible = True
End With
End With
End Sub
J'obtiens une erreur ", a Demandé Formes sont verrouillés pour la Sélection"
Le classeur n'est pas protégé et j'ai essayé en décochant verrouillé et verrouillé texte sur les propriétés de la forme.
Toutes les idées ce qui est la cause de cette.
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas
Select
un objet caché. Cependant, vous n'avez pas besoin d'utiliserSelect
à tous, et il n'est généralement pas recommandée. Essayez simplement:J'ai résolu le problème avec ce code(Ovale = Type 9, à partir de MsoAutoShapeType Énumération (Bureau)):
"Si" Type = 9" est incorrecte, vous pouvez trouver le type de votre forme avec le code dans Immédiate fenêtre (ctrl+G en VBA):
à partir de: extendoffice.com
- Je cacher les formes en fonction de leur nom depuis quelques formes que je ne veux pas cacher. J'utilise ce format:
Sheet1.Shapes.Range(Array("COtxtBox1")).Visible = msoTrue
nom de votre forme ou des formes va dans le tableau
si seulement 1 forme que vous pouvez simplement utiliser:
Sheet1.Shapes.range("COtxtBox1").Visible = True
J'ai trouvé que le "ssm" la partie n'est pas nécessaire pour le Vrai ou Fausse déclaration