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 :

Import Classeur Excel : problème avec Champ d'abord numériques puis Alpha. [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut Import Classeur Excel : problème avec Champ d'abord numériques puis Alpha.
    Bonjour,

    j'utilise le code suivant pour importer une table Excel dans Access.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, From_Table, Document, True, From_Range
    Cela fonctionne presque, mais donne des erreurs d'importation pour les champs qui sont dans le fichier excel d'abord numériques puis parfois un contenu Alphanumérique.

    Exemple :

    Le département 613 est importé, mais quand on arrive à '613/8', il y a une erreur loggée et le champ est ignoré, ce que je ne veux pas.

    Est-il possible de forcer l'import en Alpha pour certains champs ?
    En insérant une première de données fictives avec des champs Alpha où je veux le forcer où bien il existe un moyen propre ?


    (NB : En triant je n'arriverai pas car il y a plusieurs colonnes concernées et pas toujours en même temps).
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  2. #2
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Voilà,

    pour ceux que cela intéresse, j'ai fait comme suit (accrochez-vous).

    1) dans Access, je stocke pour cet import un string contenant les noms des colonnes qu'il faut forcer en alphanumérique avant l'import, variable Importing_File_Force_Fields, le format est col/col/col etc.

    2) Avant import, j'effectue via excel un reformattage des données en passant entre autres comme paramètre, mon string Importing_File_Force_Fields contenant les noms de colonens à forcer.

    Un court extrait de ce script
    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
    Sub Gmain_Import_Plan_Formation_Before(Document As String, Excel_Workbook As String, Excel_Script_File As String, specific As Variant)
    
    '...
    Dim Xls_Importing_File_Force_Fields  As String
    Dim Tforce()    As String       'Rows to force to type Alpha
    '..
        Xls_Importing_File_Force_Fields = specific(13)
            Tforce = Split(Xls_Importing_File_Force_Fields, "/")
    
    '....
    '12) Insert Dummy line at the beginning for Alphanumeric convertion issue in Import_excel
        Mysh.Rows("2:2").Copy
        Mysh.Rows("2:2").Insert Shift:=xlDown
        Mysh.Range("A2") = "$$$dummy"
    '13) Flag
            For off = 0 To UBound(Tforce)
                Mysh.Range(Tforce(off) & "2") = "$$$dummy"
            Next off
       End With
    Ensuite, après import, il n'y a plus qu'a supprimer l'enregistrement $$$dummy dans la table.

    Marche nickeL.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Points : 383
    Points
    383
    Par défaut Import Excel ?
    Bonjour,
    Je n'ai peut-être pas tout compris, mais voici le test que j'ai fait :

    J'ai créé un excel (2003) nommé test.xls avec 2 colonnes :

    A...........................................B
    00123...................................123
    00124..................................125/08
    12.......................................012-15

    La col1 (A) est définie format Texte, la col2 (B) est au format "standart" (donc je n'y ai pas touché), je n'ai pas mis de titre de colonnes.

    J'importe avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acImport, 8, "Table1", "test.xls", False, ""
    J'obtiens une table Access avec les deux rubriques au format texte, sans erreur d'importation (sous Access 2003), reproduisant exactement le contenu initial de l'excel.

    Michel

  4. #4
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour Michel,

    Si tu as très bien compris, mais je crois me souvenir d'avoir un jour vu dans un post sur même site que le test de numéricité se fait sur les quelques premiers enregistrements, mais je ne sais plus combien

    Mes données alpha sont très loin, au delà de 100 lignes pour les plus proches et au delà de 700 pour certaines colonnes.

    Le fichier d'erreur d'importation disait "Conversion Error", puis le nom du champ, puis l'occurence de la ligne.
    J'avais une centaine d'erreurs sur 3 champs au total.
    Je n'ai plus aucune erreur.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

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

Discussions similaires

  1. Excel : problème avec la saisie d'heure
    Par an_merle dans le forum Excel
    Réponses: 1
    Dernier message: 21/02/2006, 22h26
  2. [VB Excel] Problème avec le nom automatique des TCD
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/12/2005, 13h30
  3. Réponses: 1
    Dernier message: 01/11/2005, 12h04
  4. PB importation classeur excel sous access 2003
    Par techinfo37 dans le forum Access
    Réponses: 6
    Dernier message: 04/10/2005, 20h41
  5. [Excel] Problème avec l'accès aux feuilles et aux cellules
    Par bl00df0x dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 30/09/2005, 14h21

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