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 d'Exécution 9' : L'indice n'appartient pas à la selection


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Erreur d'Exécution 9' : L'indice n'appartient pas à la selection
    Bonjour à tous,

    Je me permets de solliciter votre aide sur un point que je n'arrive pas à résoudre.
    On a migré sur Office 2010 au bureau et depuis j'ai un code vba sur une base de donnée access qui ne fonctionne plus alors quele code fonctionnait très bien sur la version 2007 d'Access.
    Le code en question me permet de transférer le résultat d'une requête sur excel.

    Le message d'erreur est le suivant: Erreur d'Exécution 9' : L'indice n'appartient pas à la selection
    Or, j'ai bien coché les bonnes références nécessaire, soit : Microsoft Excel (Office et Access) 14.0 Object Library & Microsoft DAO 3.6 Object. Et je répète, le code fonctionnait très bien sur Access 2007. Donc je comprends vraiment pas.

    J'ai tenté plein de choses mais rien n'y fait. Voici mon code d'origine; c'est la ligne:

    "Set XLWSht = XLCreateWkb.Worksheets("Sheets1")" qui génère cette erreur.


    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
    Public Function SendTQ2Excel(strQName As String, Optional strSheetName As String)
     
    Dim qdf As DAO.QueryDef
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    Dim fld As DAO.Field
    Dim XLWSht As Object
    Dim XlApp As Object
    Dim XLCreateWkb As Object
    Dim XLActiveWkb As Object
     
    Set dbs = CurrentDb()
    Set rst = dbs.OpenRecordset(strQName)
    Set XlApp = CreateObject("Excel.Application")
    Set XLCreateWkb = XlApp.Workbooks.Add
     
    Set XLWSht = XLCreateWkb.Worksheets("Sheets1")
     
    XLWSht.Activate
    XlApp.Visible = True
    Quelqu'un a t-il une idée?

    merci d'avance

    Flora

  2. #2
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Quand tu fais CreateObject("Excel.Application"), Excel fabrique une feuille de travail avec un nom par défaut. J'imagine qu'avec Office 2007, il s'appelait Sheets1. Avec Office 2010, ce nom a sans doute changé.

    Quand ensuite tu fais référence à Worksheets("Sheets1"), ce nom ayant changé, il te dit que cette feuille de travail n'existe pas.

    Pour solutionner ton problème, soit tu vas dans Excel, tu regardes cette nouvelle façon de nommer et tu la reportes, soit tu fais direectement référence à ta feuille de travail par l'index Worksheets(0) (ou Worksheets(1) je ne sais plus).

  3. #3
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Là on est plutôt dans du VBA Excel, donc pas du tout le bon forum.

    L'Excel est peut-être en version Française maintenant. Ce qui expliquerait pourquoi cela ne fonctionne plus.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  4. #4
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    L'Excel est peut-être en version Française maintenant. Ce qui expliquerait pourquoi cela ne fonctionne plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Set XlApp = CreateObject("Excel.Application")
        Set XLCreateWkb = XlApp.Workbooks.Add
        Set XLWSht = XLCreateWkb.Worksheets(1)
        debug.print XLWSht.Name
    Feuil1

  5. #5
    Invité
    Invité(e)

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Je ne vois pas ce que ce lien (tout seul) peut apporter à cette discussion. Je pense que tu n'as pas saisie réellement le problème à moins que tu te sois trompé de fil.

    Idem pour Numem :
    Citation/code/citation... si tu te comprends c'est déjà une bonne chose.

    Je sais qu'il fait beau (en tout cas ici) et qu'on aimerait tous être à ailleurs... D'ailleurs j'y vais.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Invité
    Invité(e)
    Par défaut
    bonjour,
    non c'est exactement la solution à son problème

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    bonjour,
    non c'est exactement la solution à son problème
    Peux-tu être plus précis ? Parce que ton lien est assez obscur.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Invité
    Invité(e)
    Par défaut
    Son programme selon lui, fonctionnait parfaitement.
    Hors les bibliothèques VB sont référencées dans le projet vb, notamment celles par défaut visual basic for applications...
    Autre part, un Windows 64 Bits dispose de 2 répertoires programme (program files inconnu).
    il y a conflits.
    Images attachées Images attachées  

  10. #10
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Relisez la question, SVP.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set XLWSht = XLCreateWkb.Worksheets("Sheets1") ' qui génère cette erreur.
    J'ai résolu la question à ma première réponse. Mon deuxième post le prouve et mentionne incidemment que l'hypothèse de la version française est juste. Il fallait juste faire référence à l'espace de travail par son indice !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set XLWSht = XLCreateWkb.Worksheets(1)
    Je ne vois pas l'intérêt de chercher midi à quatorze heures !

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    @rdurupt : Vu sous cet angle effectivement tu dois avoir raison... quelque part.

    @mumen : Je pencherais également pour ton hypothèse, par contre ton 2ème post prouve simplement que le nom de la première feuille renvoyé par le debug.print, SUR TON POSTE, comme sur tous les postes dotés d'un Office francophone renvoi "Feuil1".
    Inutile de faire un debug.print pour ça, Flora n'a qu'à ouvrir un nouveau classeur Excel et elle verra le nom de la 1ère feuille.

    Wait and see.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  12. #12
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour à tous,

    Désolée de ma réponse trèèèèèèèès tardive!
    Merci d'avoir pris le temps de répondre à ma question!

    Donc j'ai appliqué la solution suivante qui était proposée par mumen et ça fonctionne parfaitement!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set XLWSht = XLCreateWkb.Worksheets(1)
    Encore merci de m'avoir aidé et bon weekend!

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 24/08/2015, 18h52
  2. Erreur d'exécution '9': L'indice n'appartient pas à la sélection
    Par Tho69 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/08/2013, 09h12
  3. Réponses: 13
    Dernier message: 27/04/2012, 10h57
  4. erreur d'exécution 9, l'indice n'appartient pas à la sélection
    Par Quentin15 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/06/2011, 17h34
  5. [XL-2007] Erreur d'exécution '9' : l'indice n'appartient pas à la sélection
    Par Akhane dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/02/2011, 21h04

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