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 :

acces Excel en ADO depuis VB


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 41
    Par défaut acces Excel en ADO depuis VB
    Bonjour,
    j'ai un problème vraiment bizarre en essayant d'accéder à un fichier Excel via ADO (écrit en VB).

    Pour démarrer j'ouvre une connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set XlConn = New ADODB.Connection
        XlConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\fic.xls;Extended Properties=""Excel 8.0;HDR=No"";"
    Dès le Open j'ai l'erreur :
    La table externe n'est pas dans le format attendu

    Mais le plus incroyable est que si d'un autre côté j'ouvre le fichier Excel (double-click dans l'explorateur) et que je relance le VB, alors il n'y a plus de problème !!!!!!!!!!!!!!!

    Le problème est systématique et existe sur d'autres machines en reprenant le même projet VB et le même fichier Excel.
    Par contre, le problème n'existe que pour certains fichiers excel.

    Si quelqu'un a une piste ....
    Merci.
    Sergio

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Par défaut
    Bonjour,
    essaies:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Data Source="D:\fic.xls"

  3. #3
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 41
    Par défaut
    merci mais ça ne change rien.
    reste ce comportement incompréhensible qui fait que quand on ouvre le fichier dans excel, il n'y a plus d'erreur !

  4. #4
    Membre chevronné
    Inscrit en
    Janvier 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 483
    Par défaut
    Citation Envoyé par sergio_bzh Voir le message
    Dès le Open j'ai l'erreur :
    La table externe n'est pas dans le format attendu
    Sergio
    Bonsoir

    assure toi bien du sufixe (xls ou xlsx ou xlsm)

    Bonne soirée

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Par défaut Autre méthode d 'accés
    Bonjour,

    Pour ouvrir et lire un fichier excel sous vb , j'utilise sous vb l'objet application.excel pour manipuler les feuilles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    'Déclaration des variables
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
     
    'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open("C:\MonFichierExcel.xls") 
    'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets(1) 
    ' accéder au lignes et cellules
    wsExcel.Cells(10,5)="skflskflmksmlkfsml"
    Et avec ce type d 'approche il n'y a pas de probleme de manière générale

    Bon courage pour la suite

  6. #6
    jpo
    jpo est déconnecté
    Membre éclairé
    Femme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 201
    Par défaut
    ta base est-elle dans la 1° feuille de ton fichier ?
    la 1 ° ligne de ta feuille contient-elle la ligne des champs ?

    salut

    jpo

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     ' Microsoft ActiveX DataObject doit être coché 
    Sub RecupTableurSQL() 
      ChDir ActiveWorkbook.Path
      Dim rs As ADODB.Recordset
      Set cnn = New ADODB.Connection
      cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & ThisWorkbook.Path & "\" & "ADOsource.xls"
      Set rs = cnn.Execute("SELECT nom,Prenom,Salaire FROM MaBD where nom<>''")
      [A2].CopyFromRecordset rs
    End Sub
    JB

  8. #8
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Question bête:
    Comment est créé ce fichier Excel?

    Si je pose cette question, c'est que certains pensent que le seul fait de donner une extension .xls à un quelconque fichier texte, en fait un classeur Excel.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. Réponses: 6
    Dernier message: 31/07/2009, 14h45
  2. Accès à SQL Server 2005 depuis Excel
    Par Franck_P dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/09/2008, 12h34
  3. Réponses: 4
    Dernier message: 15/03/2006, 12h33
  4. [VB.Net] - Acces à Excel depuis VB.Net
    Par toninonino dans le forum Windows Forms
    Réponses: 14
    Dernier message: 30/09/2005, 11h12
  5. Acces a un control depuis une autre classe
    Par schnito dans le forum MFC
    Réponses: 5
    Dernier message: 25/01/2004, 22h14

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