[-RESOLUTO-]affichage des boutons dans un feuilles selon le nombre dans la cellule

Ilino

XLDnaute Barbatruc
Forum Bonjour
Dans ma feuille 1 j’ai une cellule F5 (fusionnée F-G) numérique et dans la même feuille j’ai cré des BOUTONS (CommandButton) de 1 à 20
Je souhaite pour chaque chiffre saisie dans la cellule F5 affiche un nombre de bouton
Exemple
Si 1 alors bouton 1&2
Si 2 alors bouton 3&4
Si 3 alors bouton 5&6
Si 4 alors bouton 7&8
Si 5 alors bouton 9&10
Si 6 alors bouton 11&12
Si 7 alors bouton 13&14
Si 8 alors bouton 15&16
Si 9 alors bouton 17&18
Si 10 alors bouton 19&20
Si vide masquer tous les boutons
Grazie
 
Dernière édition:

vgendron

XLDnaute Barbatruc
Re : affichage des boutons dans un feuilles selon le nombre dans la cellule

bonjour
toujours pas de fichier exemple à ce que je vois ;-)

sinon, l'idée de code serait comme ca

if [F5]="" then
for i=1 to 10
control (commandbutton&i).hide
next i
else
control (commandbutton& 2*i-1).show
control (commandbutton & 2*i) .show
end if
 

Ilino

XLDnaute Barbatruc
Re : affichage des boutons dans un feuilles selon le nombre dans la cellule

bonjour
toujours pas de fichier exemple à ce que je vois ;-)

sinon, l'idée de code serait comme ca

if [F5]="" then
for i=1 to 10
control (commandbutton&i).hide
next i
else
control (commandbutton& 2*i-1).show
control (commandbutton & 2*i) .show
end if

Bonjour vgendron
merci pour la réponse rapide
ci joint le fichier
GRAZIE
 

Pièces jointes

  • ILINO BOUTON SELON LE NOMBRE.xlsx
    55.2 KB · Affichages: 34

Ilino

XLDnaute Barbatruc
Re : affichage des boutons dans un feuilles selon le nombre dans la cellule

Re
désolé ci joint le bon fichier avec le code mais ça n a pas marché?
GRAZIE
 

Pièces jointes

  • ILINO BOUTON SELON LE NOMBRE.xlsm
    63.4 KB · Affichages: 31

Paf

XLDnaute Barbatruc
Re : affichage des boutons dans un feuilles selon le nombre dans la cellule

Bonjour à tous

sans avoir regarder le classeur, adapter éventuellement les noms de boutons

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MonBouton  As OLEObject, Bouton1, Bouton2
If Not Intersect(Target, Range("F5")) Is Nothing Then
    If IsEmpty(Target.Value) Then
        For Each MonBouton In ActiveSheet.OLEObjects
            If TypeOf MonBouton.Object Is MSForms.CommandButton Then
                MonBouton.Visible = False
            End If
        Next
     Else
        If Target.Value > 10 Then
            MsgBox "Erreur N° trop grand"
            Exit Sub
        End If
        For Each MonBouton In ActiveSheet.OLEObjects
            If TypeOf MonBouton.Object Is MSForms.CommandButton Then
                Bouton1 = "CommandButton" & Target.Value * 2
                Bouton2 = "CommandButton" & Target.Value * 2 - 1
                If MonBouton.Name = Bouton1 Or MonBouton.Name = Bouton2 Then
                    MonBouton.Visible = True
                End If
            End If
        Next
    End If
End If
End Sub

A+

Edit

après essai avec cellules fusionnées, ça ne fonctionne pas!
 
Dernière édition:

vgendron

XLDnaute Barbatruc
Re : affichage des boutons dans un feuilles selon le nombre dans la cellule

Oui forcément ca ne marche pas.
quand je dis "une idée", c'est juste l'algorithme. le code n'est pas garanti du tout. au contraire; je garanti plutot que la syntaxe n'est pas du tout la bonne..
donc. en cherchant un petit peu, le code devient
Code:
Public Sub Worksheet_Change(ByVal Target As Range)
If [F5] = "" Then
    For i = 1 To 20
    nomControle = "CommandButton" & i
        Me.OLEObjects(nomControle).Visible = False
        
    Next i
Else
    nomControle = "CommandButton" & 2 * [F5] - 1
    Me.OLEObjects(nomControle).Visible = True
    nomControle = "CommandButton" & 2 * [F5]
    Me.OLEObjects(nomControle).Visible = True
End If
End Sub
 

camarchepas

XLDnaute Barbatruc
Re : affichage des boutons dans un feuilles selon le nombre dans la cellule

Bonjour VGendron, Paf , Ilino

Une autre solution :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Integer
For I = 1 To 10
   Me.Shapes.Range("CommandButton" & 2 * I - 1).Visible = I <= [F5]
   Me.Shapes.Range("CommandButton" & 2 * I).Visible = I <= [F5]
Next I

End Sub
 

Discussions similaires

Réponses
6
Affichages
442
Réponses
5
Affichages
223
Réponses
17
Affichages
323

Statistiques des forums

Discussions
312 169
Messages
2 085 925
Membres
103 043
dernier inscrit
nouha nj