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 :

Code VBA qui fonctionne sous XL 2007 mais ne fonctionne pas sous ACCESS 2003. [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2014
    Messages : 19
    Par défaut Code VBA qui fonctionne sous XL 2007 mais ne fonctionne pas sous ACCESS 2003.
    Bonjour,

    Je ne suis en train de construire une macro, qui doit à partir de ACCESS 2003 , chercher des valeurs dans des xls, pour les importer dans ma database.
    Etant plus familier ( a peu près) avec le XL 2007, j'ai compilé mon code sur celui ci en pensant qu'il était compatible avec ACCESS 2003.

    j'ai testé mon code ci-dessous :

    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
     
    Function cmdOpenExcel_file(Path As String) As Object
    'Application.DisplayAlerts = False
        Dim xls As Excel.Application
        On Error GoTo errHnd
            Set xls = CreateObject("Excel.Application")
                xls.Workbooks.Open Path
                xls.Visible = True
        Exit Function
    errHnd:
            MsgBox "Erreur N° " & Err.Number & vbLf & Err.Description, , Err.Source
    End Function
     
    Sub Call_OpenXlsFile()
     
    Call cmdOpenExcel_file("D:\Users\didier.cheung\Desktop\Reforming test.xls")
     
    End Sub

    Il fonctionne parfaitement sur XL 2007 mais m'affiche une erreur de compilation sur ACS 2003. :/

    Comment ca se fait?

    Merci d'avance de votre retour XLnautes!

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim wb as Object
    set wb = xls.Workbooks.Open("D:\Users\didier.cheung\Desktop\Reforming test.xls")

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2014
    Messages : 19
    Par défaut
    Bonjour rdurupt !

    Merci pour ce code beaucoup plus compact...

    J'ai trouvé un code VBA sous excel pour export des données vers une db,

    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
    Sub test()
        ‘ exports data from the active worksheet to a table in an Access database
        ‘ this procedure must be edited before use
    Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
        ‘ connect to the Access database
    Set cn = New ADODB.Connection
        cn.open “provider = microsoft.ace.oledb.12.0;” & _
    “Data Source=D:\Users\user\Documents\D4R pack\ReliabilityStudies\extdataDataBaseName.mdb;”
        ‘ open a recordset
    Set rs = New ADODB.Recordset
    rs.Open “Table1”, cn, adOpenKeyset, adLockOptimistic, adCmdTable
    ‘ all records in a table
    r = 2 ‘ the start row in the worksheet
    Do While Len(Range(“A” & r).Formula) > 0
    ‘ repeat until first empty cell in column A
    With rs
    .AddNew ‘ create a new record
    ‘ add values to each field in the record
    .Fields(“Field1") = Range(“A” & r).Value
    .Fields(“Field2?) = Range(“B” & r).Value
    .Fields(“FieldNameN”) = Range(“C” & r).Value
    ‘ add more fields if necessary…
    .Update ‘ stores the new record
    End With
    r = r + 1 ‘ next row
    Loop
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
     
    End Sub
    Sauf que celui-ci me spam erreur d'instruction à chaque fois, pourquoi? :s

  4. #4
    Invité
    Invité(e)
    Par défaut
    bonjour,
    je ne comprends pas tu veux travailler avec Excel dans Access ou avec Access dans Excel?

    tu veux insérer tes donnée Excel dans une table Access ou insérer ta table Access dans Excel.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2014
    Messages : 19
    Par défaut
    Oui , en effet, c'était pas très clair, j'ai changé de fusil d'épaule entre temps, je souhaite travailler exporter des données excel vers access , car je suis plus confortable avec le vba d'XL 2007 que ACS 2003.

  6. #6
    Invité
    Invité(e)
    Par défaut
    ton fichier est il enregistré au moment de l'export vers Access?

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

Discussions similaires

  1. [Toutes versions] Code VBA qui fonctionne mal
    Par Eddy95500 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/07/2015, 18h10
  2. [XL-2007] Pb de code VBA qui ne fonctionne plus
    Par rch05 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/02/2011, 07h41
  3. code vba qui fonctionnes plus du jour au lendemain
    Par alexkickstand dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/07/2008, 16h41
  4. Réponses: 2
    Dernier message: 09/06/2006, 14h38

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