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

Résolu
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.

3 réponses

  1. 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
    1. Contributeur
      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
      1. Merci à tous les deux.

        Ca fonctionne impeccable.

        Encore merci.

        Cdl.
        0