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 ?
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
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
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
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.