[Résolu][Calc] Données à extraire protégées par mot de passe

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: 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 !
Fredouchesco
Fraîchement OOthentifié
Messages : 4
Inscription : 29 avr. 2013 10:49

[Résolu][Calc] Données à extraire protégées par mot de passe

Message par Fredouchesco »

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.
Open office 2.4 sur Windows XP
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
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

Message par Bidouille »

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.
Fredouchesco a écrit :Cette macro a été trouvée sur le net et que je l'ai quasiment copiée telle qu'elle.
Et ne pensez-vous pas que fournir un fichier accompagné de cette macro aiderait les bénévoles à vous répondre ?
Fredouchesco
Fraîchement OOthentifié
Messages : 4
Inscription : 29 avr. 2013 10:49

Re: [Calc] Données à extraitre protégées par mot de passe

Message par Fredouchesco »

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
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
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

Message par luky-luke »

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.

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
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)

Code : Tout sélectionner

Proteger(Feuille1, MarcelDalton) 
Cordialement
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
Fredouchesco
Fraîchement OOthentifié
Messages : 4
Inscription : 29 avr. 2013 10:49

Re: [Calc] Données à extraire protégées par mot de passe

Message par Fredouchesco »

Merci Luky ! Je me suis bien marré avec le banquier suisse.

Je réponds à tes 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 ??
C'est exact
Le tableau A est protégé par mot de passe. Est ce la feuille ou le document qui est protégé ??
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"
Et enfin j'imagine qu'il n'y a que l'administrateur du tableau A qui connait le mot de passe ??
Tout à fait exact
A quel moment l'utilisateur du tableau B, va chercher les informations dans le tableau A et comment ??
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.

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
Avatar de l’utilisateur
Dude
IdOOle de la suite
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

Message par Dude »

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 :
  • 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
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
Vite fait, ce code ouvre un document caché en lui passant un mot de passe :

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())
Fredouchesco
Fraîchement OOthentifié
Messages : 4
Inscription : 29 avr. 2013 10:49

Re: [Calc] Données à extraire protégées par mot de passe

Message par Fredouchesco »

Merci pour cette réponse Dude.

utiliser une base de données et un système de vue pour n'afficher que les données voulues
Je pense que cela dépasse largement mes maigres compétences
Se servir des droits d'accès réseau pour mettre le document à protéger à un endroit non visible
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.

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"
Pour info, le code entier est :

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
Avatar de l’utilisateur
Dude
IdOOle de la suite
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

Message par Dude »

Je dirais plutôt :

Code : Tout sélectionner

Dim prop(1) As New com.sun.star.beans.PropertyValue
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
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.
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
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

Message par Bidouille »

Dernière visite le : 21 Mai 2013 10:38
Vous avez lu semble t-il les réponses qui vous ont été faites sans y donner de suite.
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.