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

Résolu
kocipia -  
 kocipia -
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. Paf
     
    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
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  3. kocipia
     
    Merci à tous les deux.

    Ca fonctionne impeccable.

    Encore merci.

    Cdl.
    0