Importation ecxell-access via fenêtre des fichiers

Résolu
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005 - 14 déc. 2004 à 13:43
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005 - 20 déc. 2004 à 13:41
Importation ecxell-access via fenêtre des fichiers
Bonjour, mon probléme c'est d'importer une feuille excell sur access en ouvrant une fenêtre des fichiers sur le poste(comme dans l'enregistrement) et me permettant de séléctionner le fichier précis.Tout cela se fait aprés avoir cliqué sur un boutton"IMPORTER" d'un formulaire (je travaille avec le VB d'access).
Merci d'avance pour toute aide.

25 réponses

Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
15 déc. 2004 à 12:27
Ok si tu cherchais un peu tu trouverai sur ce site le code qui permet d'utiliser cette fonction API.

Mais comme je suis simpa je vais te le donner :

donc sur ce site fait une recherche de
"BOITE DE DIALOGUE OUVRIR/ENREGISTRER"

Et tu trouveras une solution à ton premier problème

Ouvrir une boite de dialogue pour aller chercher ton fichier
ensuite on verra...

Cramsoturf le VBien en quête de nouveau programme :big)
3
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
16 déc. 2004 à 14:40
Re
dans FileName tu récupères le nom de ton fichier .xls donc tu tappe par exemple:

docmd.TransferSpreadsheet acImport,acSpreadsheetTypeExcel9,"MaTable",Filename,True,"A1:Z500"

Si çà marche pas tu me précises quoi.

Cramsoturf le VBien en quête de nouveau programme :big)
3
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
16 déc. 2004 à 17:51
A titre indicatif "A1:Z500" correspond
Sélection de la Colonne A ligne 1 à la colonne Z ligne 500
Si tu m'a compris c à dire que tu sélectionnes
de la première célulle à la célulle Z500 ce qui fait
26 colonnes et 500 lignes
A toi de l'adapter à ce que tu as

A+,
Cramsoturf le VBien en quête de nouveau programme :big)
3
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
14 déc. 2004 à 17:17
Regarde la fonction Api GetOpenFileName

et docmd.TransferSpreadsheet
Je pense que tu trouveras ton bonheur.

Cramsoturf le VBien en quête de nouveau programme :big)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005
14 déc. 2004 à 18:00
Merci pour votre réponse, mais si vous pouvez m'éclercir la méthode Api GetOpenFileName aprés que la commande docmd TransferSpreadsheet ne m'a pas donné de résultat attendu.
Merci :)
0
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
14 déc. 2004 à 18:26
Bon alors j'ai rien compris :

Tu peux utilisé GetOpenFileName pour ouvrir une boite de dialogue comme dans excel pour ouvrir un fichier

Et une fois le fichier sélectionner tu as le chemin du fichier que tu as sélectionné en sortie de la boite de dialogue.
Par la suite donc tu pourras importer ton fichier excel comme table
dans la base access.

Me suis-je fourvoyé dans la compréhension de ce que tu veux

Sinon veux tu bien préciser ce que tu veux

Merci
Cramsoturf le VBien en quête de nouveau programme :big)
0
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005
15 déc. 2004 à 08:45
Merci pour tes éxplications j'ai essayés ce que tu m'as dit:
Private Sub Commande93_Click()

GetOpenFileName

End Sub
un message ma sortit:
Erreur de compilation:Sub ou fonction non définie
Merci

***Live without Love OR Love without Life***
0
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005
15 déc. 2004 à 14:51
T pas seulement simpa mais t génial :D
Mon premier probléme s'est résolu, il reste à importer le fichier séléctionné, vraiment je t beaucoup embété mais je crois qu'on arrive presque à la fin de mon probléme, et je v te faire un beau cadeau :)!!!

Meeeeeeeerrrrrrrrrciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

***Live without Love OR Love without Life***
0
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
16 déc. 2004 à 12:40
Ok bien bon maintenant plusieurs possibilité s'ouvre à toi :

- Soit tu importes ton fichier en le transformant en table
- Soit tu veux visualiser ton fichier excel sous access
- Soit tu veux utilisé pour importer des informations précises

Si je ne sais pas comment tu veux t'y prendre je ne peux pas te préciser comment tu peux faire...
Alors précise ce que tu veux faire... Et n'oublie pas de valider ma réponse si elle est exacte :D

Cramsoturf le VBien en quête de nouveau programme :big)
0
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005
16 déc. 2004 à 12:55
Bonjour,
C'est la premiere proposition que je veux faire, c'est d'importer le fichier en le transformant en table d'access,
Cordiallement,

***Live without Love OR Love without Life***
0
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
16 déc. 2004 à 13:13
Ok as tu déjà essayé une importation manuelle dans access d'un fichier excel ?
Si tu ne l'a pas fait voici la procédure :
- Positionnement sur les objets tables
- Clicker sur bouton droit de la souris sans sélectionner de Table
- Clicker dans le menu contextuel sur Importer...
- Dans la boite de dialogue sélectionner les types de fichier: Microsoft Excel(*.xls)
- Un Assistant apparaitra
Celui-ci t'aidera à comprend comment fonctionne le TransferSpreadsheet en VBA

