IMPORTER UNE FEUILLE EXCEL VERS UNE TABLE ACCESS EXISTANTE

Signaler
Messages postés
2
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
14 mars 2007
-
toufiqihaddou
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Statut
Membre
Dernière intervention
23 juillet 2011
-
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

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
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

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

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
6
Date d'inscription
lundi 28 mai 2007
Statut
Membre
Dernière intervention
29 juillet 2009

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
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

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

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
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

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

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
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

... (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

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
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

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

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

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
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

... 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

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
8
Date d'inscription
mardi 19 juin 2007
Statut
Membre
Dernière intervention
8 février 2012
1
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
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

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
8
Date d'inscription
mardi 19 juin 2007
Statut
Membre
Dernière intervention
8 février 2012
1
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

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
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

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

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
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
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

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
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

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

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

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

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
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

"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

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

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
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

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

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

Nice code,
Thanks