Enregistrement de macro

ksandre

XLDnaute Nouveau
Bonjour à tous

lorsque je lance un enregistrement de macro je me retrouve avec des lignes de code, qui me semble ne pas servir pour l'action en question et qui en plus crée un bug.
Donc je voulais avoir vos lumières sur la question.

Voici un exemple : j'enregistre le fait de cliquer sur un bouton et aller sur une feuille en particulier .
lorsque je vais sur l'editeur de vba voilà ce que je trouve :

Sub IndexRetour2()
'
' IndexRetour2 Macro
'

'
ActiveSheet.Shapes("Button 8").Select
Selection.Characters.Text = "Bouton 8"
With Selection.Characters(Start:=1, Length:=8).Font
.Name = "Calibri"
.FontStyle = "Normal"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = 2
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Sheets("INDEx").Select
End Sub

et donc toute la partie qui va de "With Selection.Characters" à " .ThemeFont = xlThemeFontNone
End With " provoque une erreur .
et si je l'enlève cela fonctionne correctement

Avez vous une explication?

d'avance merci
Ksandre
 

Papou-net

XLDnaute Barbatruc
Re : Enregistrement de macro

Bonjour ksandre,

Excel enregistre les macros en spécifiant tous les paramètres des instructions utilisées. Celles qui ne sont pas modifiées lors de l'enregistrement sont sur le réglage par défaut, elles peuvent donc être effacées sans problème. La seule utilité à la lecture de ce code système est que l'on peut connaître toutes les valeurs modifiables des instructions. Par contre, cela n'explique pas la raison pour laquelle apparaît une erreur dans ton code, mais tu peux vérifier à quel endroit se produit le bug en exécutant la macro au pas-à-pas.

Espérant t'avoir aidé.

Cordialement.

Edit : bonjour Pierrot, ta position se défend également.
 

ksandre

XLDnaute Nouveau
Re : Enregistrement de macro

merci pour l'explication papou-net
en fait l'erreur se produit sur la ligne ".ThemeColor = 2"
merci pierrot pour le tuyau ;p c'est ce que je fais du coup il me reste alors :
Sub IndexRetour2()
'
' IndexRetour2 Macro
'

'
ActiveSheet.Shapes("Button 8").Select
Sheets("INDEx").Select
End Sub

en tout cas un grand merci à tous les 2
 

ksandre

XLDnaute Nouveau
Re : Enregistrement de macro

et encore un mystère sur une seule feuille du classeur la macro fait une erreur sur la ligne :
ActiveSheet.Shapes("Button 8").Select

du coup je l'ai supprimé et ça marche .... alors pourquoi la même macro ne fonctionne pas pareille sur toutes les feuilles?
 

Papou-net

XLDnaute Barbatruc
Re : Enregistrement de macro

trop fort tu réponds avant que je pose la question !!!! effectivement apparemment ça ne sert à rien la macro fonctionne sans cette ligne

Re : Pierrot, ksandre,

Effectivement, ça marche sans cette ligne.

Je me suis simplement attaché à répondre à une question précise concernant l'enregistrement de macros, sans décortiquer le code dans ses détails. Ce n'est pas toujours simple quand on n'a pas de fichier sous les yeux.

A +

Cordialement.
 

ksandre

XLDnaute Nouveau
Re : Enregistrement de macro

Re : Pierrot, ksandre,

Effectivement, ça marche sans cette ligne.

Je me suis simplement attaché à répondre à une question précise concernant l'enregistrement de macros, sans décortiquer le code dans ses détails. Ce n'est pas toujours simple quand on n'a pas de fichier sous les yeux.

A +

Cordialement.
en tout cas tu m'as très bien répondu .... c'est clair precis et exactement ce que je voulais savoir
pour le fait que je n'ai pas mis de fichier je pensais que cela n'était pas nécessaire avec l'explication et les lignes de code.