IMPORTER UNE FEUILLE EXCEL VERS UNE TABLE ACCESS EXISTANTE

endero7 Messages postés 2 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 14 mars 2007 - 14 mars 2007 à 09:47
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011 - 27 juin 2011 à 18:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41568-importer-une-feuille-excel-vers-une-table-access-existante

toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011
27 juin 2011 à 18:51
Salut PIFOU25;

SVP; je veux utuliser ces fonctions; mais je ne sais pas quoi mettre dans :

SysCmd acSysCmdSetStatus, "Importation..."

car il me donne error 9 .....in Function ImportExcelVeille of Module mdImportExcel

on mit la plage "Feuil1!A1:F50"

svp c urgent
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
7 oct. 2010 à 23:10
salut,
version d'excel?
message d'erreur?
symptomes?
c'est grave docteur?
cs_bigounet Messages postés 1 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 7 octobre 2010
7 oct. 2010 à 13:39
Bien le bonjour à tous. j'ai copié la code que j'ai inséré dans un module. Ensuite, sur le bouton qui me sert de commande, j'ai mis
stDocName = "Fm_NOUVEAU.import"
DoCmd.RunMacro stDocName

et dans ma macro : runcode ImportExcelVeille («Filename»). Mais bien sur, cela ne fonctionne pas. J'ai remplacé le "filename" par le chemin d'accès et le nom de mon fichier excell.
Je dois avoir oublié quelque chose mais je ne sais pas quoi.
En vous remerciant
msz1704 Messages postés 5 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 29 juillet 2009
29 juil. 2009 à 10:43
Bonjour,

Autre solution plus facile: :~)

http://www.vbfrance.com/tutoriaux/IMPORT-FEUIL-EXCEL-DANS-TABLE-ACCESS_638.aspx

Merci beaucoup taikibaybay et Pifou25 aussi!
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
7 févr. 2009 à 16:56
Salut Bercof, j'ai exactement ce qu'il te faut c'est une autre de mes (nombreuses!) sources, ici
http://www.vbfrance.com/codes/ACCESS-VBA-EXPORTER-SQL-VERS-FICHIER-PLAT-CSV_41481.aspx
le principe est simple, une fonction qui exporte ta requête access en fichier csv (donc que tu pourra ouvrir avec Excel)
Function ExportCsv(SQL As String, File_name As String, Optional ByVal sep As String ";", Optional ByVal Quote As String "", Optional ByVal WithFields As Boolean = False) As Boolean

ça dit tout: ExportCsv('ta_requete', 'c:/documents/tonfichier.csv')
le tour est joué ;)
bercof Messages postés 1 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 7 février 2009
7 févr. 2009 à 15:34
salut tout le monde
j ai besoin d un code qui mé le contrair un code qui exporte un requette acces vers un fichier excel
si c possible j aim bien recevoir ce code sur ma boite palermo01@hotmail.fr
et merci d avance
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
27 août 2008 à 11:10
bonjour,
cette fonction (ImportExcelRefhd) c'est toi qui l'a créée, on n'a pas le code on aura du mal à t'aider... demande plutot sur le forum ;)
peanut38 Messages postés 30 Date d'inscription samedi 18 mars 2006 Statut Membre Dernière intervention 28 octobre 2008
25 août 2008 à 15:02
Bonjour

et merci pour ce code!

Je ne suis pas non plus experte en vb et je ne parviens pas à mettre en application cette source.
Voici mon erreur :
"Error 9 (L'indice n'appartient pas à la sélection.) in Function ImportExcelREFHD of Module mdImportExcel"

Ma table Access s'appelle REFHD (sql). Mon fichier se trouve sur un lecteur réseau.
Je fais appel à la fonction en cliquant sur un bouton :

Private Sub Commande100_Click()
ImportExcelREFHD ("O:\importexcelREFHD.xls")
End Sub

Le premier champ de mon tableau est une clé primaire.

Quelqu'un a-t-il une idée ?

Merci d'avance !
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
4 juin 2008 à 16:36
... (mySQL ??)

chai pas, du coup, si ça a marché pour 14 lignes il doit y avoir un caractère incompatible sur la 15e ligne qui le fait planter... :/ apostrophe, antislash, crochets...
kaltek Messages postés 2 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 3 juin 2008
3 juin 2008 à 08:22
Salut, merci de m'apporter ton aide.

En effet mon tableau Excel contenait deux fois le même champs.
Je n'ai plus ce message d'erreur mais celui-ci :
ERROR 3265 (Element non trouver dans cette collection) IN Function
FN_INSERT of module mysql.
Le programme a copier 14 lignes sur les 17.
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
2 juin 2008 à 10:35
bonjour,
il y a peut être dans le fichier Excel plusieurs colonnes qui ont le même nom...
ou bien dans la table veille de Access, même cause même effet...
kaltek Messages postés 2 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 3 juin 2008
30 mai 2008 à 10:42
Bonjour

Ce topic date un peut mais je tente ma chance.
Tout d'abord je souhaite remercier Pifou25 pour son programme car c'est exactement ce dont j'ai besoin. Maintenant il faut le faire fonctionner.

