Bouton avec changement de couleur et de texte

Bonjour à toutes et à tous,

Je souhaite réaliser un bouton permettant de supprimer toutes les feuilles d'un classeur dont le nom se termine par XX (peu importe).

Jusque là ça fonctionne.

Comme le classeur comporte beaucoup de feuilles, cela prend un certain temps, j'ai donc modifié la couleur du bouton et du texte pour indiquer que la suppression est bien en cours, le bouton reprend son apparence de départ lorsque tout est terminé.

J'ai utilisé l'enregistreur de macro pour récupérer les valeurs de couleur du bouton, le problème est que le bouton doit être sélectionné pour lui appliquer les modifications et que cette sélection apparait à l'écran lorsque la macro s'exécute (le bouton est entouré des propositions de modification ).

Pour cacher cette sélection du bouton, dès les modifications effectuées, je sélectionne une cellule cachée derrière le bouton, du coup le bouton n'est plus sélectionné et cela ne se voit pas... pas terrible comme solution.

Je voudrais donc effectuer les modifications du bouton sans que sa sélection soit visible à l'écran et ne pas recourir à un bricolage de sélection de cellule.

Le fichier est en PJ.

Merci pour votre aide

20classeur1.xlsm (19.51 Ko)

Bonsoir,

il n'est pas nécessaire de sélectionner un objet pour en changer sa couleur, c'est un des "problèmes" lié à l'enregistreur de macro : celui-ci enregistre tout et lors de vos enregistrements vous êtes "bien obligés" de sélectionner l'objet pour changer sa couleur. VBA n'en a pas besoin, il lui faut juste le nom de l'objet pour travailler dessus. Cette réflexion est également valable pour beaucoup de sélection sous Excel !

Dans votre cas pour changer la couleur de votre bouton supprimez cette ligne : ActiveSheet.Shapes.Range(Array("Bevel 1")).Select
puis remplacez celle-ci : With Selection.ShapeRange.Line
par : With Activesheet.Shapes("Bevel 1").Line

donc on va travailler avec la propriété Line du shapes se trouvant dans la collection Shapes de la feuille active qui porte le nom "Bevel 1"

Astuce : si vous devez créer un shapes, celui-ci se sélectionne, pour éviter cela il suffit lors de sa création de l'attribuer à une variable VBA :
avec sélection : ActiveSheet.Shapes.AddShape(msoShapeRectangle, 141.75, 84, 72, 72).Select (résultat de l'enregistreur de macro)
sans sélection (c'est plus propre) : Dim Sh As Shape : Set Sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 141.75, 84, 72, 72)
et après vous en faites ce que vous voulez avec : With Sh

@ bientôt

LouReeD

Bonsoir,

Merci beaucoup, c'est parfait !

Bonne soirée.

Dul

Bonsoir,

merci @ vous pour vos remerciements !

@ bientôt

LouReeD

Rechercher des sujets similaires à "bouton changement couleur texte"