Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/04/2011, 13h45   #1
Futur Membre du Club
 
Inscription : janvier 2008
Messages : 304
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 304
Points : 18
Points : 18
Par défaut Transférer une feuille Excel automatiquement vers table Access déjà créée

Bonjour j’aurai besoin d’aide :
pour transférer un feuille excel automatiquement vers ma table access avec VBA. Les champs de ma table access sont déjà crées.
1ère solution : renommer mes champs excel automatiquement depuis access avant l'import car manuellement (caractère trop long et pas facile à gérer car plus de 50 champs soit 50 colonnes)
Point bloquant : mon code VBA génère un message d’erreur et bloque la procédure pour renommer mes champs de mon fichier excel avant import(voir ci-dessous) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
Sub Init()
 
Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(CurrentProject.Path & "\export_10.xls")
Set xlSheet = xlBook.Worksheets("ExportAAP")
With xlSheet
 
.Cells.Replace What:="NUM" & Chr(10) & "Numéro dos", Replacement:="NUM", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False   
   .Cells.Replace What:="NUM2" & Chr(10) & "Numéro réf", Replacement:="NUM2", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False   
 
   End With
 
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
2nd solution : comment importer depuis la ligne 2 du fichier excel vers ma table déjà existante ? colonne 1 excel champ 1 transfert vers champs 1 access etc…
Merci pour votre aide
Debutant10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 14h09   #2
Membre émérite
 
Conseil + Formation
Inscription : février 2010
Messages : 583
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Conseil + Formation

Informations forums :
Inscription : février 2010
Messages : 583
Points : 885
Points : 885
Bonjour

Ne serait-il pas plus simple de lier ta feuille Excel et d'en récupérer les enregistrements par requête ajout ?
78chris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 14h47   #3
Futur Membre du Club
 
Inscription : janvier 2008
Messages : 304
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 304
Points : 18
Points : 18
y-a-t-il un exemple ? l'idée est de transférer un export automatiquement une ou plusireurs feuilles excel
Debutant10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 21h25   #4
Membre émérite
 
Conseil + Formation
Inscription : février 2010
Messages : 583
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Conseil + Formation

Informations forums :
Inscription : février 2010
Messages : 583
Points : 885
Points : 885
Bonjour

Regarde déjà manuellement :
données externes, lier une table et tu indiques ton fichier Excel et l'onglet souhaité
puis requête d'ajout de cette table liée vers la table cible où tu indiques la correspondance des champs : quelle colonne Excel alimente quel champ de la table.

Après, pour plusieurs tables, il suffit de chaîner tes requêtes dans une macro pour automatiser : rien de plus si le classeur Excel ne change pas de nom ou de place.
78chris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2011, 18h15   #5
Futur Membre du Club
 
Inscription : janvier 2008
Messages : 304
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 304
Points : 18
Points : 18
re bonjour merci pour l'aiguillage, j'ai essayé mais celà fonctionne pas très bien manuellement, pas très habituer à cette methode, je souhaiterais si possible trouver la solution via VBA, au lieu de renommer les champs qui figure dans la 1 ère solution cité -dessus qui nécessite d 'enregistrer à chaque fois le fichier excel ect.... trop long . Je souhaterais tout simplement faire un import à partir de de la ligne 2 du fichier excel : c'est à dire importer 5 colonnes sans l'entête à partir de la ligne 2 , soit de A2: E11000 vers les 5 champs de ma table access : [champ 1] à [champ 5] tout simplement, comment transférer ? colonne1 vers champ 1 etc..
si vous pouvez m'aiguiller merci d'avance
Debutant10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2011, 23h29   #6
Membre émérite
 
Conseil + Formation
Inscription : février 2010
Messages : 583
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Conseil + Formation

Informations forums :
Inscription : février 2010
Messages : 583
Points : 885
Points : 885
Bonjour

Il n'y a normalement pas besoin de renommer quoi que ce soit dans le fichier excel : c'est la requête ajout qui permet de préciser que telle colonne Excel correspond à tel champ Access d'un simple clic.
78chris est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h26.


 
 
 
 
Partenaires

Hébergement Web