J'ai donc ajouté la bibliothèque d'Excel dans Access 9.
J'ai créer la table Veille.
J'ai copier le programme dans Module1.
J'ai créer un SUB

Sub ImportExcel()
ImportExcelVeille ("C:Bureau\essai.xls")
End Sub

Je n'ai pas toucher au programme d'origine.
J'exécute le programme et voici l'erreur :
ERROR 457 (cette clé est déjà associée à un élément de cette collection) IN FUNCTION ImportExcelVeille of Module mdImportExcel


Merci de me donner un coup de main.
cs_comiv Messages postés 2 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 25 septembre 2007
25 sept. 2007 à 08:27
Bonjour,
D'avance merci pour votre réponse.

En fait j'ai changé le test dans GetExcelLine. A la place de
GetExcelLine = (i - CptEmptyCells > 5)
J'ai codé :
GetExcelLine = (i - CptEmptyCells > 0)
Et de c'est bon.
Ensuite, j'ai des problèmes dans RetrouverChampsExcel(), mais je continue d'investiger.

Bonne journée et bon codage.
Salutations
comiv
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
24 sept. 2007 à 16:15
... il y a peut être des colonne masquées au début qui font que la fonction ne voit pas la suite(?) Je vois pas d'autres solutions :s Sinon essaye de mettre un point d'arrêt sur la fonction et voir ce qui se passe précisément.
cs_comiv Messages postés 2 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 25 septembre 2007
24 sept. 2007 à 14:34
Bonjour,
Tout d'abord bravo pour votre code qui est très bien commenté.
J'ai testé tout ça, et zut de flute, rien ne se passe.
Pas de message d'erreur, mais la table ne se rempli pas.
J'ai vu que la fonction GetExcelLine() retourne toujours FALSE, même que ma ligne n'est pas vide !!
Merci de m'avoir lue
A+
comiv
saberhec Messages postés 7 Date d'inscription mardi 19 juin 2007 Statut Membre Dernière intervention 8 février 2012 1
25 juin 2007 à 09:46
Salut, J'ai veillé à exporter les données existantes de la même table (qui est ancienne renommé comme voulu) dans le fichier Excel spécifié. Ensuite, j'ai vidé la table. Enfin, j'ai lancé le module d'import.
Ceci étant, je veux dire que le fichier Excel contient des données compatibles avec les formats exigés par la table et que l'en-tête des colonnes existent à la première ligne du fichier Excel.
Merci pour l'intérêt que vous accordez à mon interrogation et j'espère qu'ainsi je suis arrivé à vous éclaircir un peu sur la situation. (Rq: j'utilise MS Office 2003).
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
23 juin 2007 à 17:41
aucun message d'erreur ?? difficile de faire un diagnostic dans ce cas :| ... y'a-t-il bien les entête de colonnes dans le fichier excel? sinon je ne vois pas.
saberhec Messages postés 7 Date d'inscription mardi 19 juin 2007 Statut Membre Dernière intervention 8 février 2012 1
22 juin 2007 à 10:53
Salut tout le monde. Je te remercie monsieur Pifou pour ce code bien structuré. Néanmoins, j'ai suivi les étapes suivantes, il n' y avait pas de message d'erreur, mais la table "VEILLE" est restée vide après avoir terminé:
1 - J'ai créé une table "VEILLE"
2 - J'ai placé ce code dans un module "Module1"
3 - J'ai activé la référence Excel 11 Obj...
4 - J'ai créé une "Sub" qui fait référence à la première fonction ainsi:
Sub EssaiImport()
ImportExcelVeille ("C:\AAA.xls")
End Sub
5 - Lors de l'exécution, il n' y avait pas de message d'erreur mais la table est restée vide bien que j'ai bien placé des données sur le fichier "AAA.xls"
Je crois que j'ai une erreur quelque part et je compte sur votre maîtrise pour m'aider.
Merci encore une fois pour ce code bien utile.
myssia Messages postés 5 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 23 juillet 2007
20 juin 2007 à 11:36
Tkt, je me suis laissée emporter on va dire. Certes je débute, mais j'apprends relativement vite donc ça va. Ton code m'a aidé et j'ai pu l'implémenter dans mon projet dc c cool. Bonne continuation
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
20 juin 2007 à 11:31
Désolé, Myssia, que tu ai mal pris mon message, (qui n'était pas aimable je le sais). Ce n'est pas inné chez moi, je ne suis pas geek, mais développeur de métier. Je veux bien répondre à des questions si tu comprend pas 1 point, mais pas "j'y comprend rien expliquez moi tout!" En même temps je suis pas professeur j'en serais pas capable.

Alors je suis bien content que tu ai compris quand même :) et que ma source te soit peut être utile :) et que finalement, tu es toi aussi entré dans "le monde des grands"! bon courage.
myssia Messages postés 5 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 23 juillet 2007
19 juin 2007 à 11:09
je voulais juste qu'on m'explique l'importation et non le code ( que j'ai compris ! et oui ça surprend lol.) et pas qu'on me dise d'allez voir ailleurs ""ici c'est le monde des gds"" :o
mais bon le réseau des codeurs est assez vaste et diversifiés donc maintenant ça va ! pour continuez cette conversation inutile envoyer un autre message
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
19 juin 2007 à 11:04
y'a Internet dans la cour de récré ?

