OVH Cloud OVH Cloud

Récupérer des données depuis Excel

8 réponses
Avatar
Hervé DUCARNE
Bonjour,

Bon voilà le problème : une table que l'on appelle ici tableA avec un champ
(numero et un champ valeur) ; un fichier excel avec différentes feuilles,
avec pour chacune d'elle, entre autres, une colonne numero et une colonne
champ valeur.

Est-il possible depuis access d'aller 'visiter' chaque feuille excel et de
mettre à jour le champ valeur de la tableA dont le numero est le même que la
ligne excel ?

Merci d'avance.

8 réponses

Avatar
Gafish
Bonjour,

Oui, c'est possible, il faut que tu pilotes Excel depuis Access par
automation.
Si tu ne connais pas l'automation Excel, regarde sur le site de Raymond :
http://officesystem.access.free.fr/vba/excel.htm

Arnaud

"Hervé DUCARNE" a écrit dans le message news:
#
Bonjour,

Bon voilà le problème : une table que l'on appelle ici tableA avec un
champ

(numero et un champ valeur) ; un fichier excel avec différentes feuilles,
avec pour chacune d'elle, entre autres, une colonne numero et une colonne
champ valeur.

Est-il possible depuis access d'aller 'visiter' chaque feuille excel et de
mettre à jour le champ valeur de la tableA dont le numero est le même que
la

ligne excel ?

Merci d'avance.




Avatar
Pierre CFI [mvp]
bonjour
oui mais
il faut que ton fichier excel soit configuré comme une base de données, c-a-d que chaque zone de données porte un nom ex Bd_data_1,
Bd_data_2....
là tu ouvres le classeur comme une bd
dim bd as dao.database, enr as dao.recordset
set bd = opendatabase("c:ddd.xls",false,false,"excel 8.0")
set enr = bd.openrecordset("select champ from bd_data_1 where champNo= " & ici le nom du conrole qui a la valeur)
if not enr.eof then
Me.nomducontrole_a_mettre_a_jour = enr(0)
exit sub 'c'est fini
else
tu ouvres un autre recordset
etc....
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Hervé DUCARNE" a écrit dans le message de news:%
Bonjour,

Bon voilà le problème : une table que l'on appelle ici tableA avec un champ
(numero et un champ valeur) ; un fichier excel avec différentes feuilles,
avec pour chacune d'elle, entre autres, une colonne numero et une colonne
champ valeur.

Est-il possible depuis access d'aller 'visiter' chaque feuille excel et de
mettre à jour le champ valeur de la tableA dont le numero est le même que la
ligne excel ?

Merci d'avance.




Avatar
Hervé DUCARNE
Merci,
mais comment aller lire dans excel toutes les feuilles et mettre à jour une
table ? D'après ce que j'ai pu voir, il est question sur le site d'aller
écrire dans excel, ce que je veux c'est aller lire différentes feuilles et
piocher dans les lignes et récupérer certaines infos...

@+

"Gafish" a écrit dans le message de
news:
Bonjour,

Oui, c'est possible, il faut que tu pilotes Excel depuis Access par
automation.
Si tu ne connais pas l'automation Excel, regarde sur le site de Raymond :
http://officesystem.access.free.fr/vba/excel.htm

Arnaud

"Hervé DUCARNE" a écrit dans le message news:
#
Bonjour,

Bon voilà le problème : une table que l'on appelle ici tableA avec un
champ

(numero et un champ valeur) ; un fichier excel avec différentes
feuilles,


avec pour chacune d'elle, entre autres, une colonne numero et une
colonne


champ valeur.

Est-il possible depuis access d'aller 'visiter' chaque feuille excel et
de


mettre à jour le champ valeur de la tableA dont le numero est le même
que


la
ligne excel ?

Merci d'avance.








Avatar
Gafish
Autant pour moi j'avais compris de travers !
Regarde la réponse de Pierre qui supporte mieux la fin de journée que moi
:))

"Hervé DUCARNE" a écrit dans le message news:

Merci,
mais comment aller lire dans excel toutes les feuilles et mettre à jour
une

table ? D'après ce que j'ai pu voir, il est question sur le site d'aller
écrire dans excel, ce que je veux c'est aller lire différentes feuilles et
piocher dans les lignes et récupérer certaines infos...

@+

"Gafish" a écrit dans le message de
news:
Bonjour,

Oui, c'est possible, il faut que tu pilotes Excel depuis Access par
automation.
Si tu ne connais pas l'automation Excel, regarde sur le site de Raymond
:


http://officesystem.access.free.fr/vba/excel.htm

Arnaud

"Hervé DUCARNE" a écrit dans le message news:
#
Bonjour,

Bon voilà le problème : une table que l'on appelle ici tableA avec un
champ

(numero et un champ valeur) ; un fichier excel avec différentes
feuilles,


avec pour chacune d'elle, entre autres, une colonne numero et une
colonne


champ valeur.

Est-il possible depuis access d'aller 'visiter' chaque feuille excel
et



de
mettre à jour le champ valeur de la tableA dont le numero est le même
que


la
ligne excel ?

Merci d'avance.












Avatar
Pierre CFI [mvp]
oui, mais aujourd'hui tu fais fort, fait gaffe au controle :o))

