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 22/04/2011, 19h21   #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 importer des données excel en VBA à partir de la ligne 2 d’une colonne excel vers un [champ] table access

Bonjour, j’aimerai savoir comment importer des données en VBA à partir de la ligne 2 d’une colonne excel vers un [champ] d’une table access déjà existant :
EXEMPLE : dire en VBA de la ligne 2 colonne A --> excel A2 : A10000 VERS Le champ access [champs 1]
dire en VBA de la ligne 2 colonne B --> excel B2 : B10000 VERS Le champ access [champs 2] etc.. pour 50 colonnes
j'ai essayé avec la commande ci-dessous cela fonctionne presque :

Code :
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, strTable, strChemin, blnNoms, strFeuille & "!A2:A1000"  ‘ le pb ici access
importe le champ A1 et la plage A2 à A10000[/code]Comment faire uniquement la délimitation et le transfert vers un champ existant sans importer la ligne 1 sans les champs du fichier excel car les champs sont déjà existants, merci pour votre aide
Debutant10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2011, 09h55   #2
Membre régulier
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 81
Points : 81
Bonjour,

Je ne maîtrise pas trés bien les imports depuis Excel mais si tu ne trouves pas la réponse directe ceci pourrait être un plan "B" :

Cas 1 : attacher la feuille excel et extraire par requete les info qui t'interesse pour mettre à jour ta table

Cas 2 : importer la feuille selon ton code mais en donnant un nom de table intermédiaire. Ensuite utilise la table intermédiaire, ainsi crée, pour mettre à jour la table principale (c'est tordu mais ça peut marcher)
JeanYves70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2011, 21h05   #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
merci pour le coup de main , mais comment faire avec le cas n 2 merci
Debutant10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 09h08   #4
Membre régulier
 
Inscription : novembre 2010
Messages : 101
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 101
Points : 81
Points : 81
Bonjour,

L'exemple ci dessous est un extrait de l'aide en ligne ACCESS

Code :
1
2
3
4
 
'Cet exemple importe les données d'une plage spécifiée provenant du fichier Newemps.wk3 Lotus dans la table Employees Microsoft Access. Il utilise la première ligne de la feuille de calcul pour les noms des champs
 
DoCmd.TransferSpreadsheet acImport, 3, "Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"
Pour le cas 2 "Employees" (c'est le strTable de ton exemple)pourrait être une table "MaTableIntermediaire" que tu crées au préalable et que tu vides avant de faire l'importation.
JeanYves70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2011, 10h00   #5
Membre actif
 
Homme Dominique
Gestion parc machine, assistance informatique, développement Access, Excel...
Inscription : février 2007
Messages : 130
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 56
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Gestion parc machine, assistance informatique, développement Access, Excel...
Secteur : Service public

Informations forums :
Inscription : février 2007
Messages : 130
Points : 161
Points : 161
Bonjour.
A mon avis, le cas N°2 rajoute une complexité inutile.
Le simple fait d'attacher le fichier Excel fait que l'on peut le traiter comme une table et en extraire les données voulues avec une ou plusieurs requêtes.
Je suggère aussi une approche automation ou l'on ouvre le fichier excel avant de recopier une à une les cellules voulues
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  Dim xlApp As Excel.Application
  Dim xlSheet As Excel.Worksheet
  Dim xlBook As Excel.Workbook
  Dim ValCel As String
  Dim i As Integer
 
  'Ouvrir Excel
  Set xlApp = CreateObject("Excel.Application")
 
  'Rendre Excel visible (non obligatoire mais utile pour le déboguage) - Fonctionne
  xlApp.Visible = True
 
  'Ouvrir le classeur - Fonctionne
  Set xlBook = xlApp.Workbooks.Open(Chemin & Fichier)
 
  'Sélectionner la feuille "Test"
   Set xlSheet = xlBook.Sheets("Test")
 
  'Afficher la feuille "Test" (non obligatoire mais utile pour le déboguage)
  xlApp.Sheets("Test").Select
 
  For i = 2 To 10 'Mettre ici une variable correspondant au nombre de cellules à copier
    ValCel = xlSheet.Range("A" & Right$(Str$(i), Len(Str$(i)) - 1)).Value
    'Inserer ici le code pour l'ajout de la valeur dans la table
  Next i
 
  'Fermer les objets
  xlApp.Quit
  Set xlSheet = Nothing
  Set xlBook = Nothing
  Set xlApp = Nothing
Cordialement, Dominique.
PapouDomi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2011, 22h12   #6
Futur Membre du Club
 
Inscription : janvier 2008
Messages : 304
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 304
Points : 18
Points : 18
merci
Debutant10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 08h40   #7
Expert Confirmé
 
Avatar de Godzestla
 
Homme
Chercheur de bonheur
Inscription : août 2007
Messages : 2 255
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de bonheur
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 2 255
Points : 2 979
Points : 2 979
Bonjour,

il y a également comme toujours des infos à glaner dans la FAQ, par exemple ici
__________________
(\ _ /) Cordialement G@dz
(='.'=)

(")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h07.


 
 
 
 
Partenaires

Hébergement Web