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

VBA Access Discussion :

Importation fichier excel vers access


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Importation fichier excel vers access
    Bonjour,

    Je voudrais importer un fichier excel ver access mais une erreur apparait : "l'indice n'appartient pas à la sélection" .

    Quelqu'un peut m'expliquer ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Ce serait bien que nous dises comment tu importes ton fichier, avec le code si possible.

    Sinon je ne vois pas comment on pourrait te répondre.

    Starec

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    C'est une importation ponctuelle. Je passe par le menu Access "fichier ->Donné externe -> Importé..."

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Si toute tes jointure sont faites ( dans OUTILS > RELATION ) suprime les et importe ton fichier excel pour essayer.
    si ca marche ca dois etre un probleme de donnée (regarde tes clé primaire et étrangere que tu importes)

    PS : c'est juste une piste, je suis pas expert dans les importation mais j'en ai deja faites

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Une idée
    Bonjour,

    J'avais le même message que toi. Le probleme venait de mon fichier Excel qui avait trop de colonne. (J'avais des données parasites après mes données sur toute une ligne). J'ai juste nettoyé mon fichier Excel et après j'ai pu l'intégrer sans problème dans Access.

    Delphine

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 40
    Points : 55
    Points
    55
    Par défaut
    Peux tu nous en dire plus sur ces données parasites ?

    J'ai le même soucis,
    que ce soit avec un transferspreadsheet
    ou avec l'assistant d'importation...

  7. #7
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 50
    Points : 41
    Points
    41
    Par défaut Access import Excel erreur "L'indice n'appartient pas à la sélection"
    Allez, je joue les fossoyeurs pour donner une réponse à ce genre de problème

    L'erreur 9 "L'indice n'appartient pas à la sélection" apparait, à l'import d'une feuille Excel sur Access, s'il existe des données orphelines sur la feuille
    (souvent le cas quand il y a eu des insertions et/ou suppressions de colonnes)

    Donc pour éviter ce message, je vous propose soit :
    - de faire le ménage sur le fichier Excel en sélectionnant toutes les colonnes "vide" à droite des données et de faire un supprimer colonne
    (vous pouvez faire de même pour les lignes)

    ou

    - de sélectionner l'ensemble de vos données et de créer une liste nommée (Menu Insertion>Nom>Définir) par exemple vous pouvez l'appeler MesDonnees

    Enregistrez votre classeur et sur Access utilisez à nouveau l'import des données; Sur la première page de l'assistant, cochez listes nommées à la place de feuilles et vous retrouverez la liste MesDonnees...

  8. #8
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2015
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    il y a aussi une autre cause à ce genre de message.
    J'ai eu le cas pour un champ qui rentrait auparavant dans un texte court, mais au dernier import de données le champ dépassait allègrement les 255 caractères.
    En changeant le type de champ en texte long, le problème a disparu.

    Peut-être cela est aussi le cas pour les limites des types numériques.

  9. #9
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Message d'erreur "recalcitrant"
    Bonjour à tous.

    Je me décide à rebondir sur la discussion car depuis plusieurs jours, je m'arrache les cheveux sur ce problème. Je travaille sur la suite office 2010 professionnel.BH_BTS_import.xlsxformat des donnes.docx

    Je viens de commencer avec ACCESS car le volume de mes données est devenu trop important pour Excel. J'ai donc migrer tous mes rapports précédemment sur Excel dans une base de données Acccess créée à cet effet. Cela s'est passé sans le moindre souci. Le problème, c'est que je dois y ajouter des données chaque jour et, sur les 6 rapports migrés, 3 d'entre eux m'affiche obstinément l'erreur "l'indice n'appartient pas à la sélection" et donc n'importe pas les données. J'ai pourtant appliqués tous les conseils de la discussion ci-dessus :

    - j'ai néttoyé mes feuilles Excel en supprimant les lignes et colonnes autour des données (ça a marché pour un des rapports);
    - J'ai crééer des plages nommées pour l'importation (ça a marché pour un des rapports);
    - J'ai vérifier les types de variables étaient cohérents avec la longueur des données
    - j'ai meme essayé de l'importer sous format CSV mais il transforme completement les dates et il y a tellement d'erreur d'importation que c'est inutilisable.

    Mais rien à faire : ça ne marche toujours pas. un coup de main serait vraiment bienvenue. Merci d'avance!

    NB: J'ai mis en attache un échantillon du fichier et les format correspondants dans ACCESS

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 116
    Points : 100
    Points
    100
    Par défaut
    glop, glop,

    je viens d'avoir le même problème.

    J'ai donc importé dans une nouvelle table pour voir la différence avec la mienne.
    Le problème venait d'une colonne avec 0 ou 1. Elle aurait due être prise pour un type Oui / Non mais il a préféré en faire un Numérique.

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 756
    Points : 14 789
    Points
    14 789
    Par défaut
    bonjour,
    Le problème venait d'une colonne avec 0 ou 1. Elle aurait due être prise pour un type Oui / Non mais il a préféré en faire un Numérique.
    je pense que c'est un problème différent: Access utilise -1 pour la constante True. Si il trouve 0 ou 1, pour lui c'est du numérique, c'est donc normal qu'il prenne le type correspondant aux données qu'il trouve ....
    ... et de toute façon, rien n'empêche de modifier le type de données après l'importation.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Et rien n'empêche de tester un numérique comme un booléen vue que toutes valeur<>0 est true.
    Très peut de base de données comprenne le booléen.

    Byte pour sql serveur notamment !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Var=123456789
    If var=true then

  13. #13
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 336
    Points : 19 572
    Points
    19 572
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Bonsoir,

    Et rien n'empêche de tester un numérique comme un booléen vue que toutes valeur<>0 est true.
    Très peut de base de données comprenne le booléen.

    Byte pour sql serveur notamment !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Var=123456789
    If var=true then
    Intéressant !_
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  14. #14
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 756
    Points : 14 789
    Points
    14 789
    Par défaut
    Bonjour,
    Citation Envoyé par dysorthographie
    Et rien n'empêche de tester un numérique comme un booléen vue que toutes valeur<>0 est true.
    pour info, Access le fait nativement lorsqu'on change le champ numérique d'une table en Oui/Non
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    Bonjour,

    pour info, Access le fait nativement lorsqu'on change le champ numérique d'une table en Oui/Non
    Oui tu as raison mais pas besoin de change le champ en oui/non pour le tester à true !

  16. #16
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 756
    Points : 14 789
    Points
    14 789
    Par défaut
    Oui mais la solution est appropriée pour le sujet du post: une importation de données
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  17. #17
    Invité
    Invité(e)
    Par défaut
    De toutes le façon il est préférable, pour ce qui concerne Excel, de faire une requête d'ajout dans une structure de table Access via une jointure externe.

    https://mon-partage.fr/f/LoCWKVjq/

  18. #18
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 336
    Points : 19 572
    Points
    19 572
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    De toutes le façon il est préférable, pour ce qui concerne Excel, de faire une requête d'ajout dans une structure de table Access via une jointure externe.

    https://mon-partage.fr/f/LoCWKVjq/
    C'est vrai qu'au final c'est beaucoup plus simple,

    On peut commencer par exemple par un select into pour créer la structure de la table :

    ' Constitution de la chaîne SQL de la requête création de table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     sSQL = "SELECT * INTO " & nomTable & " " & _
                 "FROM [Excel 8.0;HDR=YES;DATABASE=" & chemin & "].[" & nomFeuille & "$A1:Z10000] " & _
                  "WHERE ([ID Produit]<>'');"
     
     DoCmd.SetWarnings False
     DoCmd.RunSQL sSQL ' Exécution de la requête
     DoCmd.SetWarnings True
    Pour par la suite exécuter une requête ajout sur cette table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sSQL="INSERT INTO " nomTable & " "
    "SELECT * "
    "FROM [Excel 8.0;HDR=YES;DATABASE=" & chemin & "].[" & nomFeuille & "$A1:Z10000] AS T1 " & _
    "WHERE (T1.[ID Produit]<>'');"
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL sSQL
    DoCmd.SetWarnings True
    note: nomTable, nomFeuille et chemin sont des variables mis à jour au début.

    Par contre je crois qu'il y a un souci pour les requêtes mise à jour, à vérifier...

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

Discussions similaires

  1. Importer fichier Excel vers Access
    Par info1989 dans le forum Access
    Réponses: 0
    Dernier message: 10/04/2015, 16h12
  2. Réponses: 2
    Dernier message: 01/06/2011, 12h14
  3. import fichier excel vers table access
    Par Debutant10 dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/04/2011, 17h37
  4. Importation d'un fichier excel vers access
    Par zinini dans le forum Access
    Réponses: 2
    Dernier message: 07/07/2006, 12h42

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