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 :

Macro qui récupère des données dans des fichiers protégés


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Macro qui récupère des données dans des fichiers protégés
    Bonjour,

    Suite à mon premier topic ici (encore merci BrunoM45 pour ton aide), je reviens avec une nouvelle question afin d'améliorer ma macro 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    ' Fonction ADODB pour 2010
    Function LireCellule_ClasseurFerme( _
            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.ACE.OLEDB.12.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
    Cette fonction sert à aller récupérer des données dans un autre classeur à l'aide de 4 variables à savoir : le chemin où se trouve le fichier, le nom du fichier, le nom de la feuille de calcul et l'emplacement de la cellule.

    J'utilise cette fonction pour aller récupérer un ensemble d'informations situées dans différents classeurs. Cependant, ces classeurs sont protégés par un mot de passe qui empêche la macro de fonctionner.

    J'aurais donc aimé savoir comment compléter ma macro afin que celle-ci puisse ouvrir les fichiers protégés (a priori, tous les fichiers ont le même mdp) sans supprimer la protection.

    Merci d'avance pour votre aide.

    A bientôt !

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Donc la méthode "Open" tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filename:="mon_nom", Password:="mon_pw"
    Tente d'y insérer ton mdp.

    Je sais que ca fonctionne pour un workbook mais je ne sais pas si cela fonctionnera pour ton cas particlier.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open Filename:="mon_nom", Password:="mon_pw"
    Tiens moi au courant !
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour Kimy_Ire, merci de ton aide.

    Le problème ici c'est que ma fonction n'ouvre pas un fichier en particulier mais un fichier dicté par une variable de la fonction.

    Du coup, je ne vois pas où/comment insérer ton bout de code à ma macro...

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Personne d'autre pour me donner un peu d'aide ?

  5. #5
    Membre éprouvé

    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
    Points : 1 114
    Points
    1 114
    Par défaut
    Bonjour

    Lu ici
    http://silkyroad.developpez.com/VBA/...ursFermes/#LII

    ..."Il n'est pas possible d'utiliser un classeur protégé par un mot de passe."...

    Désolé
    Michel_M

Discussions similaires

  1. [Débutant] tracer des courbes avec des données dans plusieurs fichiers
    Par adila34 dans le forum MATLAB
    Réponses: 4
    Dernier message: 12/06/2015, 20h51
  2. [XL-2010] Pb Macro pour ouvrir un fichier Word et copier des données dans des signets
    Par MPRIBOM dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/10/2014, 14h00
  3. Réponses: 5
    Dernier message: 23/05/2014, 13h09
  4. Réponses: 5
    Dernier message: 05/12/2008, 15h23
  5. Temps d'accès à des données dans un fichier
    Par TONIAPEL dans le forum Assembleur
    Réponses: 5
    Dernier message: 28/09/2003, 15h21

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