Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

ajouter un bouton sans que ça devienne de l'acné !

B

Berkane

Guest
bonjour à tous

j'ai une macro qui, entre autres fonctionnalités, ajoute un bouton.
Le problème, c'est qu'elle n'est censée ajouter ce bouton que s'il n'est pas déjà présent ( autrement dit, que si c'est une première mise en route de la macro).
Qui peut m'aider?

merci d'avance.
 
D

david2

Guest
Bonjour Berkane,

une petite astuce consiste à forcer le prg à boguer
- tu place ton Bouton1 sur ta feuille (c'est lui qui a l'index 1)
- tu lui attache macro1 qui creer un bouton 2

si le bouton n'existe pas VBA debogue sur l'index 2 qui est introuvable et donc resume le next, qui le creer
par contre si il exite déjà le "blablabla" est différent de "btn2" donc direction End if

Sub Macro1()
On Error Resume Next
If ActiveSheet.Buttons(2).Name = "blablabla" Then
ActiveSheet.Buttons.Add(100, 100, 100, 100).Select
Selection.Name = "btn2"
Selection.OnAction = "autre_Macro"
End If
End Sub

mais j'avoue qu'il doit bien exister un Methode pour tester l'existence d'1 objet

bon dev
 
B

Berkane

Guest
Salut B52

La macro construit des tableaux et à la fin, elle fait apparaître un bouton de formulaire "imprimer".
La première fois que j'utilise la macro, tout va bien : le bouton est placé.
La deuxième fois, ce même bouton est placé au dessus du premier.
Au bout d'un moment, ça fait pas mal de boutons-clones.
Problématique:comment faire en sorte que le bouton ne soit placé que s'il n'existe pas déjà?
Ou à défaut, comment effacer ce bouton préalablement S'IL EXISTE. Car en effet, le cas échéant, un message d'erreur me signal que l'objet sollicité pour l'effacement n'existe pas.

Merci pour ton aide.
 
S

sousou

Guest
Bonjour berkane

Un bouton sur une feuille fait partie des objets shapes de la feuille.

Test ce code, cela devrait te donner des idées.

Sub deb()

For Each i In ActiveSheet.Shapes
If i.Name = "bouton1" Then
MsgBox "le bouton existe"
Exit Sub
End If

Next
MsgBox "le bouton n'existe pas"
End Sub
 
B

Berkane

Guest
merci à tous.

Vos conseils sont précieux et pertinents.

Mon alternative a été de déclarer un compteur public qui permettait de savoir le nombre de fois que la macro avait été utilisée:le bouton n'apparait que si le compteur est égal à 1.

@+ et continuez à être intelligents !! lol
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…