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

Autres Enlever texte sur un bouton (contrôle de formulaire)

Caninge

XLDnaute Accro
Bonjour à tous,

sur une feuille je veux mettre les 102 lettres du scrabble.
il fait certainement un code pour faire cette manœuvre.

Action 1 : je clique sur le bouton le A disparaît.
Action 2 : j'appuie une deuxième fois et le A revient

et la même chose pour toutes les autres lettres.

Bien Sympa à vous de me trouver le code

A
 

Pièces jointes

  • Modifier Texte sur un bouton.xlsx
    11 KB · Affichages: 13

Caninge

XLDnaute Accro
Bonjour Danielco, Staple 1600

je prend l'exemple de Daniel :

j'ai mis les 2 premières lettres du scrabble : 8 A et 2 B

et là ça se complique lol

Merci
 

Pièces jointes

  • Modifier Texte sur un bouton.xlsm
    15.2 KB · Affichages: 9

Caninge

XLDnaute Accro
Bonsoir job75, Danielco, JM

j'ai prit la solution de JOB75 et affecter une macro à chaque bouton.

Le problème c'est qu'il y a 102 lettres dans un jeu de scrabble.

En prenant son temps...

Merci
 

Pièces jointes

  • Modifier Texte sur un bouton_2.xlsm
    17 KB · Affichages: 8

danielco

XLDnaute Accro
Il faut renommer les boutons Bouton01A, Bouton02A etc. Ensuite, pour reprendre l'idée de Job75, attache cette macro à tous tes boutons :

VB:
Sub Bouton()
  Dim Lettre As String
  Lettre = Right(Application.Caller, 1)
  If Right(ActiveSheet.Shapes(Application.Caller).DrawingObject.Caption, 1) = Lettre Then
    ActiveSheet.Shapes(Application.Caller).DrawingObject.Caption = ""
  Else
    ActiveSheet.Shapes(Application.Caller).DrawingObject.Caption = Lettre
  End If
End Sub

Daniel
 

Staple1600

XLDnaute Barbatruc
Re Caninge, Bonsoir le fil, job75, danielco

J'arrive un peu tard, mais comme c'est pondu, je livre
VB:
Sub Btn()
Static X$, Z As Shape
Set Z = ActiveSheet.Shapes(Application.Caller)
If Len(Z.DrawingObject.Caption) Then
X = Z.DrawingObject.Caption
Z.DrawingObject.Caption = Empty
Else
Z.DrawingObject.Caption = X
End If
End Sub
Ce qui est amusant c'est qu'il faut affecter cette macro (ou celles de mes petits camarades) 102 fois
Alors qu'un module de classe enleverait cette fastidieuse tâche.
 

job75

XLDnaute Barbatruc
Je ne vois pas pourquoi Daniel et JM utilisent ActiveSheet.Shapes(Application.Caller).DrawingObject.

Alors qu'on peut utiliser comme je l'ai fait ActiveSheet.DrawingObjects.(Application.Caller).

Et (sauf erreur) on ne peut pas utiliser un Module de classe sur des contrôles de formulaire.

Il est par contre facile, par une boucle, de leur affecter une macro.
 

Staple1600

XLDnaute Barbatruc
Re

Moi je l'utilise juste parce qu'au départ, je suis parti de la macro Sub A_Clic() de la PJ.
Sinon pour le module de classe, il suffira de remplacer les 102 boutons formulaires par 102 MSForms.CommandButton, non ?
 

Discussions similaires

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