Rendre invisible puis visible un bouton de commande

chindou

XLDnaute Occasionnel
Bonjour à toutes et à tous
J'ai une question: Peut-on rendre invisible puis visible un bouton de commande dans une feuille sous condition d’une cellule que son contenu sera affiché sur ce bouton ?
C’est-à-dire si la cellule est vide le bouton reste invisible et si cette cellule sera pleine le bouton deviendra visible et son nom c’est le contenu de cette cellule.
Est-ce possible ?

Merci d'avance pour vos idées
 

JCGL

XLDnaute Barbatruc
Re : Rendre invisible puis visible un bouton de commande

Bonjour à tous,

Peux-tu essayer avec ceci dans le code la feuille concernée :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A2") <> "" Then
CommandButton1.Visible = True: CommandButton1.Caption = Range("A2")
Else
CommandButton1.Visible = False: CommandButton1.Caption = ""
End If
End Sub

A+ à tous
 

Pièces jointes

  • JC CBtn Visible sur Valeur.xls
    72 KB · Affichages: 73

job75

XLDnaute Barbatruc
Re : Rendre invisible puis visible un bouton de commande

Bonsoir chindou, Jean-Claude, Jean-Marcel,

Comme le type de bouton n'est pas précisé, j'ai mis dans ma feuille un bouton "Formulaire" et un bouton "ActiveX".

Dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
With [A1] 'référence de la cellule à adapter
'---bouton Formulaire---
Shapes("Bouton 1").TextFrame.Characters.Text = .Text
Shapes("Bouton 1").Visible = .Text <> ""
'---bouton ActiveX---
CommandButton1.Caption = .Text
CommandButton1.Visible = .Text <> ""
End With
End Sub
A+
 

JCGL

XLDnaute Barbatruc
Re : Rendre invisible puis visible un bouton de commande

Bonjour à tous,

Peux-tu essayer :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Feuil2.Range("A2") <> "" Then
Feuil1.CommandButton1.Visible = True: Feuil1.CommandButton1.Caption = Feuil2.Range("A2")
Else
Feuil1.CommandButton1.Visible = False: Feuil1.CommandButton1.Caption = ""
End If
End Sub

A+ à tous
 

job75

XLDnaute Barbatruc
Re : Rendre invisible puis visible un bouton de commande

Bonjour le fil, le forum,

S'il y a 5 boutons "ActiveX" en Feuil1, placer dans le code de cette feuille :

Code:
Private Sub Worksheet_Activate()
'---boutons ActiveX---
Dim c As Range, n%
For Each c In Feuil2.[B2:B6] 'plage à adapter
  n = n + 1
  With OLEObjects("CommandButton" & n)
    .Object.Caption = c.Text
    .Visible = c.Text <> ""
  End With
Next
End Sub
Si ce sont des bouton "Formulaire" :

Code:
Private Sub Worksheet_Activate()
'---boutons Formulaire---
Dim c As Range, n%
For Each c In Feuil2.[B2:B6] 'plage à adapter
  n = n + 1
  With Shapes("Bouton " & n)
    .TextFrame.Characters.Text = c.Text
    .Visible = c.Text <> ""
  End With
Next
End Sub
Dans les 2 cas les noms des boutons se terminent par un numéro de 1 à 5.

A+
 

Discussions similaires

Statistiques des forums

Discussions
313 064
Messages
2 094 945
Membres
106 133
dernier inscrit
Thierry R