[Résolu][Calc] Données à extraire protégées par mot de passe
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !

Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 29 avr. 2013 10:49
[Résolu][Calc] Données à extraire protégées par mot de passe
Bonjour à tous,
Et merci aux bénévoles de faire vivre ce forum qui m'a sorti de bien des galères.
J'essaierai d'être très bref dans ma question.
Je dois construire un tableau B qui extraie les données d'un tableau A. Seulement voila : le tableau A doit être obligatoirement protégé par mot de passe. Les deux tableaux fonctionnement parfaitement bien sans ce mot de passe mais, très logiquement, le tableau B renvoie des erreurs de type #NOM ou #N/D lorsque le tableau A est protégé par MdP.
La solution consiste sans doute dans l'édition d'une macro, qui viendrait automatiquement saisir le code nécessaire à ouvrir le fichier source (tableau A). Le problème étant que je n'ai AUCUNE notion de macro. La seule macro que j'utilise dans cette affaire est une macro utilisée par le tableau B, qui s'exécute à l'ouverture du fichier afin de ranger les données extraites du tableau A par ordre chronologique. Cette macro a été trouvée sur le net et que je l'ai quasiment copiée telle qu'elle.
Merci de m'avoir lu et merci d'avance pour votre réponse.
Et merci aux bénévoles de faire vivre ce forum qui m'a sorti de bien des galères.
J'essaierai d'être très bref dans ma question.
Je dois construire un tableau B qui extraie les données d'un tableau A. Seulement voila : le tableau A doit être obligatoirement protégé par mot de passe. Les deux tableaux fonctionnement parfaitement bien sans ce mot de passe mais, très logiquement, le tableau B renvoie des erreurs de type #NOM ou #N/D lorsque le tableau A est protégé par MdP.
La solution consiste sans doute dans l'édition d'une macro, qui viendrait automatiquement saisir le code nécessaire à ouvrir le fichier source (tableau A). Le problème étant que je n'ai AUCUNE notion de macro. La seule macro que j'utilise dans cette affaire est une macro utilisée par le tableau B, qui s'exécute à l'ouverture du fichier afin de ranger les données extraites du tableau A par ordre chronologique. Cette macro a été trouvée sur le net et que je l'ai quasiment copiée telle qu'elle.
Merci de m'avoir lu et merci d'avance pour votre réponse.
Open office 2.4 sur Windows XP
-
- RespOOnsable forum
- Messages : 12693
- Inscription : 08 nov. 2005 16:23
- Localisation : Brest, France
Re: Extraction des données d'un tableau protégé par mot de p
Bonjour,
Le fil a été déplacé dans la section Macros.
Veuillez lire les descriptifs des sections en page d'accueil afin de poster au bon endroit la prochaine fois.
Le fil a été déplacé dans la section Macros.
Veuillez lire les descriptifs des sections en page d'accueil afin de poster au bon endroit la prochaine fois.
Et ne pensez-vous pas que fournir un fichier accompagné de cette macro aiderait les bénévoles à vous répondre ?Fredouchesco a écrit :Cette macro a été trouvée sur le net et que je l'ai quasiment copiée telle qu'elle.
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 29 avr. 2013 10:49
Re: [Calc] Données à extraitre protégées par mot de passe
La macro que je mentionne est celle permettant de classer les données du tableau A. Elle n'a a priori aucune influence sur mon problème. La voici quand même, au cas où il faudrait intégrer dans cette macro de classement le code de déveorruillage :
Code : Tout sélectionner
REM ***** BASIC *****
Sub TriPlage
Dim oFeuille
Dim oPlage
Dim oChampsTri(1) As New com.sun.star.table.TableSortField
Dim oDescTri(1) As New com.sun.star.beans.PropertyValue
oFeuille = ThisComponent.Sheets.getByName("Feuille1")
oPlage = oFeuille.getCellRangeByName("A2:E5000")
'ThisComponent.getCurrentController.select(oPlage)
oChampsTri(0).Field = 2
oChampsTri(0).IsAscending = True
oChampsTri(1).Field = 1
oChampsTri(1).IsAscending = True
oDescTri(0).Name = "SortFields"
oDescTri(0).Value = oChampsTri()
oDescTri(1).Name = "ContainsHeader"
oDescTri(1).Value = False
oPlage.Sort(oDescTri())
End Sub
Open office 2.4 sur Windows XP
-
- InconditiOOnnel
- Messages : 948
- Inscription : 27 nov. 2010 00:17
- Localisation : gâtine deux-sèvrienne
Re: [Calc] Données à extraire protégées par mot de passe
Bonjour Fredouchesco
Ta question demande quelques précisions, donc à mon tour de poser des questions.
Il y a donc deux tableaux sur deux fichiers Calc différent, un avec le tableau A, l'autre avec le tableau B. C'est ça ??
Le tableau A est protégé par mot de passe. Est ce la feuille ou le document qui est protégé ??
Et enfin j'imagine qu'il n'y a que l'administrateur du tableau A qui connait le mot de passe ??
Il y a des solutions par macro, pour gérer la protection.
A quel moment l'utilisateur du tableau B, va chercher les informations dans le tableau A et comment ??
Un exemple de fonction que j'utilise pour protéger ou déprotéger une feuille.
Et l'appel pour la protection de la feuille1, avec le mot de passe, MarcelDalton (Seul membre honnête de la famille puisqu'il est banquier en suisse, on peut donc lui faire confiance pour garder un secret)
Cordialement
Luke
Ta question demande quelques précisions, donc à mon tour de poser des questions.
Il y a donc deux tableaux sur deux fichiers Calc différent, un avec le tableau A, l'autre avec le tableau B. C'est ça ??
Le tableau A est protégé par mot de passe. Est ce la feuille ou le document qui est protégé ??
Et enfin j'imagine qu'il n'y a que l'administrateur du tableau A qui connait le mot de passe ??
Il y a des solutions par macro, pour gérer la protection.
A quel moment l'utilisateur du tableau B, va chercher les informations dans le tableau A et comment ??
Un exemple de fonction que j'utilise pour protéger ou déprotéger une feuille.
Code : Tout sélectionner
sub Proteger(NomFeuille As Object, Mdp As String)
Dim Feuille as Object
Feuille = ThisComponent.Sheets.getByName(NomFeuille)
Feuille.protect(Mdp)
End sub
sub Deproteger(NomFeuille As Object, Mdp As String)
Dim Feuille as Object
Feuille = ThisComponent.Sheets.getByName(NomFeuille)
Feuille.unprotect(Mdp)
End sub
Code : Tout sélectionner
Proteger(Feuille1, MarcelDalton)
Luke
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.4.7.2 Raspberry pi et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 29 avr. 2013 10:49
Re: [Calc] Données à extraire protégées par mot de passe
Merci Luky ! Je me suis bien marré avec le banquier suisse.
Je réponds à tes questions :
Même si je suis un cancre en macro, il me semble que la macro que tu mentionnes permet de déverrouiller une feuille. J'imagine donc qu'il me faudrait la même chose pour déverrouiller un document. Si tu as la bonté de me fournir le code correspondant, pourrais-tu m'indiquer si je dois l'insérer dans ma macro de tri ou dans une macro à part ?
Encore merci.
Frédéric
Je réponds à tes questions :
C'est exactIl y a donc deux tableaux sur deux fichiers Calc différent, un avec le tableau A, l'autre avec le tableau B. C'est ça ??
C'est le document qui est protégé par un mot de passe. Il s'agit de la protection que l'on active en cochant "Enregistrer avec mot de passe" dans "Enregistrer sous"Le tableau A est protégé par mot de passe. Est ce la feuille ou le document qui est protégé ??
Tout à fait exactEt enfin j'imagine qu'il n'y a que l'administrateur du tableau A qui connait le mot de passe ??
Le tableau B va chercher les informations à l'ouverture du document. Toutes les cases du tableau B (à part les titres de colonnes) sont des formules avec condition (=SI) qui renvoient le contenu de cases du tableau A si les conditions mentionnées sont remplies. Si une cellule de la colonne A du tableau B ne renvoie rien (condition non remplie), les autres cellules de la même ligne suivent et la ligne reste vide. Dès l'ouverture du document, la macro de tri du tableau B vient alors ranger ce gruyère par ordre chronologique.A quel moment l'utilisateur du tableau B, va chercher les informations dans le tableau A et comment ??
Même si je suis un cancre en macro, il me semble que la macro que tu mentionnes permet de déverrouiller une feuille. J'imagine donc qu'il me faudrait la même chose pour déverrouiller un document. Si tu as la bonté de me fournir le code correspondant, pourrais-tu m'indiquer si je dois l'insérer dans ma macro de tri ou dans une macro à part ?
Encore merci.
Frédéric
Open office 2.4 sur Windows XP
-
- IdOOle de la suite
- Messages : 26024
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Données à extraire protégées par mot de passe
Salut,
Ouvrir un document protégé par un mot de passe en utilisant une macro qui va passer ce mot de passe est un non-sens en matière de sécurité.
Il existe d'autres méthodes largement plus pratique comme :
Ouvrir un document protégé par un mot de passe en utilisant une macro qui va passer ce mot de passe est un non-sens en matière de sécurité.
Il existe d'autres méthodes largement plus pratique comme :
- utiliser une base de données et un système de vue pour n'afficher que les données voulues
- se servir des droits d'accès réseau pour mettre le document à protéger à un endroit non visible
Vite fait, ce code ouvre un document caché en lui passant un mot de passe :Fredouchesco a écrit :J'imagine donc qu'il me faudrait la même chose pour déverrouiller un document. Si tu as la bonté de me fournir le code correspondant
Code : Tout sélectionner
sDoc = convertToURL("c:\chemin\vers\document.ods")
prop(0).Name = "Hidden"
prop(0).Value = true
prop(1).Name = "Password"
prop(1).Value = "zeDude"
oDoc = StarDesktop.LoadComponentFromURL(sDoc, "_blank", 0, prop())
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 29 avr. 2013 10:49
Re: [Calc] Données à extraire protégées par mot de passe
Merci pour cette réponse Dude.
Enfin, concernant le bout de code que tu fournis, calc renvoie l'erreur "Valeurs ou types de données incorrect(e) - Index hors de plage définie" pour cette partie :
Pour info, le code entier est :
Je pense que cela dépasse largement mes maigres compétencesutiliser une base de données et un système de vue pour n'afficher que les données voulues
Je peux effectivement mettre le tableau A dans un réseau auquel les destinataires du tableau B n'ont pas accès. Mais justement : puisqu'ils n'ont pas accès à ce réseau, calc refuse d'aller y puiser les informations du tableau A. C'est pourquoi la seule solution que j'ai trouvée consiste à mettre les deux tableaux dans le même dossier.Se servir des droits d'accès réseau pour mettre le document à protéger à un endroit non visible
Enfin, concernant le bout de code que tu fournis, calc renvoie l'erreur "Valeurs ou types de données incorrect(e) - Index hors de plage définie" pour cette partie :
Code : Tout sélectionner
prop(1).Name = "Password"
Code : Tout sélectionner
REM ***** BASIC *****
Sub Main
Dim prop(O) As New com.sun.star.beans.PropertyValue
sDoc = convertToURL("C:\Documents and Settings\Divers\Bureau\Projet tableau\Espace de test\Tableau de suivi des risques opérateurs.ods")
prop(0).Name = "Hidden"
prop(0).Value = true
prop(1).Name = "Password"
prop(1).Value = "MonMotDePasse"
oDoc = StarDesktop.LoadComponentFromURL(sDoc, "_blank", 0, prop())
End Sub
Open office 2.4 sur Windows XP
-
- IdOOle de la suite
- Messages : 26024
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] Données à extraire protégées par mot de passe
Je dirais plutôt :
Code : Tout sélectionner
Dim prop(1) As New com.sun.star.beans.PropertyValue
Je ne connais pas ton réseau mais sous Novell, on dispose par exemple du droit NDS Parcourir qui empêche l'utilisateur de lire le contenu d'un répertoire mais pas d'accéder à un fichier dont on connait l'adresse exacte.Fredouchesco a écrit :Mais justement : puisqu'ils n'ont pas accès à ce réseau, calc refuse d'aller y puiser les informations du tableau A
-
- RespOOnsable forum
- Messages : 12693
- Inscription : 08 nov. 2005 16:23
- Localisation : Brest, France
Re: [Calc] Données à extraire protégées par mot de passe
Vous avez lu semble t-il les réponses qui vous ont été faites sans y donner de suite.Dernière visite le : 21 Mai 2013 10:38
N'ayant plus de nouvelle, on peut en déduire que le problème est résolu ou ne se reproduit plus.
Merci de baliser par vous-même la prochaine fois.
Un remerciement fait aussi plaisir aux bénévoles qui vous ont consacré de leur temps.
La politesse fait également partie de la philosophie du logiciel libre.
En cas d'erreur, contactez l'équipe de modération pour la réouverture du fil.