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 :

déverrouillage d'un classeur fermé


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Pôle Etude et Automatisation
    Inscrit en
    Avril 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pôle Etude et Automatisation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2007
    Messages : 166
    Par défaut déverrouillage d'un classeur fermé
    Bonjour,

    Je verrouille des classeurs par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs FileName:="chemin", PassWord:="motdepasse"
    ces classeurs protégés par mot de passe sont envoyés par mail aux ressources humaines pour traitement. J'emploie des requêtes SQL sur classeurs fermés pour consolider les données reçues.

    Puis je enlever le mot de passe de ces classeurs sans les ouvrir et les refermer afin que ma requete sql s'execute?


    Merci
    Eric

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour

    Peux tu nous en dire plus sur ton code
    J'emploie des requêtes SQL sur classeurs fermés pour consolider les données reçues.

    Sinon tu peux ouvrir le classeur en lecture seule et manipuler les données avec objet workbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim wrk As Workbook
     
    Set wrk = Application.Workbooks.Open("c:\classeur2.xls", , True, , "pwd")

  3. #3
    Membre confirmé
    Profil pro
    Pôle Etude et Automatisation
    Inscrit en
    Avril 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pôle Etude et Automatisation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2007
    Messages : 166
    Par défaut
    Bonjour voici la requete que j'utilise pour récupérer les données des différents classeurs centralisés. Tout se passe en invisible, les utilsateurs ne voient aucune feuille de calcul excel. Il ne travaille qu'avec un assistant (plusieurs userform sous excel)

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    Private Sub Label1_Click()
     
        Dim DossierSource As String
     
        DossierSource = "C:\dossier\.....\A traiter"
     
        ListeFichiers DossierSource
     
    End Sub
     
    Sub ListeFichiers(Repertoire As String)
     
        Dim NomLong As String
        Dim fso As Scripting.FileSystemObject
        Dim SourceFolder As Scripting.Folder
        Dim FileItem As Scripting.File
        Dim i As Long
        Dim SqlQuery As String
        Dim Cel As String
        Dim ReqSql As String
        Dim DossierDest As String
     
     
     
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set SourceFolder = fso.GetFolder(Repertoire)
     
        DossierDest = "C:\dossier\.....\traiter"
     
     
        'Boucle sur tous les fichiers du répertoire
     
        For Each FileItem In SourceFolder.Files
     
            i = Range("A65536").End(xlUp).Row + 1
     
            Cel = "A" & i
     
            'Récupére le nom long du fichier
     
            NomLong = FileItem.Path
     
            SqlQuery = "ODBC;DSN=Fichiers Excel;DBQ=" & NomLong & ";DefaultDir=" & Repertoire & ";DriverId=790;MaxBufferSize=2048;"
     
     
            CalculAnMois
     
     
            ReqSql = "SELECT * FROM [base_de_donnees]WHERE Annee=" & VarAn & " and Mois=" & VarMois
     
            With ActiveSheet.QueryTables.Add(Connection:=Array(Array(SqlQuery), Array("PageTimeout=5;")), Destination:=Range(Cel))
                .Sql = Array(ReqSql)
                .FieldNames = False
                .RefreshStyle = xlInsertDeleteCells
                .RowNumbers = False
                .FillAdjacentFormulas = True
                .RefreshOnFileOpen = True
                .HasAutoFormat = True
                .BackgroundQuery = True
                .TablesOnlyFromHTML = True
                .Refresh BackgroundQuery:=False
            End With
     
            Tempo
     
            DeleteAllQueryTables
     
            fso.MoveFile NomLong, DossierDest & "\"
     
     
        Next FileItem
     
        Dim NomDonne As Name
     
        For Each NomDonne In Names
     
            NomDonne.Delete
     
        Next NomDonne
        RecupOre
        Label5.Caption = ChrW(-3844)
     
    End Sub
    ps les recordset ne fonctionnent pas correctement sous excel 97

    Merci
    Eric

Discussions similaires

  1. [VBA-E] Extraire des lignes depuis plusieurs classeurs fermés
    Par stoof dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/05/2007, 12h26
  2. Copier la feuille d'un classeur fermé
    Par sub73 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/04/2007, 20h02
  3. derniere cellule non vide d'un classeur fermé
    Par la-breche dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/03/2007, 21h09
  4. recherche d'info dans des classeurs fermé
    Par gerald57 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/08/2006, 19h04
  5. [VBA-E]Obtenir la date d'enregistrement d'un classeur fermé
    Par Sylvain2003 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/03/2006, 14h36

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