XL 2019 Erreur exécution 9

matmac

XLDnaute Occasionnel
Bonjour,

J'avais posté à la suite d'un premier post concernant le même fichier et un autre bug (résolu depuis), mais je n'ai pas eu de réponse, je créé donc un nouveau post.
J'ai donc un bug sur le fichier joint : lorsque je lance le chrono sur la feuille "Chrono + Classement" en cliquant sur l’icône triangle, puis que j'ouvre un autre un autre fichier excel en parallèle, le chrono s'arrête et j'ai un message d'erreur "erreur d'exécution '9' l'indice n'appartient pas à la sélection". J'ai fait une capture d'écran de la boite de dialogue de débogage, avec la ligne surlignée en jaune.
Je met en pj la capture d'écran et le fichier.

Merci par avance
Mat
 

Pièces jointes

  • Capture d’écran 2021-10-20 085222.png
    Capture d’écran 2021-10-20 085222.png
    98.1 KB · Affichages: 28
  • Run&Bike OT V21.3.2.xlsm
    161.1 KB · Affichages: 5
Solution
Bonsoir Matmac, le forum

Votre commande se référe au classeur actif
Quand vous ouvrez un nouveau classeur, il devient le classeur actif, et comme il ne contient pas la feuille "chrono+classement", ça plante !
remplacez votre ligne par celle ci qui cible pour la feuille le classeur contenant la macro exécutée.

Bien cordialement, @+
VB:
ThisWorkbook.Sheets("Chrono+Classement").Range("O2").Value = Time - depart + (ThisWorkbook.Sheets("Chrono+Classement").Range("T2").Value / 1440)

ou en reprenant la macro avec un with en n'oubliant pas les points devant les range
VB:
Public Sub go_Chrono()
    'Programmation de l'évènement toutes les secondes
    temps = Now + TimeValue("00:00:01")
    Application.OnTime temps, "go_Chrono"
    With...
Bonsoir Matmac, le forum

Votre commande se référe au classeur actif
Quand vous ouvrez un nouveau classeur, il devient le classeur actif, et comme il ne contient pas la feuille "chrono+classement", ça plante !
remplacez votre ligne par celle ci qui cible pour la feuille le classeur contenant la macro exécutée.

Bien cordialement, @+
VB:
ThisWorkbook.Sheets("Chrono+Classement").Range("O2").Value = Time - depart + (ThisWorkbook.Sheets("Chrono+Classement").Range("T2").Value / 1440)

ou en reprenant la macro avec un with en n'oubliant pas les points devant les range
VB:
Public Sub go_Chrono()
    'Programmation de l'évènement toutes les secondes
    temps = Now + TimeValue("00:00:01")
    Application.OnTime temps, "go_Chrono"
    With ThisWorkbook.Sheets("Chrono+Classement")
        .Range("O2").Value = Time - depart + (.Range("T2").Value / 1440)
    End With
End Sub
 

Discussions similaires

Réponses
2
Affichages
364
Réponses
9
Affichages
509

Statistiques des forums

Discussions
315 093
Messages
2 116 123
Membres
112 666
dernier inscrit
Coco0505