Lecture de la propriété add de la classe buttons

Bonjour

je me trouve devant un petit soucis que je n'ai reussi à résoudre ayant pourtant bien recherché , je dispose d'une macro me permettant de copier des feuilles et sur ces feuilles je souhaites ajouter des boutons de formulaire

la partie de code me renvoyant une erreur est la suivante

With Workbooks("TRANSITIONxls").ActiveSheet.Buttons.Add(Range("H155:I156").Left, Range("H155:I156").Top, Range("H155:I156").Width, Range("H155:I156").Height)

       .Characters.Text = "IMPRIMER"

       .OnAction = " 'TRANSITIONxls'!IMPRESSION"
        With .Characters(Start:=1, Length:=23).Font
            .Name = "Arial"
            .FontStyle = "Normal"
            .Size = 22
            .ColorIndex = xlAutomatic
        End With
   End With

j'obtient le message d'erreur suivant : " impossible de lire la proprieté add de la classe buttons " , le classeur " TRANSITION " etant

ouvert en debut de code

auriez vous une idée sur l'origine de cette erreur , car je ne trouve pas ?

Merci pour toute réponse ou indication

Salut rocket4 et le forum

Ton code fonctionne, mais... un dépannage de macro doit toujours s'accompagner de tout le code, ainsi que de ce qu'il est supposé faire et du contexte de lancement.

Moi, il me crée un bouton "imprimer" sur la feuille active.

fait du pas-à-pas et vérifie tes variables.

A+

Edit : Activesheet est la page active d'excel au moment de l'utilisation du code, pas celle du classeur "Transistion"

bonjour et merci pour ta réponse ,

voici l'ensemble du code :

Sub transfertfret()

    Dim TRANSITION As Workbook
    Dim ws As Worksheet
    Dim xcell As Range
    Dim chemin As String
    Dim fichier As String
    Dim S As Shape
    chemin = ThisWorkbook.Path

    ' A est le classeur sur lequel je me trouve pour executer le code 

    'jouvre le classeur B :
   Workbooks.Open Filename:=chemin & "\B.xls"
   Workbooks("A.xls").Unprotect Password:="start"
   Workbooks.Open Filename:=chemin & "\TRANSITION.xls"
   Workbooks("TRANSITION.xls").Unprotect Password:="start"

    'j'effectue une comparaison entre les feuilles du classeur B et la plage b21:b100 feuille 1 du classeur A :
   For Each xcell In Workbooks("A").Sheets("Feuil1").Range("C21:C100")

        'ici "Worksheets" pour ne parcourir que les feuilles de calculs car avec "Sheets"
       'tu passe aussi sur les feuilles graphiques et là, une erreur se produira
       For Each ws In Workbooks("B").Worksheets

            If xcell = ws.Name Then

                Set TRANSITION = Workbooks("TRANSITION.xls")

               ws.Copy after:=TRANSITION.Sheets(TRANSITION.Sheets.Count)
               With Workbooks("TRANSITION.xls")
               For Each S In ActiveSheet.Shapes
               S.Delete
                Next S
                End With

             '**************************************************************************************************************************************
    With Workbooks("TRANSITION.xls").ActiveSheet.Buttons.Add(Range("H155:I156").Left, Range("H155:I156").Top, Range("H155:I156").Width, Range("H155:I156").Height)
        '.Select
       .Characters.Text = "IMPRIMER"

       .OnAction = " 'TRANSITION.xls'!IMPRESSION"
        With .Characters(Start:=1, Length:=23).Font
            .Name = "Arial"
            .FontStyle = "Normal"
            .Size = 22
            .ColorIndex = xlAutomatic
        End With
   End With
    '*************************************************************************************************************************************************
    With Workbooks("TRANSITION.xls").ActiveSheet.Buttons.Add(Range("c155:B156").Left, Range("c155:B156").Top, Range("c155:B156").Width, Range("c155:B156").Height)
        '.Select
       .Characters.Text = "QUITTER"
        .OnAction = " 'TRANSITION.xls'!QUITTER"
        With .Characters(Start:=1, Length:=7).Font
            .Name = "Arial"
            .FontStyle = "Normal"
            .Size = 20
            .ColorIndex = xlAutomatic
        End With
    End With
    '*********************************************************************************************************************************************
    With Workbooks("TRANSITION.xls").ActiveSheet.Buttons.Add(Range("E155:F156").Left, Range("E155:F156").Top, Range("E155:F156").Width, Range("E155:F156").Height)
        '.Select
       .Characters.Text = "SORTANT"
        .OnAction = " 'TRANSITION.xls'!REVENIR1"
        With .Characters(Start:=1, Length:=7).Font
            .Name = "Arial"
            .FontStyle = "Normal"
            .Size = 20
            .ColorIndex = xlAutomatic
        End With
   End With
    '**********************************************************************************************************************************************
    With Workbooks("TRANSITION.xls").ActiveSheet.Buttons.Add(Range("L155:K156").Left, Range("L155:K156").Top, Range("L155:K156").Width, Range("L155:K156").Height)
        '.Select
       .Characters.Text = "MESURE"
        .OnAction = " 'TRANSITION.xls'!evaluation"
        With .Characters(Start:=1, Length:=7).Font
            .Name = "Arial"
            .FontStyle = "Normal"
            .Size = 20
            .ColorIndex = xlAutomatic
        End With
    End With

            End If

        Next ws

    Next xcell

    'enregistre les modifs
 Workbooks("TRANSITION.xls").Protect Password:="start"

   Workbooks("TRANSITION.xls").Close True

Workbooks("B.xls").Protect Password:="start"
    Workbooks("B.xls").Close True

End Sub

voila donc le code au complet , merci pour tout conseil

Rechercher des sujets similaires à "lecture propriete add classe buttons"