--
Pierre CFI
Mvp access
Avatar
Hervé DUCARNE
Merci Pierre,
Mais comment dire à access qu'il aille "fouiller" pour chaque ligne colonne
appellé 'numero' de toutes les feuilles du fichier Excel (nombre variable),
de les comparer à la table access et de mettre à jour le cas échéant ?!
@+


"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
oui mais
il faut que ton fichier excel soit configuré comme une base de données,
c-a-d que chaque zone de données porte un nom ex Bd_data_1,

Bd_data_2....
là tu ouvres le classeur comme une bd
dim bd as dao.database, enr as dao.recordset
set bd = opendatabase("c:ddd.xls",false,false,"excel 8.0")
set enr = bd.openrecordset("select champ from bd_data_1 where champNo= " &
ici le nom du conrole qui a la valeur)

if not enr.eof then
Me.nomducontrole_a_mettre_a_jour = enr(0)
exit sub 'c'est fini
else
tu ouvres un autre recordset
etc....
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Hervé DUCARNE" a écrit dans le message de
news:%

Bonjour,

Bon voilà le problème : une table que l'on appelle ici tableA avec un
champ


(numero et un champ valeur) ; un fichier excel avec différentes
feuilles,


avec pour chacune d'elle, entre autres, une colonne numero et une
colonne


champ valeur.

Est-il possible depuis access d'aller 'visiter' chaque feuille excel et
de


mettre à jour le champ valeur de la tableA dont le numero est le même
que la


ligne excel ?

Merci d'avance.








Avatar
Pierre CFI [mvp]
quand tu ouvres un recordset avec un where tu filtres les enregistrements, s'il y en a un c'est bon, sinon on passe à la zone
suivante
mais il faut connaitre un peu de vba quand méme

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Hervé DUCARNE" a écrit dans le message de news:%
Merci Pierre,
Mais comment dire à access qu'il aille "fouiller" pour chaque ligne colonne
appellé 'numero' de toutes les feuilles du fichier Excel (nombre variable),
de les comparer à la table access et de mettre à jour le cas échéant ?!
@+


"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
oui mais
il faut que ton fichier excel soit configuré comme une base de données,
c-a-d que chaque zone de données porte un nom ex Bd_data_1,

Bd_data_2....
là tu ouvres le classeur comme une bd
dim bd as dao.database, enr as dao.recordset
set bd = opendatabase("c:ddd.xls",false,false,"excel 8.0")
set enr = bd.openrecordset("select champ from bd_data_1 where champNo= " &
ici le nom du conrole qui a la valeur)

if not enr.eof then
Me.nomducontrole_a_mettre_a_jour = enr(0)
exit sub 'c'est fini
else
tu ouvres un autre recordset
etc....
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Hervé DUCARNE" a écrit dans le message de
news:%

Bonjour,

Bon voilà le problème : une table que l'on appelle ici tableA avec un
champ


(numero et un champ valeur) ; un fichier excel avec différentes
feuilles,


avec pour chacune d'elle, entre autres, une colonne numero et une
colonne


champ valeur.

Est-il possible depuis access d'aller 'visiter' chaque feuille excel et
de


mettre à jour le champ valeur de la tableA dont le numero est le même
que la


ligne excel ?

Merci d'avance.












Avatar
Hervé DUCARNE
Merci, mais qu'appelles tu 'zone suivante' ?
Est ce la ligne suivante, la feuille suivante ?
Je ne sais pas si je l'ai précisé, mais il n'y aura pas toujours le même
nombre de feuilles et celles-ci n'auront pas toujours le même nom...
(pour compliquer un peu plus le bouzin ;o(

@+

"Pierre CFI [mvp]" a écrit dans le message de
news:
quand tu ouvres un recordset avec un where tu filtres les enregistrements,
s'il y en a un c'est bon, sinon on passe à la zone

suivante
mais il faut connaitre un peu de vba quand méme

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Hervé DUCARNE" a écrit dans le message de
news:%

Merci Pierre,
Mais comment dire à access qu'il aille "fouiller" pour chaque ligne
colonne


appellé 'numero' de toutes les feuilles du fichier Excel (nombre
variable),


de les comparer à la table access et de mettre à jour le cas échéant ?!
@+


"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
oui mais
il faut que ton fichier excel soit configuré comme une base de
données,



c-a-d que chaque zone de données porte un nom ex Bd_data_1,
Bd_data_2....
là tu ouvres le classeur comme une bd
dim bd as dao.database, enr as dao.recordset
set bd = opendatabase("c:ddd.xls",false,false,"excel 8.0")
set enr = bd.openrecordset("select champ from bd_data_1 where champNo " &
ici le nom du conrole qui a la valeur)

if not enr.eof then
Me.nomducontrole_a_mettre_a_jour = enr(0)
exit sub 'c'est fini
else
tu ouvres un autre recordset
etc....
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Hervé DUCARNE" a écrit dans le message de
news:%

Bonjour,

Bon voilà le problème : une table que l'on appelle ici tableA avec
un




champ
(numero et un champ valeur) ; un fichier excel avec différentes
feuilles,


avec pour chacune d'elle, entre autres, une colonne numero et une
colonne


champ valeur.

Est-il possible depuis access d'aller 'visiter' chaque feuille excel
et




de
mettre à jour le champ valeur de la tableA dont le numero est le
même




que la
ligne excel ?

Merci d'avance.