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 :

Appel d'Access depuis Excel 2010.


Sujet :

Macros et VBA Excel

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut Appel d'Access depuis Excel 2010.
    Bonjour,

    Nous avons des macros VBA Excel qui ne fonctionnent plus depuis notre passage à Excel 2010 et j'essaye de les réparer. Le code suivant en particulier est problématique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Aapp As Access.Application
    Set Aapp = CreateObject("Access.application")
    J'obtiens en effet l'erreur "Erreur de compilation:Type défini par l'utilisateur non défini" sur la première ligne.

    J'ai essayé de copier le fichier MSACC.OLB depuis un autre poste (je ne l'ai pas trouvé dans C:\Program Files\Microsoft Office\Office14\) et de l'ajouter aux références, mais ça n'a fait que changer l'erreur en "Erreur d'exécution '429':Un composant ActiveX ne peut pas créer d'objet" sur la deuxième ligne.

    Je n'ai pas trouvé MSACC.OLB dans C:\Program Files\Microsoft Office\Office14\.

    Quelqu'un sait-il comment faire pour utiliser Access.Application depuis Excel 2010, où quel est son équivalent si il a été remplacé?

    Doit-on avoir Access installé pour pouvoir utiliser Access.Application? Par ailleurs, plus loin se trouve la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Aapp.OpenCurrentDatabase ("c:\temp\" & tmp & ".mdb")
    A-t-on besoin d'Access pour exécuter cette ligne?

    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 345
    Points : 539
    Points
    539
    Par défaut
    Bonjour,

    Oui, pour utiliser Access depuis XL, il faut avoir Access.

    Cordialement

    ctac

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Par contre, pas besoin pour utiliser le DAO ou ADO. Ils permettent de faire des requetes de DB via excel.

    (developpez.net a d'excelents tuto là dessus)

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 107
    Points : 262
    Points
    262
    Par défaut
    J'utilise EXCEL 2010 sans ACCESS.

    Ce code marche sans probleme.

    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
    45
    46
    47
    48
    Private Sub AffichLstFactures()
        Dim WS              As Worksheet
        Dim i               As Long
        Dim Connexion       As New ADODB.Connection
        Dim rs              As New ADODB.Recordset
        Dim Req             As String
     
        If SheetExists("MFactures") Then
            Application.DisplayAlerts = False
            ThisWorkbook.Worksheets("MFactures").Delete
            Application.DisplayAlerts = True
        End If
     
        Set WS = ThisWorkbook.Worksheets.Add
        WS.Name = "MFactures"
     
        Connexion.Open "DSN=MS Access Database;DBQ=M:\commun\DIMITRI\BDD\BASE1.mdb;"
     
        Req = Req + "SELECT Ventes.Code_Vente, Ventes.DateVente, Nom, Prénom,  Total "
        Req = Req + "FROM Personnes INNER JOIN "
        Req = Req + "("
        Req = Req + "SELECT *"
        Req = Req + "FROM Ventes LEFT JOIN "
        Req = Req + "("
        Req = Req + "SELECT  Code_Vente , SUM(TotalLigne) AS Total "
        Req = Req + "FROM LigneVentes "
        Req = Req + "GROUP BY Code_Vente"
        Req = Req + ") "
        Req = Req + "AS NewTable ON NewTable.Code_Vente = Ventes.Code_Vente "
        Req = Req + "ORDER BY Ventes.DateVente ASC"
        Req = Req + ") "
        Req = Req + "AS NewTable2 ON Personnes.Code_Personne = NewTable2.Code_Personne"
     
     
        Set rs = Connexion.Execute(Req)
     
        With WS
            .Cells(2, 1).CopyFromRecordset rs
            For i = 2 To Fin(WS)
                .Cells(i, 2).NumberFormat = "DD/MM/YYYY"
                .Cells(i, 3) = RTrim(.Cells(i, 3))
                .Cells(i, 4) = RTrim(.Cells(i, 4))
                .Cells(i, 5) = Cdbl(Cells(i, 5))
            Next i
        End With
        Connexion.Close
        Set Connexion = Nothing
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1
    Msgbox "Quelle est la différence entre un corbeau ?", vbQuestion
    goto 1

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut
    Merci pour vos réponses, j'ai demandé un poste avec Access et ça marche.

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

Discussions similaires

  1. [AC-2010] Renseigner un champ Liste de choix dans Access depuis Excel 2010
    Par polemos dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2014, 16h07
  2. [XL-2007] appeller requete Access depuis Excel
    Par jjdkh dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2009, 19h09
  3. [VBA-E] Appel macro Access depuis Excel en mode silencieux
    Par lordkoko dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2006, 10h12
  4. Impossible d'ouvrir une base Access depuis Excel
    Par vciofolo dans le forum Access
    Réponses: 8
    Dernier message: 14/12/2005, 12h09
  5. Renseigner un formulaire Access depuis Excel
    Par vciofolo dans le forum Access
    Réponses: 6
    Dernier message: 30/09/2005, 11h12

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