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

Access Discussion :

[Import Excel] Bug à l'import : perte d'entête


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 65
    Points
    65
    Par défaut [Import Excel] Bug à l'import : perte d'entête
    Bonjour

    J'ai 1 fichier excel dont j'importe 3 onglets comme suit avec un code VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For i = 1 To 3
        Select Case i
          Case 1: str_Table = "Onglet1"
          Case 2: str_Table = "Onglet2"
          Case 3: str_Table = "Onglet3"
        End Select
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, str_Table, NomFichier, True, str_Table
      Next i
    Les 2 premiers onglets ne posent aucun problème... mais le troisième... quelle misère !!! il ne m'importe pas les entêtes ou plutot les entêtes de ma table sont les données de la première ligne... tout comme si j'avais mis "false" dans l'avant-dernier arg' de TransferSpreadSheet

    Qqn a t'il une parade contre ce qui semblerait être un bug ???

    PS: un pansement serait d'insèrer avec "false" pour les 3 puis de nommer moi-même les entêtes de colonne dans mon code VBA mais je ne sais pas comment faire !

    a++ et merci

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Si cela marche pour 2 onglets ça doit marcher pour tous...
    En cas d'échec, il se peut qu'il y ait un problème de conformité de nom de colonne (Espace par exemple)...

    Si tu veux mettre True pour les 2 premier et False pour le 3ème, tu peux faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For I = 1 To 3
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
    "Onglet" & Trim(Str(I)), NomFichier, (I<>3), str_Table
    Next
    Mais bon, examine plutôt tes colonnes et essaye de transférer manuellement ta table... Access devrait de donner un message d'erreur conséquent...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 65
    Points
    65
    Par défaut
    Ce qui est extrement étrange est que l'intégration à la main ne pose aucun prob....

    quand je fais transferspeadsheet avec le paramètre "false", j'ai les entetes qui sont F1, F2...
    quand je fais transferspeadsheet avec le paramètre "true", j'ai les entetes qui sont ma première ligne de données (ligne 2 du fichier excel)

    Je suppute que le prob vient de excel qui fait croire que la première ligne du fichier est en fait la seconde...

    des idées ???

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    C'est un problème connu mais dont la source peut provenir de différentes pistes.
    Est-ce que NomFichier possède des espaces dans sa spécification ?
    Essaye sans...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 65
    Points
    65
    Par défaut
    et bien... en mettant à la fin de ma ligne du TransferSpreadSheet, ca marche mieux... mais c'est pas encore la folie... y'a un tas d'espace blanc qui est importé sur les 2 onglets qui marchaient bien...

    sinon, j'ai remarqué que le problème vient en fait de l'excel : le mec qui a généré le fichier a nommé des "zones" (genre comme des variables mais sur plusieurs cases) au titre des onglets... quel boulet !!!seul soucis, je ne peux pas modifier le formalisme excel d'entrée!!!


    avez vous une "solution ultime" ? merci !!!

  6. #6
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Le nom des zones porte le nom des onglets ?
    Comme ceci par exemple :
    ou ceci
    Si oui, il n'y a pas de boulet Ou en tout cas, ce n'est pas lui...

    Si tu pars d'access et que ton classeur est immuable alors il faut biaiser :
    Tu créésun nouveau classeur dans l'instance en cours dans laquelle via VBA OLE, tu copies ce qui t'intéresse, dûment nommé au niveau des colonnes après quoi tu effectues ton transfert après avoir enregistré ce classeur puis détruit une fois terminé...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 65
    Points
    65
    Par défaut
    je pense quand meme qu'il y a boulet car le mec a :

    -sélectionné les 200 lignes de 2 à 201,
    -cliqué dans la case blanche en haut à gauche (où l'on voit, "A1", "A2"...)
    -nommé cette sélection "onglet1" ou "onglet2" suivant le cas...

    donc quand tu fais dans TransferSpreadSheet un param "onglet1" il prend les lignes 2 à 201

    en fait ca marche comme si il avait créé un objet contenant ces lignes...

    alors un tip's ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/06/2008, 09h01
  2. [VBA-Excel] Bug dans Import de boite de dialogue incompréhensible
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/07/2007, 17h15
  3. Bug avec l'assistant d'importation: Excel--> Access
    Par Tatoine dans le forum Access
    Réponses: 4
    Dernier message: 30/06/2006, 10h07
  4. import Excel --> Stringgrid de Delphi
    Par Homer dans le forum Langage
    Réponses: 2
    Dernier message: 16/06/2004, 12h53

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