merci de bien vouloir baisser d'un ton, et de soigner ta rédaction.
poses des questions portant sur des points précis du code, si tu veux que l'on puisse facilement te répondre...
si tu n'entends reelement rien a ce code - qui du reste est pas mal structuré, et gère les Case Else, etc. - regarde une autre source, plus adaptée à ton niveau, qui ne pourra alors que progresser.

J'ignore si tu cherches simplement a mettre en oeuvre ce code dans ton projet, ou si tu cherches a comprendre le code, juste pour "la forme"...

Renfield - Admin CS
myssia Messages postés 5 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 23 juillet 2007
19 juin 2007 à 10:56
ben fallait le dire ! si ton code est réservé rien qu'au geek !
j'ai ( j'avais) besoin de ce genre de code ! qq1 de moins ***** que toi a bien voulu m'a aidé! fo dire que chez toi coder c'est qq choz d'inné ! non?!
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
18 juin 2007 à 22:11
c'est pas une source pour débutant que j'ai fait la non plus... si tu n'en a pas besoin contente toi de ctrl C/ctrl V ça marche aussi :p et si tu a besoin d'aide commence par des trucs de ton niveau.
myssia Messages postés 5 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 23 juillet 2007
18 juin 2007 à 09:51
salut, comment dire je suis extrément null en vb..prog etc.
j'aimerais qu'on m'expik ttes les étapes...pour que le code fonctionne...cad implémentation du main..changement des paramètres...pour que ça fonctionne ! je vous fais un schéma sur mes compétences : ctrl C/ ctrl V :( . sinon j'y pige rien !
cs_carlos Messages postés 4 Date d'inscription jeudi 6 décembre 2001 Statut Membre Dernière intervention 14 juin 2007
14 juin 2007 à 15:31
Bonjour ma petite LEXANE

Je pense que tu peux le faire manuellement en important dans Fichier/Données externes/ tu choisies le format xls et ensuite je crois qu'il faut lier les tables que tu veux mettre à jour ... Moi aussi je dois faire ça j'ai commencé aujourd'ui je ne connais ni ACCESS ni VB enfin que de nom beinsur dès que j'ai la solution je t'en dirait plus.....*

peace (-_-)
cs_LEXANE Messages postés 9 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 12 janvier 2008
14 juin 2007 à 09:38
salut,
pour les besoins d'un projet de stage j'ai besoin d'enregister dans ma base access des données qui sont saisies dans des feuilles excel, mais étant donné que je ne connais visual basic que depuis 2 semaines je ne voit pas bien comment donc si une âme charitable a le temps de m'expliquer je lui serait très reconnaissant
merci
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
13 mai 2007 à 12:02
"raté" ;) c'est bien dans un module access qu'il faut tout mettre ce code. il faut aussi ajouter une référence à la librairie Excel (pour les objets worksheet etc) et avoir fait une table access (je l'ai appelée "veille" dans ce code). DoCmd est une commande Access
Si tu es débutant, désolé je crois que ce code manque un peu de commentaires "évidents" et pourtant y'en a pas mal des commentaires.
outofbusiness Messages postés 36 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 4 juin 2009
10 mai 2007 à 11:25
question de débutant : tu tapes ce code dans access ou excel ??
d'après ce que j'ai compris, c'est dans excel, mais j'ai une erreur à cause du docmd :-~
comment tu utilises ta fonction importexcelveille dans une procédure ??

merci "beaucoup" d'avance pour ta réponse, car j'avance pas :-(
Selune6666 Messages postés 59 Date d'inscription mardi 23 janvier 2007 Statut Membre Dernière intervention 14 janvier 2008
30 avril 2007 à 15:01
oui oui le chemin l'url c pareil >_<'(réponse d'inculte je sais) merci je go test et modifier tous ça ^^
pifou25 Messages postés 144 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 21 décembre 2014
30 avril 2007 à 11:56
oui en principe ça devrait marcher. enfin pas l'url (URL? c'est pour internet ça) mais le chemin C:\mes documents\excelfile.xls ça oui!
Selune6666 Messages postés 59 Date d'inscription mardi 23 janvier 2007 Statut Membre Dernière intervention 14 janvier 2008
30 avril 2007 à 11:34
J'ai une légère question étant debutante en programmation ^^

J'ai une feuile excel dans laquelle je dois récupéré des données et donc inclure cela dans une table access.

J'ai fait un petit code me permettant d'ouvrir une boite de dialogue windows dans laquelle je sélectionne un fichier excel.Une fois que je valide le chemin,il l'affiche dans la textbox de mon formulaire.

Ce code prendra t'il compte qu'il doit enregistrer les champs de l'url situé dans la textbox?
endero7 Messages postés 2 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 14 mars 2007
14 mars 2007 à 09:47
Nice code,
Thanks