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...

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
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
319
Réponses
9
Affichages
470
Réponses
14
Affichages
311

Statistiques des forums

Discussions
314 626
Messages
2 111 297
Membres
111 093
dernier inscrit
Yvounet