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 :

Bug Excel vers Access


Sujet :

Access

  1. #1
    Membre régulier

    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 81
    Points
    81
    Par défaut Bug Excel vers Access
    Bonjour à tous !
    J'ai un prb pas banal !

    Voilà, je fais un import d'un fichier CSV vers Access en pilotant Excel à partir d'Access.
    Je m'explique.
    Pour garantir les données, je transforme toutes mes cellules en texte (sinon gros problème lors de l'imporation) en tranformant mon fichier Excel en CSV séparateur point-virgule.

    Pour cela j'utilise ce code :

    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
    '---------------------------------------------------------------------------------------
    ' Description : Exporte un fichier Excel vers CSV à partir d'Access
    ' Utilisation :
    '               strRepertoireSave : répertoire de destination du fichier CSV
    '               strFichierExcel   : fichier Excel
    '               strFeuilleOrigine : Nom de la feuille du classeur
    '               strFichierCSV : Nom du fichier CSV
    '---------------------------------------------------------------------------------------
    '
    Sub ExportFeuille_test(strRepertoireSave As String, strFichierExcel As String, strFeuilleOrigine As Variant, strFichierCSV As String)
     
        Dim i As Integer
        Dim appXl As Excel.Application
     
        Set appXl = CreateObject("Excel.Application")
     
        'Pour ne pas avoir d'avertissement si le fichier est déjà créé
        appXl.DisplayAlerts = False
     
        'Affiche le fichier Excel à l'écran pour vérif visuelle
        appXl.Visible = True
     
        appXl.AskToUpdateLinks = False
        appXl.Workbooks.Open Filename:=strFichierExcel
     
        appXl.Sheets(strFeuilleOrigine).Select
     
        Debug.Print "Exportation de la feuille " & strFichierCSV & " du fichier " & strFichierExcel & " dans le fichier " & strRepertoireSave & strFichierCSV & ".xls"
     
        'Si la dernière colonne est plus loin que Z
        'Toujours inférieure à AZ
        'strPlage gérée par une requête SQL qui va chercher la configuration dans une table définie manuellement.
        strPlage = "3"  'Pour l'exemple
        Debug.Print "Plage : A:" & strPlage
     
        appXl.Sheets(strFeuilleOrigine).Columns("A:" & strPlage).Select
        appXl.Application.CutCopyMode = xlCopy
        appXl.Selection.Copy
        appXl.ActiveWindow.Close
        appXl.Workbooks.add
        appXl.ActiveSheet.Paste
        appXl.ActiveSheet.name = strFichierCSV
     
        appXl.ActiveWorkbook.SaveAs Filename:= _
            strRepertoireSave & strFichierCSV & ".xls", FileFormat:= _
            xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
            , CreateBackup:=False
        appXl.ActiveWindow.Close
        appXl.Quit
        Set appXl = Nothing
     
        Debug.Print "Exportation OK"
     
    End Sub

    Mais voilà !
    Si dans une cellule de mon fichier Excel, j'ai "8,987", j'aurais dans mon fichier CSV "8 987".
    C'est quand même pas rien comme bug ça !!
    Alors que si je fais à la main la copie de ma feuille vers un autre fichier que j'enregistre au format CSV, pas de prb.

    Est-ce que qq'un peut me dire si il a le même prb ?
    Si c'est le cas, c'est un sacré bug vous ne trouvez pas ?

    Pour info, j'ai créé le code à partir de l'enregistreur de macro dans Excel.
    Et dans ce cas, ma donnée n'est pas changée.
    Uniquement à partir d'Access.
    A mon avis, j'ai fait une fausse manip qq part, mais j'arrive pas à voir.

    Est-ce quelqu'un pourrait me dire où ?

    Merci beaucoup !!

  2. #2
    Membre habitué
    Homme Profil pro
    Ingé. Qualité Sécurité Environnement
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingé. Qualité Sécurité Environnement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 127
    Points
    127
    Par défaut
    Je pense qu'il faut regarder les systemes de separation des unités sur tes deux programmes cela peut venir du fait (a prendre au conditionnel)
    que tu en as un en européen (une vigule est pour le décimal) et l'autre en américain (une vigule pour les separateurs de milles)

  3. #3
    Membre régulier

    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 81
    Points
    81
    Par défaut
    Office dans son ensemble prends la configuration dans les Option régionales dans le panneau de config de Windows.

    Pour ma part, le séparateur décimal est la virgule.

Discussions similaires

  1. Transférer un tableau excel vers access avec VBA (bug)
    Par beegees dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/07/2007, 09h28
  2. Importer le contenu d'une cellule Excel vers Access
    Par deaqu1 dans le forum Access
    Réponses: 7
    Dernier message: 05/11/2005, 15h26
  3. Récupérer une sheets dans excel vers access sous vba
    Par odbee dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/10/2005, 00h30
  4. Problème champ après import d'excel vers access
    Par David M dans le forum Access
    Réponses: 6
    Dernier message: 16/10/2005, 11h53
  5. Réponses: 6
    Dernier message: 19/09/2005, 12h55

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