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 :

Importation de plusieurs classeurs Excel dans une Table d'Access [AC-2010]


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Importation de plusieurs classeurs Excel dans une Table d'Access
    Bonjour à tous,

    Pour vous exposer le problème de manière simple:

    J'ai une série de 20 à 30 classeurs Excel ayant des noms plus ou moins variable de type: Lieu_date_date.xls tous dans le même répertoire.
    Ces classeurs ne possèdent qu'un seul Onglet nommé "A" avec moins de 10 colonnes sur un nombre de lignes plus ou moins important dont la 1ère ligne correspond à l'entête des colonnes.
    Ces classeurs sont tous identique au niveau de leurs structures.
    Le nom du fichier excel n'a aucune importance pour moi (la première colonne correspond au "Lieu").

    Le but de la manipulation est de rassembler les informations au même endroit de manière automatique pour créer divers requêtes&Cie.

    Plusieurs méthodes sont possibles:
    -Lier tous les classeurs à ma base.
    -Importer toutes les données des différents fichiers à la suite dans une même table de ma base.

    Pour une question de simplicité d'utilisation, je pense mettre cette base dans le même répertoire que les fichiers "sources".
    Je suis complètement novice sur Access et j'ai donc de grandes difficultés avec ce qui est VBA et macros "compliqué" par contre je n'ai aucun problème (pour l'instant ) pour exploiter les données, mais je dois penser à mes collègues, donc rendre les choses simples d'utilisations.

    Je suis donc ouvert à toute proposition simple
    Pour ma culture, je serais intéressé par les 2 méthodes (ça peut toujours servir ).

    Merci d'avance pour toute réponse,
    Cordialement,
    Fred

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Bonjour et bienvenue chez nous,

    Regarde ce tutoriel : http://claudeleloup.developpez.com/t...rface-process/


    et cet autre que je suis occupé à rédiger : http://claudeleloup.developpez.com/t...hes-laitieres/ (Attention, je complète et corrige au fur et à mesure.)


    tu y trouveras des exemples :

    - pour accéder à tous les fichiers contenus dans un répertoire ;
    - pour les importer ou les lier dans Access.

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Un grand merci pour ta réponse

    Je regarde tout ça dans la journée, et je donnerai mon retour sur le sujet.

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Alors petit rapport sur mes tests de ce matin,

    J'ai utilisé une variante des infos concernant ImportCSV() de ce tuto:
    Citation Envoyé par ClaudeLELOUP Voir le message
    de la manière suivante:

    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
    Option Compare Database
    Option Explicit
    Public Sub ImportXLS(Racine As String)
        On Error GoTo GestionErreurs
        Dim FSO As Scripting.FileSystemObject
        Dim sRep As Scripting.Folder
        Dim sSubRep As Scripting.Folder
        Dim sFichier As Scripting.File
        Set FSO = New Scripting.FileSystemObject
        Set sRep = FSO.GetFolder(Racine)
        'Boucle sur les fichiers
        For Each sFichier In sRep.Files
          'Importer
           DoCmd.TransferSpreadsheet , acSpreadsheetTypeExcel8, "Table1", sFichier, True
        Next sFichier
        'Récursivité pour les sous-répertoires
        For Each sSubRep In sRep.SubFolders
            ImportXLS sSubRep.Path
        Next sSubRep
        'Libérer
        Set sRep = Nothing
        Set FSO = Nothing
        Exit Sub
    GestionErreurs:
        Select Case Err.Number
          Case 76
             MsgBox "Le répertoire " & Racine & " est absent !", vbCritical
          Case Else
            MsgBox "Erreur N° " & Err.Number & " " & Err.Description & vbLf _
                      & "dans ImportXLS().", vbCritical
        End Select
     
    End Sub
    Je suppose que toutes les données sont remontées mais j'ai un petit message d'erreur:
    Erreur N°3274 La table externe n'est pas dans le format attendu dans ImportXLS()

    Je pense que access devait attendre que du texte mais je ne suis pas sur...
    Question bonus: est ce que l'erreur bloque le "processus"? et donc l'export n'est pas fini?

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Je pense que access devait attendre que du texte mais je ne suis pas sur...
    Question bonus: est ce que l'erreur bloque le "processus"? et donc l'export n'est pas fini?
    Difficile de t'aider ainsi sans voir les données sur lesquelles tu travailles.

    Proposition

    - Constitue-toi un environnement de test avec ta db (en format version Access2000) et quelques fichiers à importer.
    - Tu postes le zip, je te proposerai alors un bout de code pour t'aider à démarrer.

    N.B. Les données doivent être anonymes (non confidentielles) !

  6. #6
    Candidat au Club
    Homme Profil pro
    Technicien
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    N.B. Les données doivent être anonymes (non confidentielles) !
    Le problème est là j'aurais trop de tri à faire pour rendre cela anonyme.

    sinon je pense avoir trouvé d'où venait le message d'erreur: "acSpreadsheetTypeExcel8"
    En principe, les fichiers sont générés sur un classeur excel97 tout au format texte.
    Ces fichiers sont ensuite modifiés par différentes personnes qui convertissent certaines colonnes en numérique et surtout enregistre les classeurs dans une version plus récente d'excel.

    Lorsque je fais les importations avec les fichiers d'origines, il y a aucune erreur, donc le problème doit venir du format du fichier.
    Existe-t-il un joker pour acSpreadsheetTypeExcel qui prend en compte toutes les versions de fichier?

    (Vraiment merci pour ton aide et bravo pour tes tutos)

  7. #7
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    qui convertissent certaines colonnes en numérique
    Tes fichiers n'ont donc pas tous la même structure, comme tu l'annonçais.


    Existe-t-il un joker pour acSpreadsheetTypeExcel qui prend en compte toutes les versions de fichier?
    Pas à ma connaissance, mais à voir avec des spécialistes.
    Il est probablement possible, par programme, d'ouvrir le fichier quelle que soit sa version et de le sauver dans une version plus récente, et rendre ainsi standard la suite du processus.

    Ouvre une autre discussion avec un titre bien spécifique pour attirer l'attention d'un virtuose Excel/Access.

  8. #8
    Candidat au Club
    Homme Profil pro
    Technicien
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    après vérification, mes fichiers ont tous la même structure, juste quelques "blagues" avec des cellules fusionnées.

    Merci Claude pour toutes tes réponses.
    je vais me pencher sur tes tutos je trouverais certainement mon bonheur pour mes prochaines interrogations.

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

Discussions similaires

  1. [AC-2010] Importer plusieurs classeurs Excel dans plusieurs tables Acess
    Par jslpfasc2 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/04/2014, 13h34
  2. Réponses: 1
    Dernier message: 12/07/2011, 09h26
  3. Réponses: 4
    Dernier message: 24/10/2008, 17h37
  4. Importation d'un fichier excel dans une table access
    Par cmaitre dans le forum VBA Access
    Réponses: 11
    Dernier message: 15/04/2008, 16h59
  5. Réponses: 7
    Dernier message: 04/10/2005, 18h21

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