IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E]Export données dans table Access


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Points : 56
    Points
    56
    Par défaut [VBA-E]Export données dans table Access
    Bonjour à tous

    Voila je souhaite réaliser une macro dans excel qui permet d'exporter les données d'une feuille de calcul dans une table access.
    Est ce que cela est possible ?
    je n'ai aucune connaissance en VB...
    Pouvez vous m'aider ?
    Merci beaucoup
    A +

  2. #2
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Salut!
    Déjà, une bonne nouvelle: OUI, C'EST POSSIBLE !!!
    Et j'enchaine sur une AUTRE BONNE NOUVELLE: tout est dans les cours et tutoriels de ce site. Explication, exemples...

  3. #3
    Membre du Club Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Points : 56
    Points
    56
    Par défaut
    ok merci

    Je viens de parcourir le tutoriel VB !
    Je n'arrive pas a trouver les explications !!
    Peux tu m'en dire un peu plus
    Merci
    scuse j'ai un peu de mal !

  4. #4
    Membre confirmé Avatar de Diablo_22
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 498
    Points : 490
    Points
    490
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acImport, 8, "Employés","C:\Fichier.xls", True,"
    N'oubliez pas la balise

    est ton ami mais quand Google ne trouve pas quelque choses, il demande à Chuck Norris.

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par Diablo_22
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acImport, 8, "Employés","C:\Fichier.xls", True,"
    Dans Excel, la macro, pas dans Access.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    As-tu vraiment lu ce tuto:

    http://drq.developpez.com/vb/tutoriels/ADO/

    ???

    En VBA, il faut aller dans Outils - Références... pour cocher Microsoft ActiveX Data Objects 2.x Library

    Commence par te connecter à ta base de données.

    Ensuite, il faudra que tu crées un RecordSet qui sera une "image" de ta base.

    Enfin, tu feras une boucle pour parcourir les lignes de ta feuille Excel et les ajouter au RecordSet. C'est cette opération qui va "remplir" ta base.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Membre du Club Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Points : 56
    Points
    56
    Par défaut
    Ok

    Merci beaucoup

    je vais essayer de faire ça...
    Si j'ai des problèmes je te le dis !
    A+

  8. #8
    Membre du Club Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Points : 56
    Points
    56
    Par défaut
    Je reviens à la charge !

    Voila je suis vraiment novice...j'ai fait ce que tu m'as dis avec
    outils -->références-->Microsoft ActiveX Data Objects 2.0 Library ...
    Apres je vais dans créer une nouvelle macro que j'appelle import !
    je tape le copie le code que j'ai trouvé comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub import()
    Set cnx = New ADODB.Connection
     
    'Définition du pilote de connexion
    cnx.Provider = "Microsoft.Jet.Oledb.3.51"
    'Définition de la chaîne de connexion
    cnx.ConnectionString = "S:\Qualité\BDD Qualité\BDD Qualité.mdb"
    'Ouverture de la base de données
    cnx.Open
    End sub
    '==================================================================='
    ' FUNCTION : ExecSQL(...)
    ' DESCRIPTION : Execute une requête SQL
    ' PARAMS : * query : Requête à exécuter
    '          * rst : Variable permettant de stocker les enregistrements
    '==================================================================='
    Public Function ExecSQL(query As String, ByRef rst As ADODB.Recordset, ByRef cnx As ADODB.Connection) As Boolean
     
      'Initialisation du RecordSet
      If rst.State <> adStateClosed Then rst.Close
     
      'Ouvre une transaction pour ne pas à avoir à réaliser de commit en fin de traitement
      ADOCnx.BeginTrans
     
      'Positionne le curseur côté client
      rst.CursorLocation = adUseClient
      'Vérifie que la connexion passée est bonne
      Set rst.ActiveConnection = cnx On Error GoTo ErrHandle
      'Exécute la requête
      rst.Open query, ADOCnx
      'Valide la transaction
      ADOCnx.CommitTrans
      ExecSQL = True
      Exit Function
     
    ErrHandle:
      ExecSQL = False
      MsgBox "ADOManager.ExecSQL:ErrHandle" & vbCr & vbCr & Err.Description, vbCritical
    End Function
     
    End Function
    et lorsque je fais execution j'ai une erreur d'execution 3706 "impossible de trouver le fournisseur il est peu etre mal installé "

    est ce que mon code est correcte ? est ce que ça va me faire ce que je souhaite c'est à dire envoyer les données dans access ?

    Merci de votre aide car je suis vraiment à l'ouest !!

    A+

  9. #9
    Membre du Club Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Points : 56
    Points
    56
    Par défaut
    Je viens de trouver un code (plus simple pour moi) permettant de transferer des données excel vers access mais j'ai toujours un soucis...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Sub WritingWorksheetData_DAO()
     
      Dim Plage As Range
      Dim Array1 As Variant
      Dim x As Variant
      Dim Db1 As Database
      Dim Rs1 As Recordset
     
      ' Ouverture de la base de données Commandes.mdb
      Set Db1 = DBEngine.OpenDatabase(ThisWorkbook.Path & "\BDD Qualité.mdb")
     
      ' Ouverture de la table Factures
      ' Un objet Recordset représente les enregistrements d'une table
      Set Rs1 = Db1.OpenRecordset("produits", dbOpenDynaset)
     
      ' Détermination de la taille de la plage à envoyer vers Access
      Set Plage = Worksheets("DAOSheet").Range("A1").CurrentRegion.Offset(1, 0)
      Set Plage = Plage.Resize(Plage.Rows.Count - 1, Plage.Columns.Count)
      Plage.Select
     
      ' Lecture de la plage pour renvoyer une valeur contenant un tableau
      Array1 = Plage.Value
     
      ' Ecriture des données depuis Excel vers les enregistrement de la table Factures
      For x = 1 To UBound(Array1, 1)
        With Rs1
          .AddNew
          .Fields("sap") = Array1(x, 1)
          .Fields("name") = Array1(x, 2)
          .Fields("surname") = Array1(x, 3)
          .Update
        End With
      Next
     
      ' Fermeture de la base Commandes.mdb
      Db1.Close
     
      ' Effacement des données copiées vers la base (sauf les titres)
      With Selection.CurrentRegion
        Intersect(.Cells, .Offset(1)).Select
      End With
      Selection.ClearContents
     
    End Sub
    j'ai une erreur qui me dit "incompatibilité de type"
    Savez vous de quoi cela provient...
    Merci beaucoup

Discussions similaires

  1. Problème d'import de donnée Excel dans table Access
    Par shakapouet dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/08/2012, 23h12
  2. [XL-2000] Envoi de données dans table ACCESS
    Par spud96 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/05/2010, 16h01
  3. Access/VBA Ajouter des données dans une table !
    Par vto59 dans le forum VBA Access
    Réponses: 10
    Dernier message: 04/06/2009, 15h18
  4. [VBA-E] Tableau Croise Dynamique données dans table access
    Par winner103 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/11/2006, 11h49
  5. Recherche valeur dans table Access
    Par Stefloulou dans le forum Access
    Réponses: 1
    Dernier message: 05/11/2005, 08h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo