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 9 : L'indice n'appartient pas à la sélection


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Par défaut Erreur 9 : L'indice n'appartient pas à la sélection
    Bonjour, je suis débutante et je n'arrive pas à solutionner mon erreur malgré mes recherches sur le forum

    Je travaille sur deux feuilles du même fichier Excel.
    Le but est de m'assurer que de la ligne 3 à 7 de la feuille active la valeur de la cellule est "Conforme".
    Si c'est le cas alors je recherche dans la feuille "ROMA" dans la colonne 3 une cellule dont la valeur est égale à celle de la cellule(1,1) de la feuille active.
    Ensuite pour la ligne trouvée je recherche une cellule dans la feuille "ROMA" dont la valeur est égale à celle de la cellule(1,6) de la feuille active.
    Cette cellule est ensuite coloriée en vert

    Voici ma macro :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub Validation_Formulaire_PB()
     
    For i = 3 To 7
     
        If Cells(i, 5).Value = "Conforme" Then
     
            For ii = 10 To 30
     
                If Sheets("ROMA").Cells(ii, 3).Value = ActiveSheet.Cells(1, 1).Value Then
     
                    For jj = 4 To 1000
     
                        If Sheets("ROMA").Cells(ii, jj).Value = ActiveSheet.Cells(1, 6).Value Then
     
                        Sheets("ROMA").Cells(ii, jj).Interiorcolor = RGB(55, 215, 55)
     
                    Exit For
     
                        End If
     
                    Next
     
                End If
     
            Next
     
        End If
     
    Next
     
     
    End Sub
    L'erreur 9 apparait pour Sheets("ROMA").Cells(ii, jj).Value

    Je vous remercie d'avance de l'aide que vous pourrez m'apporter

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    l'erreur la plus plausible serait que cette feuille n'existe pas dans la collection des feuilles du classeur actif
    or ... ta procédure devrait donc planter plus haut car tu effectues déjà une action sur cette feuille et ça passe

    A part un problème de conception de la procédure, puisqu'on peut éviter tes boucles ii et jj en utilisant la méthode Find de l'objet Range ... je dois dire que j'ai du mal à voir le souci

    Ps : utilises les balises de code pour mettre en forme ta procédure, c'est beaucoup plus lisible
    et prend l'habitude de préciser la variable dans ta sortie de boucle For/Next, on s'y retrouve toujours mieux

    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
    Sub Validation_Formulaire_PB()
        For i = 3 To 7
            If Cells(i, 5).Value = "Conforme" Then
                For ii = 10 To 30
                    If Sheets("ROMA").Cells(ii, 3).Value = ActiveSheet.Cells(1, 1).Value Then
                        For jj = 4 To 1000
                            If Sheets("ROMA").Cells(ii, jj).Value = ActiveSheet.Cells(1, 6).Value Then
                                Sheets("ROMA").Cells(ii, jj).Interiorcolor = RGB(55, 215, 55)
                                Exit For
                            End If
                        Next jj
                    End If
                Next ii
            End If
        Next i
    End Sub
    Je te conseille, quand la procédure plante, d'inspecter les valeurs de tes variables i | ii | jj pour approfondir le problème

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Par défaut
    Merci de ta réponse joe.levrai

    Au temps pour moi l'erreur apparait des la première action sur cette feuille

    Qu'entends-tu donc par ma feuille n'existe pas dans la collection des feuilles du classeur actif ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Cette feuille existe bien ?
    Son nom exact est bien "ROMA" ?
    La procédure est bien écrite dans le classeur où tu travailles ? Sinon, le classeur contenant la feuille est bien le classeur actif lors de l’exécution ?

    Un classeur possède une Collection de feuilles, où ces dernières ont chacune une position, un Indice dans la collection (et également un Nom)
    L'erreur signifie qu'au sein de la collection que parcours ta procédure, il n'en existe aucune dont le nom est ROMA.

    Alors, il faut s'assurer que c'est la bonne collection de feuille qui est parcouru, si jamais d'autres classeurs sont ouverts.

    Pour se faire, rajoute :

    - devant chaque Cells() le nom de la feuille
    - devant chaque nom de feuille, le nom du classeur source

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("MonClasseur").Worksheets("MaFeuille").Cells()

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Par défaut
    Merci beaucoup !

    En fait il s'agissait simplement d'un espace dans le titre de la feuille que je n'avais pas vu. Erreur de débutante certainement. Désolée pour le temps perdu...

    Finalement ma macro ne donne pas le résultat souhaité.
    Existe t -il une formule pour "Si toutes les cellules d'une plage alors..."

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