OVH Cloud OVH Cloud

EXCEL>>>>> ACCESS

7 réponses
Avatar
slimane62
Bonjour!
je voudrai exporter une feuille Excel vers une table d'une base
Access. Comment faire???
Il ne faut pas que les lignes d'access précédentes soient écrasées.
Merci d'avance!!

7 réponses

Avatar
Pascal Engelmajer
Salut,
ne vaut-il pas mieux importer depuis access ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"slimane" a écrit dans le message de news:

Bonjour!
je voudrai exporter une feuille Excel vers une table d'une base
Access. Comment faire???
Il ne faut pas que les lignes d'access précédentes soient écrasées.
Merci d'avance!!


Avatar
Techniciel
Bonjour,

Il faut s'assurer que la table access et que le tableau excel ont
visiblement la même structure (champs de même type et dans le même ordre).
En cas de besoin on peut masquer des colonnes (access ou excel) et on peut
déplacer des colonnes à la souris en faisant glisser l'entête (access
seulement).

Ensuite, sélectionner les cellules dans Excel (Maj+Ctrl+Fin pour aller
jusqu'à la fin du bloc de données si volumineux) puis Copier.
Dans Access, ouvrir la table puis Edition/Coller par ajout

Voili

En espérant vous avoir aidé

Pascal
"slimane" a écrit dans le message de
news:
Bonjour!
je voudrai exporter une feuille Excel vers une table d'une base
Access. Comment faire???
Il ne faut pas que les lignes d'access précédentes soient écrasées.
Merci d'avance!!


Avatar
michdenis
Bonjour Slimane,

Voici une façon de faire :


Tu dois insérer une nouvelle bibliothèque à ton projet
selon la version d'office que tu possèdes:

Microsoft DAO 3.6 Objects librairy 'Excel 2000

Dans l'exemple soumis :
Base de données : BD2.Mdb
Table : Etudiant
Champs de la table :
NumEtudiant
NomEtudiant
NumTel

Feuille Excel : Feuil1
Plage de données A1:C5
Chaque ligne de cette plage représentant un enregistrement.

Attention : Dans ce genre de situation, tu dois t'assurer que tu ne violes
pas les paramêtres de ta table : Exemple : Doublons dans un champ
primaire, Champ primaire Nul (pas de données dans ta feuille excel
dans ce champ .... type de données s'il y a lieu... sinon ça va planter !!!


'-------------------------------------------
Sub AjouterDesEnregistrementsÀUneTable()

Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet

Set MyDB = OpenDatabase("C:Mes documentsbd2.mdb")
Set MyTable = MyDB.OpenRecordset("Etudiant")
Set Sh = Worksheets("Feuil1")

With Sh
For Each r In .Range("A1:C5").Rows
With MyTable
.AddNew
!NumEtudiant = Sh.Cells(r.Row, 1)
!NomEtudiant = Sh.Cells(r.Row, 2)
!NumTel = Sh.Cells(r.Row, 3)
.Update
End With
Next
End With
Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing

End Sub
'-------------------------------------------


Salutations!



"slimane" a écrit dans le message de news:
Bonjour!
je voudrai exporter une feuille Excel vers une table d'une base
Access. Comment faire???
Il ne faut pas que les lignes d'access précédentes soient écrasées.
Merci d'avance!!
Avatar
Clément Marcotte
Bonjour,

1) Sélectionner et copier dans Excel.

2) Coller par ajout dans une table d'Access.

Le collage par ajout, comme son nom l'indique, ajoute des
enregistrements sans écraser les autres. Pas besoin de rechercher la
dernière ligne de la table.



"slimane" a écrit dans le message de
news:
Bonjour!
je voudrai exporter une feuille Excel vers une table d'une base
Access. Comment faire???
Il ne faut pas que les lignes d'access précédentes soient écrasées.
Merci d'avance!!


Avatar
Pierre CFI [mvp]
bonjour
en 97
il faut donner un nom à ta zone excel, ici CLIENT, j'ajoute client de excel à la table client de ajout_97.mdb
Sub export()
Dim bd As DAO.Database
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
bd.Execute "INSERT INTO CLIENT IN 'd:accessajout_97.mdb' SELECT CLIENT.* FROM CLIENT"
bd.Close
Set bd = Nothing
End Sub
Attention il faut charger la réf Microsoft dao 3.xxx dans le module excel

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

Site perso
http://access.cfi.free.fr
"slimane" a écrit dans le message de news:
Bonjour!
je voudrai exporter une feuille Excel vers une table d'une base
Access. Comment faire???
Il ne faut pas que les lignes d'access précédentes soient écrasées.
Merci d'avance!!


Avatar
slimane62
Bonjour michdenis,

Je ne comprend pas ce que tu appelle :"Tu dois insérer une nouvelle
bibliothèque à ton projet selon la version d'office que tu possèdes
Microsoft DAO 3.6 Objects librairy 'Excel 2000"
J'ai ecrit cette macro VBA et le msg d'erreur est "Type défini par
l'utilisateur non défini", une explication svp!
et Que veut dire le "r" dans la macro?

Sub AjouterDesEnregistrementsÀUneTable()

Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet
Set MyDB = OpenDatabase("C:Mes documentsbd2.mdb")
Set MyTable = MyDB.OpenRecordset("Etudiant")
Set Sh = Worksheets("Feuil1")

With Sh
For Each "r" In .Range("A1:C5").Rows
With MyTable
.AddNew
!NumEtudiant = Sh.Cells(r.Row, 1)
!NomEtudiant = Sh.Cells(r.Row, 2)
!NumTel = Sh.Cells(r.Row, 3)
.Update
End With
Next
End With
Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing

End Sub
'-------------------------------------------

Merci de votre aide!


Avatar
Pascal Engelmajer
Salut,
dans l'éditeur VBA
Outils/Références ....
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"slimane" a écrit dans le message de news:

Bonjour michdenis,

Je ne comprend pas ce que tu appelle :"Tu dois insérer une nouvelle
bibliothèque à ton projet selon la version d'office que tu possèdes
Microsoft DAO 3.6 Objects librairy 'Excel 2000"
J'ai ecrit cette macro VBA et le msg d'erreur est "Type défini par
l'utilisateur non défini", une explication svp!
et Que veut dire le "r" dans la macro?

Sub AjouterDesEnregistrementsÀUneTable()

Dim MyDB As Database, MyTable As Recordset, Sh As Worksheet
Set MyDB = OpenDatabase("C:Mes documentsbd2.mdb")
Set MyTable = MyDB.OpenRecordset("Etudiant")
Set Sh = Worksheets("Feuil1")

With Sh
For Each "r" In .Range("A1:C5").Rows
With MyTable
.AddNew
!NumEtudiant = Sh.Cells(r.Row, 1)
!NomEtudiant = Sh.Cells(r.Row, 2)
!NumTel = Sh.Cells(r.Row, 3)
.Update
End With
Next
End With
Set MyDB = Nothing: Set MyTable = Nothing: Set Sh = Nothing

End Sub
'-------------------------------------------

Merci de votre aide!