Modifier l'intitulé d'un bouton [VBE EXCEL]

Résolu/Fermé
kocipia - 1 mars 2011 à 22:06
 kocipia - 2 mars 2011 à 20:51
Bonjour,

Voici un petit bout de code :

For i = 7 To 33
j = i - 6
If cells(i, 3).Value <> "" then
Me.CommandButton(j).Caption = Cells(i, 3).Value
Else
CommandButton(j).Visible = False
End if
Next i


En gros, je souhaite que le bouton 1 prenne la valeur de la cellule 1, le bouton 2 celui de la cellule 2 ... mais ça ne passe pas :'(

Siq quelqu'un peut m'expliquer pourquoi ça ne fonctionne pas et surtout comment y remedier.

Merci par avance.


A voir également:

3 réponses

bonsoir,
les boutons sont ils sur un Userform ou directement sur une feuille ?

- si sur une feuille
If cells(i, 3).Value <> "" then
   Shapes("CommandButton" & j).Caption = Cells(i, 3).Value
Else
   Shapes("CommandButton" & j).Visible = False
End if


- si sur Userform
If cells(i, 3).Value <> "" then
   Me.Controls("CommandButton" & j).Caption= Cells(i, 3).Value
Else
   Me.Controls("CommandButton" & j).Visible = False
End if


Bonne suite
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
1 mars 2011 à 23:24
Bonjour,
Acvec ce code ... ?
Sub VoirBouton()
Dim i As Integer
'------Cette partie du code ne doit pas obligatoirement être refait à chaque fois ------
Dim Bout As MSForms.CommandButton
Dim Obj As OLEObject
    Set MesBoutons = Nothing
    Set MesBoutons = New Collection
    'boucle sur les objets de la Feuil1
    For Each Obj In Sheets("Feuil1").OLEObjects
        'verifie s'il s'agit d'un bouton
        If TypeOf Obj.Object Is MSForms.CommandButton Then
        'Ajoute le bouton dans la collection.
        'Sa clé devient la valeur des 2 dernier chiffres de son nom
            MesBoutons.Add Obj.Object, CStr(Val(Right(Obj.Name, 2)))
        End If
    Next Obj
'--------------------------------------------------------------------
    For i = 7 To 33
        'Suite à un bug d'excel, obligé de passer par une variable objet supplémentaire.
        'Le .visible ne fonctionne pas avec la collection
        'alors que toutes les autre propriétés fonctionne.
        Set Bout = MesBoutons(CStr(i - 6))
    If Sheets("Feuil1").Cells(i, 3).Value <> "" Then
        Bout.Caption = Cells(i, 3).Value
        Bout.Visible = True
    Else
        Bout.Visible = False
    End If
    Next i
End Sub

Adapter le nom de la feuille
A+
0
Merci à tous les deux.

Ca fonctionne impeccable.

Encore merci.

Cdl.
0