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
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2022
    Messages : 4
    Par défaut Erreur 9 - L'indice n'appartient pas à la sélection
    Bonjour à tous,

    Je vous sollicite car j'aurais besoin de votre aide concernant cette problématique svp

    Cette ligne dans mon code me pose soucis. Elle me donne l'erreur 9:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If Workbooks(Sheets("Paramètres").Range("M2").Value).IsAddin = False Then
     
            Workbooks(Sheets("Paramètres").Range("M2").Value).IsAddin = True
    Voici le code complet:

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
       Dim aa As Byte
     
    Dim Nom As String
     
    For aa = 0 To 9
     
    Nom = Sheets("Paramètres").Range("K2").Value
     
    On Error Resume Next
     
    Application.ActivePrinter = Nom
     
    If ActivePrinter = Nom Then Exit For
     
    Next
     
        Application.ActivePrinter = Nom
     
        Sheets("Saisie").Select
     
        Application.CommandBars("cell").Enabled = True
     
        Application.CommandBars("Ply").Enabled = True
     
        Application.CommandBars("Visual Basic").Enabled = True
     
        Application.CommandBars("Macro").Enabled = True
     
        Application.EnableEvents = True
     
        On Error Resume Next
     
        If Workbooks(Sheets("Paramètres").Range("M2").Value).IsAddin = False Then
     
            Workbooks(Sheets("Paramètres").Range("M2").Value).IsAddin = True
     
        End If
     
        Workbooks(Sheets("Paramètres").Range("M2").Value).Close savechanges:=True
     
        On Error GoTo 0
     
        If ThisWorkbook.ReadOnly Then
     
            ThisWorkbook.Close savechanges:=False
     
        Else
     
            ActiveWorkbook.Close savechanges:=True
     
        End If
     
    Application.StatusBar = ""
     
    Sheets("Utilisateurs").Visible = xlSheetVeryHidden
     
    End Sub

    Voici ce que j'ai commencé à faire mais un objet est requis et je ne comprends pas tellement ce qu'il manque...

    Définir le Workbook comme variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim WbEncours As String
    Puis, il faut lui dire sur quoi cette variable va être fixer:

    Il me manque que le "If", je ne sais pas comment l'incrémenter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set WbEncours=(Sheets("Paramètres").Range("M2").Value)
    With WbEncours
    If WbEncours.IsAddin=False Then
    WbEncours.IsAddin=True
    End With
    Merci d'avance pour votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    pour commencer, le type de donnée pour un classeur est le Workbook, pas un string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim WbEncours As Workbook
    Ensuite, le fait d'avoir une erreur 9 signifie que l'objet sur lequel tu tentes de pointer n'est pas ouvert. Peux tu faire une verification du nom auquel tu as l'erreur pour constater si c'est bien le cas ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2022
    Messages : 4
    Par défaut
    Bonjour Jean-Philippe,

    Merci pour votre retour

    Je me doutais bien que ma variable n'était pas bonne. Je viens de la modifier

    Ensuite pour la 2ème partie, si c'est de la feuille Paramètres que vous parlez, elle est bien ouverte. De même que la désignation du fichier qui se trouve en M2.
    Comme vous pouvez le voir, j'ai déclaré le fichier en M2 en macro complémentaire, j'ai donc mis "False" et le fichier s'ouvre bien avec le message d'erreur
    Mon but est de remplacer l'ancien fichier qui y était par le nouveau. Et ce code, ne me laisse pas

    Merci encore pour votre aide

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    OK, cool pour la premiere partie.

    Pour la seconde, quelle ligne exactement pose ton erreur 9 stp ?

    Le libellé du classeur est-il exactement écrit (pas d'espace en trop à la fin par exemple ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2022
    Messages : 4
    Par défaut
    Voici la ligne qui pose problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Workbooks(Sheets("Paramètres").Range("M2").Value).IsAddin = False Then
    Je pense que le soucis vient de la méthode IsAddin, je m'explique. Pour l'ancien fichier, il n'y a aucun soucis parce que je pense qu'il l'a gardé en mémoire et donc logiquement il n'acceptera que ce fichier et aucun autre, non?

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2022
    Messages : 4
    Par défaut
    Non, pas de problème d'espace ou autre sinon, le fichier qui se trouve en M2 n'aurait pas pu s'ouvrir

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