IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Erreur "L'indice n'appartient pas à la sélection" dans le cadre d'une macro de type tirage au sort [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Erreur "L'indice n'appartient pas à la sélection" dans le cadre d'une macro de type tirage au sort
    Bonjour,

    Je réalise actuellement un fichier Excel permettant d'automatiser un planning de cours pour une association sportive.

    J'ai sur une même feuille un tableau indiquant les professeurs en activités et leurs disponibilités sur 13 créneaux horaires pour chacun des jours de la semaine et parallèlement un planning que je cherche à remplir en sélectionnant pour chaque créneau horaire un professeur disponible sur ce créneau.

    J'ai donc écrit le code suivant sous VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub Macroaffectation()
     
        If Cells(76, 3) <> "Pas de cours" Then
     
    Dim t(6 To 55)
    Dim professeur As String
    j = 0
    For i = 6 To 55
        If Cells(i, 31) = "Oui" Then
            j = j + 1
            t(j) = Cells(i, 2)
        End If
        Next i
    Randomize
    professeur = t(Int(j * Rnd) + 1)
    Cells(76, 3).Value = professeur
     
    End If
     
    End Sub
    Mon idée est de tout d'abord vérifier s'il y a bien cours sur le créneau horaire choisi. Si c'est le cas, je regarde dans la colonne 31 qui correspond à mon premier créneau horaire, quelles sont les lignes où l'on a un oui c'est à dire les lignes où le professeur est disponible et répond aux différents critères (niveau...) pour assurer le cours. Ma variable t(j) me permet de récupérer le nom du professeur en colonne 2.
    Enfin je sélectionne un professeur au hasard que j'affecte au créneau horaire que j'ai initialement choisi.

    Lorsque je lance la macro j'ai pour erreur "L'indice n'appartient pas à la sélection" alors même que ma macro est affectée à la feuille sur laquelle j'ai toutes ces données.

    Sauriez-vous d'où peut provenir le problème ?

    Je vous remercie d'avance pour votre aide et vous souhaite un bon dimanche !

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Bonjour,

    ce message indique un index hors bornes, tout dépend donc de la ligne déclenchant l'erreur …

    Suivre le code en mode pas à pas via la touche F8 tout en vérifiant le contenu des variables dans la fenêtre Variables locales
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonjour,

    Utiliser un objet Cells sans préciser la feuille concernée c'est aller vers les ennuis un jour ou l'autre ......


    sinon tu as oublié de nous dire sur qu'elle ligne à lieu l'erreur ... je dirais en ligne 11 ou tu essais d’accéder à t(1) ...

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut





    Exact ! Erreur de conception, la variable j ne devant pas être initialisée à zéro …


    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour Marc-L et bbil,

    Merci pour vos réponses. L'erreur a lieu lors du passage de la ligne t(j) = Cells(i,2) à la ligne End If.

    Donc si je comprends bien, il me faut supprimer la ligne j = 0 ?

    Merci beaucoup pour votre aide.

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    non pas forcément ...

    il te faut réfléchir à pourquoi tu as déclaré que ton tableau t .. pouvait avoir les index 6 à 55

    et utiliser un index qui soit dans cette plage , ou modifier la plage ...

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    bbil, merci pour ta réponse.

    Le problème venait bien de là, mon index devant aller de 1 à 50 et pas de 6 à 55.

    Encore merci à vous deux et bonne soirée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Erreur 9 l'indice n'appartient pas la sélection
    Par Ardiden31 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/04/2015, 15h42
  2. [XL-2010] Erreur 9 l'indice n'appartient pas la sélection
    Par Ardiden31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/04/2015, 15h26
  3. [XL-2010] erreur '9' l'indice n'appartient pas à la sélection
    Par jad73 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/03/2013, 23h47
  4. [XL-2007] Erreur 9 l'indice n'appartient pas à la sélection
    Par stardeus dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/02/2013, 15h29
  5. [XL-2010] Erreur 9 l'indice n'appartient pas à la sélection
    Par PATDRO dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 13/08/2012, 23h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo