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 :

Importer plusieurs classeurs excel (v.2003) sur access (v.2003) dans une même table [AC-2003]


Sujet :

Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2014
    Messages : 46
    Points : 13
    Points
    13
    Par défaut Importer plusieurs classeurs excel (v.2003) sur access (v.2003) dans une même table
    Bonjour à tous,

    Voilà je viens vous demander un coup de pouce,
    Je suis une nouvelle arrivante dans le monde d'access et je commence une base de données.

    J'ai essayé des solutions en VBA proposées sur le net, mais hélas je n'y arrive pas...(mais je pense que je n'ai pas bien compris)
    J'aimerai savoir si il est possible importer de nombreux classeurs Excel dans une même table de ma base:

    Tous mes fichiers Excel sont organisés de la même façon et comporte un nombre de lignes assez élevé et variable. D'autres classeurs seront a importer au fur et à mesure des travaux. Les fichiers Excel déjà construits, sont placés dans un unique dossier "classeurs_import".

    Je souhaitai obtenir une numérotation automatique par classeur. (Le classeur X aura le n°1, le classeur Y, le n°2) J'ai laissé une colonne nommée "numsession" vide pour chaque classeurs.
    Aussi j'aimerai que l'importation se réalise à partir d'une action simple (bouton de commande dans un formulaire?) qui importerai automatiquement les classeurs déposés dans un document précis.

    Y aurait-il un tutoriel ou encore quelqu'un qui pourrait me guider un peu?

    Merci d'avance!


    Ps: Je pense avoir aussi rencontré un soucis car je ne connais pas le numéro de ma version Excel à spécifier dans les codes VBA que j'ai essayé...

  2. #2
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Pour faire ce que tu souahtes, je procèderais de la façon suivant :

    Prévoir un bouton qui ouvrirait un formulaire.
    Dans ce formulaire, il y aurait une zone de liste.
    Au chargement du formulaire, coder un listing automatique de tous les fichiers Excel, présent dans ton répertoire, et présenter cette liste dans ta zone de liste.
    Après sélection d'un fichier, importer les données puis déplacer le fichier Excel dans un autre répertoire afin de ne plus le voir dans la zone de liste et ce, afin de ne pas l'importer une seconde fois.
    L'importation pourrait se faire par double-clic sur le nom du fichier dans la zone de liste.

    Pour lister tes fichiers, colles le code suivant dans un module :

    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
    Function ListFileXLS(SourceDir As String) As String
    '----------- Ajouter référence Microsoft scripting runtime --------------
    Dim FSO As Scripting.FileSystemObject
    Dim srcFolder As Scripting.Folder
    Dim oFichier As File
    Dim listFile As String
     
    Set FSO = New Scripting.FileSystemObject
    Set srcFolder = FSO.GetFolder(SourceDir) '
     
    For Each oFichier In srcFolder.Files
        'Si le fichier a l'extension que l'on recherche
        If Right(oFichier.Name, 4) = ".xls" Then
            'On ajoute le nom dans une chaine de caractère
           listFile = listFile & Mid(oFichier.Name, 1, InStrRev(oFichier.Name, ".") - 1) & ";"
        End If
    Next
    'Retour de la liste des fichiers trouvés
    ListFilePDF = listFile
    End Function
    Dans ton formulaire, créer une zone de liste nommée ListView.
    Sur ouverture de ton formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Open(Cancel As Integer)
    'CurrentProject.Path & "\Repertoire_Excel\") =  le chemin de ton répertoire Excel qui est placé dans le même répertoire que ton application
    Me.ListView.RowSource = ListFileXLS(CurrentProject.Path & "\Repertoire_Excel\")
    End Sub
    Pour la suite, je te laisse chercher et si tu as des problèmes, n'hésites pas à faire appel à nous.
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  3. #3
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    Il y a une petite erreur dans la fonction que je t'ai donné (un mauvais copier/coller ).
    Pour m'excuser, tu trouveras en pièce jointe, une petite base exemple que tu devrais arriver à ouvrir avec ta version Office.
    Fichiers attachés Fichiers attachés
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2014
    Messages : 46
    Points : 13
    Points
    13
    Par défaut
    Whouah!

    Merci Christophe,
    C'est exactement ce que je souhaitais réaliser!!
    Il ne me reste plus qu'à trouver un moyen de numéroter automatiquement les fichiers excel importés.

    Très bonne journée à toi!

    colline

  5. #5
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Salut Colinne,

    C'est avec plaisir.

    Cela dit, on oubli pas de cocher la case Résolu.

    Merci pour les autres.
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 12/06/2014, 11h00
  2. [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
  3. Réponses: 28
    Dernier message: 10/05/2012, 11h18
  4. importer un classeur excel en formulaire sous access
    Par tobisko dans le forum Access
    Réponses: 2
    Dernier message: 28/10/2006, 19h41
  5. [Requête] plusieurs champs dans une même table ayants la même source
    Par Christophe93250 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 25/04/2006, 16h18

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