Bonjour
C'est bien cette ligne
Pour la version je n'y crois pas (Mais bon je ne connais pas tout)
Reste plus qu'a attendre que quelqu'un teste ce fichier et qui dise ce qu'il constate
Un autre test
Rajoutes la ligne surlignée dans la macro et notes les noms
Sub AffecteMacro()
Dim Ws As Worksheet
Dim Sh As Shape
For Each Ws In Sheets ' Pour chaque feuille
For Each Sh In Ws.Shapes ' Pour chaque forme dans la feuille
MsgBox Sh.Name
If UCase(Left(Sh.Name, 12)) = "RIGHT ARROW " Then ' Si le début du nom =
Sh.OnAction = "Avancer_Cliquer" ' On lui affecte cette macro
ElseIf UCase(Left(Sh.Name, 11)) = "LEFT ARROW " Then ' Si le début du nom =
Sh.OnAction = "Reculer_Cliquer" ' On lui affecte cette macro
End If
Next Sh ' Forme (shape) suivante
Next Ws ' Feuille suivante
End Sub
Edit
Je viens de tester sur XL 2003 et j'ai les noms des formes en Français
Je n'y comprends rien, j'ai bien une version 2010 acheté en France
Donc si tu as les noms en Français toi aussi il faut modifier la macro
Sub AffecteMacro()
Dim Ws As Worksheet
Dim Sh As Shape
For Each Ws In Sheets ' Pour chaque feuille
For Each Sh In Ws.Shapes ' Pour chaque forme dans la feuille
If UCase(Left(Sh.Name, 14)) = UCase("Flèche droite ") Then ' Si le début du nom =
Sh.OnAction = "Avancer_Cliquer" ' On lui affecte cette macro
ElseIf UCase(Left(Sh.Name, 14)) = UCase("Flèche gauche ") Then ' Si le début du nom =
Sh.OnAction = "Reculer_Cliquer" ' On lui affecte cette macro
End If
Next Sh ' Forme (shape) suivante
Next Ws ' Feuille suivante
End Sub