Si ses informations ne sont pas suffisante précise ton problème
Et nous verons ce que nous pouvons faire.

Cramsoturf le VBien en quête de nouveau programme :big)
0
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005
16 déc. 2004 à 13:55
Merci pour votre réponse,
j'ai déja éffectué l'importation manuelle.
Mon probleme en fait c'est quand j'execute le botton, la fénetre des fichiers s'ouvre et je choisi une des feuilles, mais ça reste laba et l'importation ne se fait pas, or moi je veux que le cilc sur le botton "IMPORTER" m'ouvre la fenetre et importe mon choix sur acces comme une table.
J'espere que vous m'avez bien compris.
Cordiallement,
***Live without Love OR Love without Life***
0
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005
16 déc. 2004 à 16:58
Salut, ça marché...presque,
il ya deux chose:

1-Lors de l'execution de l'importation aprés avoir fait la séléction, un message d'erreur est survenu:"erreur d'execution:le champ"XXXXX" n'éxiste pas dans la table déstination "MaTable"" ,en fait il a fallu que la 1ere ligne de ma feuille ecxell soit le champ de "MaTable", donc je modifie ça à chaque fois et l'importation se fait,

2-Mais,aprés l'import, mes données importés de la table excell ne sont pas completes(dans la feuille excell il y avait 3000 lignes, il m'importe que 1000).

Pour le premier tiret je pense que c'est une question de configuration(comme dans l'importation manuelle où on peut modifier le champ), il faut que le champ d'excell"XXXXX" s'adapte avec le champ de "MaTable",mais comment???
Pour la 2iéme je n'ai aucune ideé!!

Vraiment, je sent que j'arrive à la fin de ce probléme et ça bien sûr grâce à vous, je sent aussi que je suis devenu pesant, mais je souhaite que vous continez çe petit bout de chemin avec moi.
Merrrrrccii :big)

***Live without Love OR Love without Life***
0
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005
16 déc. 2004 à 17:28
ReSalut,
En fait j'ai résolu le premier probléme en changeant False par True dans l'expression que vous m'avez donnez:
docmd.TransferSpreadsheet acImport,acSpreadsheetTypeExcel9,"MaTable",Filename,True,"A1:Z500"

Mais il reste le second problémes(perte de donneés) du message précedent, j'aimerai que vous m'aidiez car je n'ai aucune idée.
Merci

***Live without Love OR Love without Life***
0
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005
16 déc. 2004 à 17:34
On fait je me suis trompé dans le message précedent, j'ai changé True par False et pas False par True.
***Live without Love OR Love without Life***
0
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
16 déc. 2004 à 17:41
Pour le premier point:
le mieux est si c'est une mise à jour de créer une table à part et de faire des requête de mise à jour ou Ajout pour le placer dans la table access :
TableAccess1 (Importation excel)
TableAccess2 (Table utilisé dans access)
tableAccess2 mise à jour/Ajout par tableaccess1
Et le Champ XXXXX de la tableAccess1 correspond
au bon Champ de la tableAccess2

Pour le deuxième :
quel version d'Excel
eventuellement ne pas définir de "A1:Z500" et il prendra la feuille excel complète après il faudra trié dans ce cas il faut finir sur le paramètre 'true'

Essai çà :-)
Cramsoturf le VBien en quête de nouveau programme :big)
0
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
16 déc. 2004 à 17:43
donc il faut finir sur le parametre 'false'
:big)

Cramsoturf le VBien en quête de nouveau programme :big)
0
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005
17 déc. 2004 à 08:54
C'est génial, j'ai réussi!! ah!! non!! vous avez réussi!!

Vraiment vous êtes trés trés simpa, et trés doué
Etes vous toujours sérviable comme ça??!! :)
Maintenant, j'ai une dête envers vous :) , vous pouvez me demandez ce que que vous voulez , bien sûr apart la programation :big)

Merci*Exp(1000000)

A bientôt

***Live without Love OR Love without Life***
0
cs_Cherifcom Messages postés 24 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 6 janvier 2005
17 déc. 2004 à 08:57
En fait, j'ai oublié de précisé la solution du 2iéme tiret:puisque j'ai beaucoup de ligne dans ma table, donc j'ai suprimé "A1=Z500" et ça marché.
Merci
***Live without Love OR Love without Life***
0
Cramfr Messages postés 160 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 8 juillet 2008
17 déc. 2004 à 13:15
Bonjour,
Ravi de le lire et bonne chance pour la suite.

Bye

Cramsoturf le VBien en quête de nouveau programme :big)
0
Rejoignez-nous