[Excel>Access] exportation

samgdel -  
 gan -
Bonjour,
je dois modifier un fichier type Excel pour que certaines cellules du fichier soient envoyées sur une base access (si possible avec un bouton dans excel), ces cellules sont tjs les memes.

J'arrive à faire cette opération a partir d Access (DoCmd.TransferSpreadsheet acImport...) mais j'aimerais que la manipulation se fasse a partir d'Excel.

Quelqu'un aurait un exemple de code qui pourrait ressembler à ce que je cherche?

Merci
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour
    Voir ce lien mais comme tu ne dit pas le type de BD ?
    A+
    0
    1. samgdel
       
      je ne vois pas trop ce que je peux dire de plus...
      C une base Access .mdb , que je vais créer spécialement pour stocker toutes les informations au même endroit et pouvoir ensuite éxécuter des requetes.
      0
      1. lermite222 Messages postés 9042 Statut Contributeur 1 199 > samgdel
         
        Alors le lien que je t'ai communiqué est tout à fait ce qu'il te faut.
        0
      2. samgdel > lermite222 Messages postés 9042 Statut Contributeur
         
        Voici le code que j'ai inséré dans un module global, avec en gras mes modifications, il m'indique une erreur erreur sur le count (soulginé) "erreur de compilation : constante requise" . D'ou vient le problème? et ce que j'aurais fait une mauvaise manipulation?
        Merci

        Sub CopieDBaccess()
        Dim BDexp As Database
        Dim Table As Recordset
        Dim TbDef As TableDef
        Dim Ch As String, Lig As Long, i As Integer
        Ch = "C:\Documents and Settings\WXPM7312\Desktop\nouvellebase.MDB"
        Set BDexp = DBEngine.Workspaces(0).OpenDatabase(Ch)
        Set Table = BDexp.OpenRecordset("Essai", dbOpenDynaset)
        Set TbDef = BDexp.TableDefs("Essai")
        Lig = 3
        dim Nom(TbDef.Fields.Count - 1) As String
        With Sheets("abc")
        For i = 0 To TbDef.Fields.Count - 1
        Nom(i) = TbDef.Fields(i).Name
        .Cells(Lig, i + 3) = Nom(i)
        Next
        Table.MoveFirst
        Lig = 4
        While Not Table.EOF
        For i = 0 To TbDef.Fields.Count - 1
        .Cells(Lig, i + 3) = Table(Nom(i))
        Next i
        Lig = Lig + 1
        Table.MoveNext
        Wend
        End With
        Table.Close
        BDexp.Close
        Set BDexp = Nothing
        Set Table = Nothing

        End Sub
        0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Tu dois d'abord déclarer le tableau..
    Dim Nom() As String
    ...
    ...
    Redim Nom(TbDef.Fields.Count - 1)

    A+
    0