Exporter donnée excel dans une BDD Access (avec Table existante)

roidurif

XLDnaute Occasionnel
Bonjour,

Je bloque sur la creation d'une macro simple permettant de se connecter à une BASE DE DONNEE ACCESS pour pouvoir transférer 5 colonnnes sur 90 de mon tableau excel sans biensur ecraser les donnée de la table "Articles_2009" Access.

Il s'agit des cinq colonnes suivantes à transférer :

- Numéro client (en Colonne A) => vers champ "Numéro client"
- Références produits (en Colonne B) => Vers champ "Références"
- Déscriptions (en Colonne D) => vers champ "Déscriptions"
- Barême (en Colonne AB) => vers champ "Barême"
- Prix (en Colonne AH) => Vers champ "Prix HT"
- Date début (en Colonne BB) => vers champ "Date début"

Les articles à exporter sont environs de 10 000 lignes par fichier excel, j'espere que ce rapide lors du transfert.
J'ai ce code, mais il faut que les champs de ta table access porte les meme noms que tes champs excel.

Code:
Sub Export_Donnée()

'permet de controler la ligne où le fichier s'arrete
Range("A1").Select
Selection.End(xlDown).Select
Ligne = Selection.Row

'Défini ma base access et mon fichier excel
Dim MaBase As Object
Dim Fichier As String
Set MaBase = GetObject("Chemin complet de ta base access")
Fichier = ActiveWorkbook.FullName

On Error GoTo Error_Export:
MaBase.DoCmd.TransferSpreadsheet acImport, 8, "Nom de la Table Access", Fichier, True, "A1:X" & Ligne & ""'dans mon cas j'exporte de la cellule A1 à la Cellule X_Ligne

MsgBox "Exportation des données est effectuée correctement.", vbInformation, "Exportation": Exit Sub

'MaBase = Nothing

Error_Export:
MsgBox "Attention, un problème est survenu pendant l'exportation, merci de vérifier les données.", vbExclamation, "ERREUR Exportation": Exit Sub

End Sub

Je vous joins mes fichiers pour votre aide SVP.

Merci
 

Pièces jointes

  • Requete Access-Excel.zip
    22.5 KB · Affichages: 104
  • Requete Access-Excel.zip
    22.5 KB · Affichages: 107
  • Requete Access-Excel.zip
    22.5 KB · Affichages: 110
Dernière édition:

roidurif

XLDnaute Occasionnel
Re : Exporter donnée excel dans une BDD Access (avec Table existante)

Merci MichelXlD,

J'ai lu de haut en bas votre lien et je ne vois toujours pas comment l'adapter à la mienne.

Chez moi il ne s'agit pas de consolider plusieurs fichier Excel en 1 seul, mais de Transférer que certaine colonnes de mon fichier excel dans la BDD access, sans que cela soit lent, et de plus j'aimerais que les données exporté dans table access vienne se rajouté aux autres données.

Si vous pouviez m'aider MichelXld ?

Je vous en serais très reconnaissant.

Cordialement
 

MichelXld

XLDnaute Barbatruc
Re : Exporter donnée excel dans une BDD Access (avec Table existante)

bonsoir

j'espère que cet exemple pourra t'aider :

Code:
Dim Conn As ADODB.Connection
Dim rsT As ADODB.Recordset
Dim maTable As String
Dim i As Long
Dim Cell As Range
 
'Définit la dernière ligne non vide dans la feuille
i = Worksheets("BDD").Range("A65536").End(xlUp).Row
 
'Nom de la table Access
maTable = "Articles_2009"
 
'Connection à la base de données
Set Conn = New ADODB.Connection
With Conn
    .Provider = "Microsoft.JET.OLEDB.4.0"
    .Open "C:\dossier\BDD.mdb"
End With
        
'Création recordest
Set rsT = New ADODB.Recordset
With rsT
    .ActiveConnection = Conn
    .Open maTable, LockType:=adLockOptimistic
End With
    
'Boucle sur les cellules à exporter
For Each Cell In Worksheets("BDD").Range("A2:A" & i)
    'Ajout enregistrement
    With rsT
        .AddNew
        .Fields(0).Value = Cell
        .Fields(1).Value = Cell.Offset(0, 2)
        .Fields(2).Value = Cell.Offset(0, 3)
        .Fields(3).Value = Cell.Offset(0, 27)
        .Fields(4).Value = Cell.Offset(0, 33)
        .Fields(5).Value = Cell.Offset(0, 53)
        .Update
    End With
Next Cell
 
rsT.Close
Conn.Close

bonne soirée
michel
 

roidurif

XLDnaute Occasionnel
Re : Exporter donnée excel dans une BDD Access (avec Table existante)

Bonjour Michel

Vous etes formidable de m'avoir aider, je vous en suis tres reconnaissant. je ne veux pas profiter de votre aide, mais,

Dites, J'ai réaliser une autre macro qui fait l'inverse, c-a-d, aller chercher les données à partir d'excel directement dans access et de les rapatrier en fonction du numéro de clients demandé.

Cela fonctionne, mais je souhaite rajouter en plus une autre fonction de recherche, la possibilité de rapatrier les données en idiquant une date soit à partir de...
ou compris entre De... à...., sans que cela soit obligatoire.
Savez vous comment faire?

Autres chose svp, avez vous un conseil ou une idée à me donner pour comment je dois structruer mon affichage pour obtenir une variation prix (%), des différentes MAJ réf et prix.

Je vous remercie par avance.

Cordialement
 

Pièces jointes

  • Requete Excel-Access.zip
    22.7 KB · Affichages: 81

roidurif

XLDnaute Occasionnel
Re : Exporter donnée excel dans une BDD Access (avec Table existante)

Bonjour Michel,

Savez vous s'il y a la possibilité quand vous exporter des donées vers la table access, on a la possibilité d'obtenir automatiquement une variation prix en %

Je m'explique par un exemple :

La 1ere Mise A Jour, La reference : LE0001 le prix est de 10 euros
La 2eme Mise A jour, La reference : LE0001 le prix est passé à 11 euros

On obtient une variation de prix de + 0.1%

Peut on ontenir cela automatiquement dans une colonne access "Variation prix"

Merci par avance pour l'aide

Cdt
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 959
Membres
103 061
dernier inscrit
Zebor