Etudiante en détresse ! Erreur d'exécution '9'

Résolu/Fermé
Lia_ml - Modifié le 4 févr. 2023 à 18:40
 Lia - 4 févr. 2023 à 18:31

Bonjour à tous ! 

Je suis étudiante en médecine et utilise un fichier excel comme agenda. Celui-ci contient du code et je n'ai absolument aucune idée de comment il fonctionne, ce qui ne pause aucun problème, sauf quand il y a un bug ...

Dernièrement, lorsque je veut consulter mon calendrier, excel dit qu'il y a "Erreur d'exécution '9' : l'indice n'appartient pas à la sélection. la ligne "Set ShCours = Worksheets("Cours") " est surlignée en jaune par le débogeur.

Option Explicit
Public shCours As Worksheet, shCal As Worksheet

Sub majCal()
    Dim lig1 As Long
    Dim c As Range, adr1 As String, dat As Date
    Dim i As Long

    Set shCours = Worksheets("Cours")
    Set shCal = Worksheets("Calendrier")
    
    Application.ScreenUpdating = False
    ' maj cal
    With shCal
        .[B2:ZZ150].Delete
        For lig1 = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
            i = 0
            If IsDate(shCal.Cells(lig1, 1)) Then
                dat = CDate(shCal.Cells(lig1, 1))
                With shCours.Range("B:G")
                    Set c = .Find(dat, LookIn:=xlValues)
                    If Not c Is Nothing Then
                        adr1 = c.Address
                        Do
                            i = i + 1
                            shCal.Cells(lig1, 1).Offset(, i) = shCours.Cells(c.Row, 1)
                            If c.Interior.Color <> 16777215 Then shCal.Cells(lig1, 1).Offset(, i).Interior.Color = c.Interior.Color
                            Set c = .FindNext(c)
                        Loop While c.Address <> adr1
                    End If
                End With
            End If
        Next lig1
    End With
End Sub



J'espère que vous pourrez m'aider ! 

Merci par avance, 

Lia
Windows / Edge 109.0.1518.55

3 réponses

thev Messages postés 1874 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 1 octobre 2024 688
4 févr. 2023 à 18:06

Hier je l'ai renommé "Cours D1", et pensant que c'est ça qui posait problème

C'est effectivement ce qui posait problème.

j'ai remis l'ancien nom mais ça n'a rien changé.

A mon avis, vous ne l'avez pas remis correctement. Vous avez peut être un espace de trop à la fin.  le nom doit être

"Cours"

et non

"Cours "

2

C'était ça, je n'avais en effet pas pensé à vérifier les espaces à cet endroit.

Merci beaucoup pour votre aide !

0
Raymond PENTIER Messages postés 58676 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 3 octobre 2024 17 203
4 févr. 2023 à 16:28

Bonjour Lia.

Je ne m'y connais pas trop en VBA.

Mais je me demande si tu n'aurais pas ajouté une ligne ou une colonne APRÈS la plage ShCours ...


1

Bonjour Raymond, 

Je n'ai pas touché au code en réalité, le bug est apparu spontanément après avoir modifié les données du tableur. C'est pour ça que je suis aussi perdue.

J'avais changé le nom de l'onglet "Cours", pour "Cours D1", pensez-vous que cela puisse être la cause de mon problème ?

Merci pour votre réponse, 

0
yclik Messages postés 3677 Date d'inscription vendredi 25 juillet 2014 Statut Membre Dernière intervention 3 octobre 2024 1 504
4 févr. 2023 à 16:30

Bonjour

La feuille Cours est elle dans le classeur ?

erreur 9

0

Oui, juste avant celle du calendrier.

Hier je l'ai renommé "Cours D1", et pensant que c'est ça qui posait problème, j'ai remis l'ancien nom mais ça n'a rien changé.

Je me suis aussi demandé si le problème pouvait venir du fait que le nombre de cours à prendre en compte devienne supérieur à 90.

Qu'en pensez-vous ?

0