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 :

Erreur Automation (ADODB) [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Par défaut Erreur Automation (ADODB)
    Bonjour,

    J'ai cherché partout la solution à mon erreur mais je n'ai pas trouvé et j'ai tout essayé.
    Je tente de me connecter d'un fichier Excel 2013 à un autre fichier Excel 2013 avec la connexion ADODB, seulement je n'y arrive pas même en ayant pris exemple sur d'autre post.
    Je voudrais bien quelque explication afin de plus faire d'erreur si possible et si vous avez une solution ça m'aiderais beaucoup aussi.

    Ma fonction doit récupérer la fonction d'un utilisateur grâce à son ID de session envoyé en paramètre.

    Mon code ressemble à ça :
    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
    Sub RecupService(login As String)
     
        Dim cn As ADODB.Connection
        Dim rst As ADODB.Recordset
        Dim chemin As String
        Dim texte_SQL As String
        Dim Fichier As String
     
        Fichier = "BaseAnomalies_v2.0.xlsx"
        chemin = "C:\WINDOWS\Temp\BaseAnomalies_v2.0.xlsx"
        Set cn = New ADODB.Connection
     
        With cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Data Source=" & Fichier & ";Extended Properties=Excel 12.0;"
            .Open
        End With
     
        texte_SQL = "SELECT * FROM [Utilisateurs$]"
     
        Set rst = New ADODB.Recordset
        Set rst = cn.Execute(texte_SQL)
     
        Sheets(7).Activate
        Range("C2").CopyFromRecordset rst
     
        cn.Close
        Set cn = Nothing
     
    End Sub
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    .ConnectionString = "Data Source=" & chemin & ";Extended Properties=Excel 12.0;"
     
    rst.open texte_SQL,cn

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    .ConnectionString = "Data Source=" & chemin & ";Extended Properties=Excel 12.0;"
     
    rst.open texte_SQL,cn
    Merci mais erreur persiste, j’avais oublié de dire elle arrive lors de l'ouverture de ma connexion à la base de données.

  4. #4
    Invité
    Invité(e)
    Par défaut
    regarde ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Cnx As Object
    Public Const Feuille = "BASE_DE_DONNEES$"
    Public Const Fichier = "C:\Users\Robert\Desktop\Fichier_Arrivé.xlsx"
    Sub OpenConnexion(Fichier)
        Set Cnx = CreateObject("ADODB.Connection")
        With Cnx
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
            .Open
        End With
    End Sub

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Par défaut
    Merci beaucoup, pour la connexion c'est bon ça marche maintenant ça bloque sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rst.Open texte_SQL, cn
    Voilà où je l'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim rst As ADODB.Recordset
    texte_SQL = "SELECT * FROM [Utilisateurs$]"
    Set rst = New ADODB.Recordset
    rst.Open texte_SQL, cn

  6. #6
    Invité
    Invité(e)
    Par défaut
    Tes colonnes dans ta table utilisateurs commance bien en ligne A1?

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Tes colonnes dans ta table utilisateurs commance bien en ligne A1?
    En A1 j'ai le nom du champs je doit le mettre pour renommer la colonne entière c'est ça ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Si ton tableau ne commance pas en A1 il faut donner la plage dans ta requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    from [utilisateur$!a5:z150]

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Par défaut
    J'ai changé ma table Utilisateurs afin qu'elle commence en A1 et l'erreur est toujours là je ne sais pas pourquoi.
    j'ai essayer de crée le record set de la même manière que la connexion mais ça ne change pas.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tu es sur qu'il n'y a pas d'espace dans le nom ta feuille?
    [Utilisateurs $]

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Par défaut
    Effectivement je viens de voir qu'il y avais un espace devant le nom de la feuille sur le fichier. Cela marche parfaitement merci j'aurais une dernière question si je ne veux récupérer qu'une seule colonne comment je doit l'appeler dans ma requête ?

  12. #12
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texte_SQL = "SELECT  [Toto],[Bibi] FROM [Utilisateurs$] where [titi]='Bof';"

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Par défaut
    Je passe mon sujet en résolu car ce problème n’apparaît plus, mais je n'arrive pas à récupérer une seule colonne.
    Entre les [] il faut juste mettre le nom de la range, ou colonne, de la recherche ?

  14. #14
    Invité
    Invité(e)
    Par défaut
    l'entête de la colonne ligne 1 [A1]=Toto; [B1]=Bibi;[C1]=Titi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    texte_SQL = "SELECT  [Toto],[Bibi] FROM [Utilisateurs$] where [titi]='Bof';"

  15. #15
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 16
    Par défaut
    C'est bon j'ai compris et réussi à le faire merci beaucoup ça marche comme il faut maintenant!

    Voici mon code pour ceux qui passe par là :
    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
     
    Public login As String
    Public Connexion As Object
    Public Const Fichier = "C:\WINDOWS\Temp\BaseAnomalies_v2.0.xlsx"
    Public Const users = "Utilisateurs$"
     
    Sub OpenConnexion(Fichier)
        Set Connexion = CreateObject("ADODB.Connection")
        With Connexion
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
            .Open
        End With
    End Sub
     
    Sub RecupService(login As String)
     
        Dim rst As Object
        Dim texte_SQL As String
     
        Set rst = CreateObject("ADODB.Recordset")
        OpenConnexion (Fichier)
     
        texte_SQL = "SELECT [Service] FROM [" & users & "] WHERE [Login] = '" & login & "';"
     
        rst.Open texte_SQL, Connexion
     
        Sheets(7).Activate
        Range("C2").CopyFromRecordset rst
     
        Connexion.Close
        Set Connexion = Nothing
     
    End Sub

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

Discussions similaires

  1. [VBA-E]erreur automation
    Par bernard38 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 02/08/2023, 15h48
  2. erreur automation : l'objet..
    Par nath-0-0 dans le forum Access
    Réponses: 3
    Dernier message: 08/09/2006, 16h51
  3. [VBA-E]Erreur automation
    Par bernard38 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2006, 09h22
  4. [VBA-E] Erreur automation
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 07/04/2006, 15h02
  5. [VBA-E]Erreur Automation en faisant du multicasting
    Par GnarlyYoyo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/04/2006, 13h29

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