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

Sécurité Discussion :

Lier (attacher) une série de fichiers Excel protégés


Sujet :

Sécurité

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Lier (attacher) une série de fichiers Excel protégés
    Je dois mensuellement lancer une fonction qui lie (attache) une série de 180 à 450 fichiers Excel dans une base Access.

    Ces fichiers Excel sont déposés sur un serveur par de nombreux utilisateurs à qui on demande de saisir des zones bien particulières. Pour cette raison, tous ces fichiers sont protégés (classeur et feuilles) par un seul et même mot de passe (que je connais).

    Je pourrais bien entendu ouvrir chacun de ces fichiers avec du code VB en utilisant le mot de passe mais cela me semble lourd et inutile puisque je souhaite simplement charger certaines zones de ces fichiers dans des tables pour une exploitation de consolidation.

    Mon problème : Access refuse d'attacher ou d'importer des fichiers Excel protégés !

    PS - j'ai positionné mes options de sécurité en niveau faible tant dans Access que dans Excel.

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Juste une idée :
    rédiger une procédure qui fait une copie non protégée des classeurs, et lier les tables aux classeurs non protégés.

    Bon courage,

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci pour votre suggestion,

    J'ai envisagé cette solution mais je trouve cela un peu navrant que MS nous coince sur un détail.

    Sauf erreur de ma part, si j'opte pour cette solution, ma procédure devra :
    1. ouvrir chaque classeur
    2. ôter la protection
    3. l'enregistrer sous mon répertoire de travail
    4. créer le lien
    5. extraire les données qui me sont utiles
    6. supprimer le lien
    7. supprimer le classeur

    S'il existe une solution qui m'évite l'étape 1 (ouvrir classeur) et qui me permette malgré tout d'ôter la protection, je suis preneur.

    Merci encore.

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    S'il existe une solution qui m'évite l'étape 1 (ouvrir classeur) et qui me permette malgré tout d'ôter la protection, je suis preneur.
    Pour ma part, je n'en connais pas.

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci tout de même et bon dimanche.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 37
    Points : 29
    Points
    29
    Par défaut Réponse tardive Import données excel fichiers protégés
    Un peu tardif mais cela peut aider quelqu'un qui cherche.
    Voici de quoi importer des données de fichiers excel protégés
    Il faut simplement avoir créé les tables de destination avant.

    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
    Sub import_excel(fichier_avec_chemin As String, lafeuille As String, tabledestination As String, nbchamps As Integer)
     
    Dim Plage As Range
    Dim Tableau1 As Variant
    Dim x As Long, i As Long
    Dim Rs1 As Recordset
    Dim appexcel As Excel.Application
    Dim wbexcel As Excel.Workbook
    Set appexcel = CreateObject("Excel.Application")
    appexcel.Visible = False
    Set wbexcel = appexcel.Workbooks.Open(fichier_avec_chemin, ReadOnly:=True, Password:="VOTREMOTDEPASSE")
    CurrentDb.Execute ("delete * from " & tabledestination)
    Set Rs1 = CurrentDb.OpenRecordset(tabledestination, 2)
    Set Plage = wbexcel.Worksheets(lafeuille).Range("A1").CurrentRegion.Offset(1, 0)
    Set Plage = Plage.Resize(Plage.Rows.Count - 1, Plage.Columns.Count)
    Plage.Select
    Tableau1 = Plage.Value
    For x = 1 To UBound(Tableau1, 1)
    With Rs1
    .AddNew
    For i = 0 To nbchamps
    .Fields(i) = Tableau1(x, i + 1)
    Next i
    .Update
    End With
    Next
    appexcel.DisplayAlerts = False
    wbexcel.Saved = True
    wbexcel.Close (False)
    appexcel.Quit
    Set wbexcel = Nothing
    Set appexcel = Nothing
     
     
    End Sub

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par kilimanjaro Voir le message
    Un peu tardif mais cela peut aider quelqu'un qui cherche.
    Voici de quoi importer des données de fichiers excel protégés
    Il faut simplement avoir créé les tables de destination avant.

    Sub import_excel(fichier_avec_chemin As String, lafeuille As String, tabledestination As String, nbchamps As Integer)

    Dim Plage As Range
    Dim Tableau1 As Variant
    Dim x As Long, i As Long
    Dim Rs1 As Recordset
    Dim appexcel As Excel.Application
    Dim wbexcel As Excel.Workbook
    Set appexcel = CreateObject("Excel.Application")
    appexcel.Visible = False
    Set wbexcel = appexcel.Workbooks.Open(fichier_avec_chemin, ReadOnly:=True, Password:="VOTREMOTDEPASSE")
    CurrentDb.Execute ("delete * from " & tabledestination)
    Set Rs1 = CurrentDb.OpenRecordset(tabledestination, 2)
    Set Plage = wbexcel.Worksheets(lafeuille).Range("A1").CurrentRegion.Offset(1, 0)
    Set Plage = Plage.Resize(Plage.Rows.Count - 1, Plage.Columns.Count)
    Plage.Select
    Tableau1 = Plage.Value
    For x = 1 To UBound(Tableau1, 1)
    With Rs1
    .AddNew
    For i = 0 To nbchamps
    .Fields(i) = Tableau1(x, i + 1)
    Next i
    .Update
    End With
    Next
    appexcel.DisplayAlerts = False
    wbexcel.Saved = True
    wbexcel.Close (False)
    appexcel.Quit
    Set wbexcel = Nothing
    Set appexcel = Nothing


    End Sub
    Et bien cela m'aide déjà bcp !
    J'ai presque le même problème sauf que moi, je dois lier uniquement 2 fichiers Excel protégés ( fichiers qui sont partagés sur un serveur )
    Et comme je débute en Access.
    Je voudrais savoir que dois-je modifier aux lignes de code pour lier uniquement mes 2 fichiers Excel identifiés et protégés par un mot de passe ( R:\Table1.xls et R:\Table2.xls)

    Où dois-je placer les lignes de code (dans mon menu général, je suppose mais où, comment et sous quelle forme ? )

    Merci d'avance.

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

Discussions similaires

  1. [WD17] Débutant, Lier les données d'une table à un fichier excel
    Par buenzay dans le forum WinDev
    Réponses: 3
    Dernier message: 25/07/2013, 10h08
  2. [Excel & Macro] Attacher une macro à un fichier Excel
    Par Enthau dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/08/2008, 09h36
  3. attacher une macro à un fichier excel
    Par Baldric de Dol dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/05/2008, 17h16
  4. Réponses: 5
    Dernier message: 22/04/2008, 14h53

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