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 Withj'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 Subvoila donc le code au complet , merci pour tout conseil