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

VBA Access Discussion :

Copier Cellules excel et coller par ajout dans une table access


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 70
    Points : 47
    Points
    47
    Par défaut Copier Cellules excel et coller par ajout dans une table access
    Bonjour,

    je souhaite créer du code VBA sous access afin de copier une plage de cellule d'un fichier excel et le coller par ajout dans une table prédéfinit sous access.

    manuellement cela marche mais vu que c'est un traitement quotien je souhaite l'automatiser pour cela j'ai commencé par ce code mais il me manque des choses que je n'arrive pas à les faires

    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
    Private Sub Commande21_Click()
    On Error GoTo Err_Commande21_Click
     
    Dim MaBase As DAO.Database
    Dim Matable As DAO.Recordset
     
    Call OpenFile("S:\")
    CheminFile = Dialogue.lpstrFile
     
    'Défini le nom de votre fichier Excel
    MonFichier = Dir(CheminFile) '"nomdevotrefichier.xls"
     
    'Ouvre l'application Excel
    Set MonXL = CreateObject("Excel.Application") 'Ceci initialise la
    Set MaBase = CurrentDb()
    Set Matable = MaBase.OpenRecordset("tbl_Transmis")
     
    'Ouvre MonFichier
    MonXL.Workbooks.Open FileName:=CheminFile  
    Matable![T3SE- identabonne] = MonXL.Range("B3:B194").Value
    Exit_Commande21_Click:
    Exit Sub
     
    Err_Commande21_Click:
    MsgBox Err.Description
    Resume Exit_Commande21_Click
     
    End Sub
    je veux que se code me permet de copier les cellules B3:F & fin du fichier et les coller par ajout dans la table Tbl_transmis

    merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 56
    Points : 53
    Points
    53
    Par défaut
    Voici une proposition de code, à adapter:

    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
    Dim oApp As Excel.Application
    Dim oWkb As Excel.Workbook
    Dim oWSht As Excel.Worksheet
    Set oApp = CreateObject("excel.application")
    Set oWkb = oApp.Workbooks.Open(cheminVersTonFichier)
    Set oWSht = oWkb.Worksheets(1) 'ouvre le premier onglet
     
    'Désactive les messages lors de l'ajout
    DoCmd.SetWarnings False
     
    'Cherche la dernière ligne de la colonne B
    Dim derLigne As Long
    derLigne = oWSht.Range("B65536").End(xlUp).Row
     
    Dim i As Integer
    for i=3 to derLigne
         'Penser à retirer les simples guillemets ' ' s'il s'agit d'un Entier à insérer :
         DoCmd.RunSQL "INSERT INTO tbl_Transmis(T3SE- identabonne) VALUES('" & oWSht.Cells(2,i).Value & "')"
    next i
     
    DoCmd.SetWarnings True
    oWkb.Close savechanges:=False
    oApp.Quit
    Set oApp = Nothing
    Set oWkb = Nothing
    Set oWSht = Nothing
    La fonction ci dessus effectue une boucle de 3 à derLigne et insert dans ta table la valeur de la deuxième colonne, ième ligne, à chaque itération.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 70
    Points : 47
    Points
    47
    Par défaut
    salut,

    j'ai tester mais au niveau des déclaration il me renvoi une erreur:
    Type défini par l'utilisateur non définit
    je pense qu'il faut que j'active la reference
    Pourriez vous me dire c'est quoi le nom de la réference sous acces pour utiliser excel.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 70
    Points : 47
    Points
    47
    Par défaut
    j'ai un souci,j'arrive à recuprer les variables mais au niveau de ma requête elle prend pas en compte les variable déja défini et me demande de les saisir à la main
    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
    Dim oApp As Excel.Application
    Dim oWkb As Excel.Workbook
    Dim oWSht As Excel.Worksheet
    Dim derLigne As Long
    Dim i As Long
    Dim CheminFile As String
    Dim mavar1 As String, mavar2 As String, mavar3 As Long, mavar4 As String, mavar5 As Date
     
     
    Call OpenFile("S:\")
    CheminFile = Dialogue.lpstrFile
     
    Set oApp = CreateObject("Excel.Application")
    Set oWkb = oApp.Workbooks.Open(CheminFile)
    Set oWSht = oWkb.Worksheets(1) 'ouvre le premier onglet
     
    'Désactive les messages lors de l'ajout
    DoCmd.SetWarnings False
     
    'Cherche la dernière ligne de la colonne B
    derLigne = oWSht.Range("B65536").End(xlUp).Row
     
    For i = 3 To derLigne
    mavar1 = oWSht.Cells(i, 2).Value
    mavar2 = oWSht.Cells(i, 3).Value
    mavar2 = SupprimeEsp(mavar2)
    mavar3 = oWSht.Cells(i, 4).Value
    mavar4 = oWSht.Cells(i, 5).Value
    mavar5 = oWSht.Cells(i, 6).Value
    DoCmd.RunSQL "INSERT INTO tbl_Rib_Transmis([T3SE- identabonne],[T3SE- argument],[EN-N],[T3SE- code],[T3SE- date creation service])VALUES(mavar1, mavar2,mavar3,mavar4,mavar5)"
     
    Next i
     
    DoCmd.SetWarnings True
    oWkb.Close savechanges:=False
    oApp.Quit
    Set oApp = Nothing
    Set oWkb = Nothing
    Set oWSht = Nothing
    quelqu'un pourrai me dire pourquoi?

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 265
    Points : 19 434
    Points
    19 434
    Billets dans le blog
    63
    Par défaut
    Salut,

    Il faut mettre les noms des variables à l'extérieur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO tbl_Rib_Transmis([T3SE- identabonne],[T3SE- argument],[EN-N],[T3SE- code],[T3SE- date creation service])VALUES('" & mavar1 & "','" & mavar2 & "','" & mavar3 & "','" & mavar4 & "',#" & Format$(mavar5, "mm/dd/yyyy") &"#)"

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Outil VBA sur ArcGis : Copier/coller les lignes dans une table attributaire
    Par Alexiis dans le forum SIG : Système d'information Géographique
    Réponses: 2
    Dernier message: 26/09/2013, 16h15
  2. Réponses: 1
    Dernier message: 15/06/2009, 18h46
  3. ajout dans une table access
    Par k_boy dans le forum MFC
    Réponses: 6
    Dernier message: 05/10/2007, 19h00
  4. Réponses: 12
    Dernier message: 28/07/2006, 16h16
  5. Valeur par défaut dans une table objet
    Par Ricky81 dans le forum Oracle
    Réponses: 12
    Dernier message: 18/03/2004, 11h52

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