Importer 100 fichiers excel dans 1 table Access

jbm

XLDnaute Nouveau
Hello à tous,

j'ai besoin d'aide pour le boulot....

j'ai des rapports de vente pour chaque mois et chaque région: 12 régions, et 9 mois pour l'instant soit une bonne centaine de fichiers, les fichiers sont tous construits exactement de la meme facon (13 colonnes), seul le nombre de lignes varie (entre 200 et 500 par fichier).

je voudrais créer une seule grosse base access pour pouvoir analyser mes ventes (mix, saisonnalité...)

il y a surement une maccro simple à faire pour fusionner ces 100 fichiers dans une meme table access... le probleme... je n'y connais rien en maccro...

Voilaaa, si quelqu'un a un peu de temps pour moi....

Un grand Merci

JB
 

jbm

XLDnaute Nouveau
Re : Importer 100 fichiers excel dans 1 table Access

Michel, T'es mon idole. Merci beaucoup!!!
Ca a marché... Reste à faire les verif, apparemment j'ai qq champs qui sont trop longs pour etre importés dans la base (meme en ayant augmenté la taille à 255 carac..) je pars à leur recherche...

NAt, Merci quand même...

jb
 

jbm

XLDnaute Nouveau
Re : Importer 100 fichiers excel dans 1 table Access

Ok Nat, si tu insistes vraiment... tu vas pouvoir m'aider... :)

La procedure marche tres bien, un seul petit bog: mes fichiers excel ont tous le meme format a un seul detail pres... de temps en temps la dernière colonne n'a pas été créer et donc l'entete manque.

Si tu peux me faire une petite macro qui colle "remarques" dans la cellule M1 de tous mes fichiers alors je serais le plus heureux.

tu crois c'est possible?
 

jbm

XLDnaute Nouveau
Re : Importer 100 fichiers excel dans 1 table Access

C'est bon Nat, plus besoin...
Il y avait peu de fichiers dans ce cas et j'ai pu les flagger assez rapidement.
En tout cas merci a tous, je suis epaté par l'efficacité de ce forum... et de la procedure (finalement pres de 1500 fichiers importés en moins de 5 minutes grace à 50 lignes de code.... c'est impressionnant)

JB
 

okparanoid

XLDnaute Nouveau
Re : Importer 100 fichiers excel dans 1 table Access

Bonsoir,

Je vais devoir attaquer demain une macro pour pouvoir agreger une centaine de fichiers aussi mais sur un autre classeur excel.

Est-ce que je peux utiliser de la meme maniere ma feuille d'agregation comme une table et ajouter un a un les elements comme tu le fais sur la table access.

Existe-til une requete SQL qui permettrait de faire toute l'insertion d'un coup ?

Si je veux faire une selection sur certains champs de ma table estce quil suffit de les nommer dans ma clause where de la meme maniere que le nom de la premiere cellule de la colonne correspondante ?

merci !!!!!
 

MichelXld

XLDnaute Barbatruc
Re : Importer 100 fichiers excel dans 1 table Access

bonsoir

Normalement le modèle ADO fonctionne de la même façon (à part quelques exceptions).
Tu as juste à remplacer la connection Access par une connection Excel.

OLE DB Microsoft Jet

Code:
   Set Cn = New ADODB.Connection
    
    '--- Connection ---
    With Cn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Data Source=" & Fichier & _
            ";Extended Properties=Excel 8.0;"
        .Open
    End With


OLE DB pour pilotes ODBC

Code:
    Set Cn = New ADODB.Connection
    
    With Cn
        .Provider = "MSDASQL"
        .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
            "DBQ=" & Fichier & "; ReadOnly=False;"
        .Open
    End With




Si je veux faire une selection sur certains champs de ma table estce quil suffit de les nommer dans ma clause where de la meme maniere que le nom de la premiere cellule de la colonne correspondante ?

