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 :

liaison avec un fichier fermé fichier xlsm ne fonctionne pas [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut liaison avec un fichier fermé fichier xlsm ne fonctionne pas
    Bonsoir,

    J'ai trouvé un code vba afin de lire dans un fichier fermé, mais il ne fonctionne pas sauf si le fichier est ouvert
    Voici mon code vba:
    J'ai activé Microsoft activeX Data Objects 6.1 Library
    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
    Function LireCellule_Classeur( _
            Chemin As String, _
            Fichier As String, _
            Feuille As String, _
            Cellule As Variant) As Variant
     
        Application.Volatile
     
        Dim Source As Object, Rst As Object, ADOCommand As Object
        Dim Cible As String
     
        Feuille = Feuille & "$"
        Cible = Cellule.Address(0, 0, xlA1, 0) & ":" & _
            Cellule.Address(0, 0, xlA1, 0)
     
        Set Source = CreateObject("ADODB.Connection")
        Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Chemin & "\" & Fichier & _
            ";Extended Properties=""Excel 12.0;HDR=No;"";"
     
        Set ADOCommand = CreateObject("ADODB.Command")
        With ADOCommand
            .ActiveConnection = Source
            .CommandText = "SELECT * FROM [" & Feuille & Cible & "]"
        End With
     
        Set Rst = CreateObject("ADODB.Recordset")
        '1 = adOpenKeyset, 3 = adLockOptimistic
        Rst.Open ADOCommand, , 1, 3
        Set Rst = Source.Execute("[" & Feuille & Cible & "]")
     
        LireCellule_ClasseurFerme = Rst(0).Value
     
        Rst.Close
        Source.Close
        Set Source = Nothing
        Set Rst = Nothing
        Set ADOCommand = Nothing
    End Function
    Puis dans une cellule j 'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =LireCellule_ClasseurFerme(A1;A2;C8;M36)
    a1 est le chemin
    A2 est le nom du fichier
    C8 est le nom de la feuille
    M36 est la cellule

    Ca me marque#valeur.

    Pouvez vous me venir en aide
    Merci bonne soirée

    sebing

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Il faut remplacer "Microsoft.Jet.OLEDB.4.0" par "Microsoft.ACE.OLEDB.12.0" pour le fournisseur car Jet est déprécié. Il est utilisé à des fins de compatibilité (uniquement pour les versions antérieur à Office 2007). Le moteur ACE est 100% retro-compatible avec JET sinon.

    Egalement, il faut remplacer Function LireCellule_Classeur par Function LireCellule_ClasseurFerme.

    Puis dans la cellule:
    =LireCellule_ClasseurFerme("C:";"Test v1.0.xlsx";"Feuil1";A1)

    Ça semble bizarre pour le dossier + fichier, mais la fonction semble être faite comme ça (et j'ai pas cherché à la modifier). Elle marche tel quel.

  3. #3
    Membre éclairé
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Par défaut
    Bonjour,

    Merci de l'aide apportée, ça fonctionne
    Mais lorsque le fichier est ouvert ça ne fonctionne plus a les méandres d'Excel.

    bonne journée

    sebing

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

Discussions similaires

  1. Le fichier externe des scripts ne fonctionne pas
    Par Jean Sympa dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/04/2015, 10h34
  2. [1.x] fichier symfony en racine ne fonctionne pas
    Par erictomcat dans le forum Symfony
    Réponses: 6
    Dernier message: 11/07/2012, 11h48
  3. [AC-2007] Liaison avec ma base SQL qui ne se mémorise pas
    Par tibofo dans le forum IHM
    Réponses: 5
    Dernier message: 19/03/2011, 16h06
  4. [1.x] Fichier routing.yml qui ne fonctionne pas ?
    Par karlito40 dans le forum Symfony
    Réponses: 3
    Dernier message: 29/08/2010, 22h24
  5. Réponses: 4
    Dernier message: 15/05/2007, 11h10

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