Lecture de la propriété add de la classe buttons  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

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

Messagepar rocket4 » 03 Fév 2012, 02:29

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

Code: Tout sélectionner
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
rocket4
Membre fidèle
 
Messages: 468
Inscription: 30 Août 2011, 10:36
Version Excel: 2002

Re: Lecture de la propriété add de la classe buttons  Sujet résolu

Messagepar Gorfael » 03 Fév 2012, 11:46

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"
Plus le problème est moins précis, moins je peux plus aider !
Donner un poisson à l'homme affamé c'est apaiser sa faim. Lui apprendre à pécher, c'est le nourrir.
Il n'y a toujours aucun télépathe ou devin recensé sur ce site
Gorfael
Membre fidèle
 
Messages: 197
Inscription: 01 Oct 2007, 12:14
Localisation: Basse Goulaine (44)
Version Excel: informatique, lecture, aïkido

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

Messagepar rocket4 » 03 Fév 2012, 13:22

bonjour et merci pour ta réponse ,

voici l'ensemble du code :

Code: Tout sélectionner
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
rocket4
Membre fidèle
 
Messages: 468
Inscription: 30 Août 2011, 10:36
Version Excel: 2002


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot], Google Adsense [Bot] et 6 invités