Oui, si tous les classeurs sont structurés de la même maniere, et à l'identique d'une base Access:
La première ligne sert à indiquer le nom des champs, à partir de la première colonne.
Les champs respectent les bonnes pratiques dans la déclaration des Noms:
* Nom le plus court possible.
* Pas d'espace.
* Pas d'accent.
* Pas de caractères spéciaux.
Evite aussi les espaces et les caractères spéciaux dans le nom des feuilles.
Une table peut être une feuille de calcul ou une plage de cellules nommée.



Bonne soirée
MichelXld
 

okparanoid

XLDnaute Nouveau
Re : Importer 100 fichiers excel dans 1 table Access

Merci beaucoup pour ta reponse aussi prompte Michel !

Et pour l'insertion en une requete a la suite de la table ca existe ou tu confirmes que boucler sur les colonnes puis sur les lignes est la seule solution ? :eek:p
 

okparanoid

XLDnaute Nouveau
Re : Importer 100 fichiers excel dans 1 table Access

MichelXld à dit:
rebonsoir Okparanoid



je ne comprend pas le sens de ton message: qu'apelles tu "une insertion en une requete a la suite de la table" ?


Bonne soirée
MichelXld

Dans un poste recent sur les techniques ADO ou tu expliquais comment rajouter une feuille dans un fichier ferme tu faisais une requete "select * into ..." pour faire de l'insertion. J'avais jamais vu de requetes comme ca !
Je me demandais, si tenter que j'ai bien compris quelle servait a faire de l'insertion, si elle s'appliquait uniquement a une table vide ou si on pouvait adapter pour faire toute l'update de la table a la suite d'un coup
 

MichelXld

XLDnaute Barbatruc
Re : Importer 100 fichiers excel dans 1 table Access

rebonsoir

ok je comprend mieux ta demande:

Je n'ai jamais eu l'occasion de tester mais si cela fonctionne dans Access, il ne devrait pas y avoir de soucis dans Excel:
Cela ne coute rien d'essayer.

Tu fais des essais et tu reviens sur le forum en cas de soucis (ouvre un nouveau fil de discussion pour ne pas encombrer celui qui traite d'une autre sujet)


Bonne soirée
MichelXld
 

okparanoid

XLDnaute Nouveau
Re : Importer 100 fichiers excel dans 1 table Access

Merci pour ta reponse,

Je teste petit a petit et pour l'instant ca agrege sauf que j'obtiens des lignes vierges. En testant au pas a pas je me rends compte que le select * renvoie des tuples vierges pour chaque fichier (il va plus loin que le dernier enregistrement).
Il y-a-til une solution a ce probleme, pour commencer je voudrais simplement squizzer les tuples vides par un if then mais je ne sais pas comment tester qu'un field soit bien non null...

Merci
 

michel_m

XLDnaute Accro
Re : Importer 100 fichiers excel dans 1 table Access

Bonjour à tous,

Peut -^tre à tout zazar, essaies de transformer la ligne


oRS.Fields(j) = oProdRS.Fields(j).Value

en
oRS.Fields(j) = cstr(oProdRS.Fields(j).Value) pour forcer en texte
en ajoutant une condition sur "j" si j=0 tu reste en nombre (clé)
 

anthooooony

XLDnaute Occasionnel
Re : Importer 100 fichiers excel dans 1 table Access

Bonjour MichelXld,


Merci pour ton code il est super !

Est-il possible d’intégrer dans le code, le rajout d'une colonne avec comme élément le numéro de la semaine qui figure a la fin du nom du fichier (extraction_S34) ? à chaque ligne du document intégré?


Extraction_S34
CocaCola_S34
Pepsi_S34
Fanta_S34

Extraction_S35
CocaCola_S35
Pepsi_S35
Fanta_S35

Le résultat souhaité..
Table1
CocaCola_S34
Pepsi_S34
Fanta_S34
CocaCola_S35
Pepsi_S35
Fanta_S35

Merci pour votre aide

Anthony
 

Discussions similaires

Statistiques des forums

Discussions
312 352
Messages
2 087 538
Membres
103 582
dernier inscrit
didinex