Désactiver un formulaire en VB

Résolu
PaPy36 Messages postés 25 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 28 avril 2013 - 22 mars 2012 à 16:22
PaPy36 Messages postés 25 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 28 avril 2013 - 25 mars 2012 à 09:35
Bonjour,
Je souhaite que l'on puisse désactiver successivement plusieurs formulaires d'un même document "informatisé":
1-Le 1er formulaire du document est renseigné puis désactivé pour protéger son contenu.
2-Le document est envoyé par messagerie à un destinataire,
3-Le destinataire, tenant compte des infos du 1er formulaire, apporte ses réponses sur le 2éme formulaire du document qui lui est proposé.
4-Celui-ci désactive ensuite ce 2éme formulaire du document et
5-renvoit le document par messagerie à l'expéditeur.
Le but de ces désactivation est de rendre non modifiable le contenu des formulaires renseignés par plusieurs personnes.
Je suis bien sûr disposé à répondre à des demandes de précision sur un tel cahier des charges.
Je vous remercie pour les infos que vous pourriez m'apporter à ce sujet.
NB J'ai réussi la gestion d'un tel document "Informatisé" Excel sous VBA mais je crains un manque de robustesse de mon code lorsqu'il transite par la messagerie Internet !
Pierre SIENER dit Papy36 le 22 mars 2012

10 réponses

Utilisateur anonyme
24 mars 2012 à 04:06
Bonjour,

Je suis probablement la pire personne à pouvoir agir devant cette question parce que j'ai abandonné VB6 depuis longtemps et que je ne l'ai pas réinstallé, mais j'avoue que je suis intrigué.

Je me demande si ce ne serait pas juste suffisant de générer programmatiquement des documents au format PDF. Il existe plusieurs programmes gratuits qui le pertmettent d'une façon ou l'autre.

Ceci dit, pour la question elle-même :

1) Parle-t-on vraiment d'un nouveau développement en VB6, d'une nouvelle version d'une application en VBA, ou d'une application en VB.net ? (Je dis cela parce que VB 2010 Express est disponible gratuitement et qu'il est somme toute supérieur à VB6)

2) Parle-t-on d'un document unique qui se "promène" parmi plusieurs personnes et chaque personne a un accès limité à certaines sections du document ?

Quoi qu'il en soit, cela me semble être un gros contrat.
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 mars 2012 à 06:59
Bonjour,

J'ai également des difficultés à comprendre de quoi il retourne exactement.

J'ai pour l'instant l'impression (mais ce n'est qu'une impression) de ce que :
- tu développes sous VBA/Excel et non sous VB6
- que tu désignes par "formulaires" des feuilles Excel
- que ce que tu appelles "document" est un classeur Excel
Est-ce cela ?
Je ne comprends par contre pas du tout ce que tu veux dire par :
mais je crains un manque de robustesse de mon code lorsqu'il transite par la messagerie Internet

Le code dont est assortie une appli (classeur Excel ou programme VB6) n'est pas altéré au cours de l'envoi en pièce jointe de l'appli en cause.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 mars 2012 à 16:34
Peut-on voir le code de l'évènement Workbook_open ?
Il est toujours possible de protéger une feuille tout en permettant la lecture d'une cellule !
13-« ? n'est pas altéré au cours de l'envoi en pièce jointe de l'appli en cause. » : en fait je fais transiter le classeur en entier.

ne justifie normalement aucune altération ! Comment le transfères-tu donc, exactement ?
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 mars 2012 à 16:40
Autre question : quelle est ta version Office et quelle est la version office des autres utilisateurs ?
Car, évidemment : si la tienne est supérieure à l'un d'entre eux, ce dernier ne saurait ouvrir ton classeur.
Si tel est le cas, il te faut "dégrader" ton propre classeur, ansi : ===>>>


Fichier ===>> Enregistrer sous ===>> type de fichier ===>>> Excel 1997-2003 (.xls)
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
24 mars 2012 à 18:10
Bonjour,

Si ton destinataire a mis ses paramètres de sécurité d'Excel pour bloquer toutes les macros, ou pour, à un niveau moindre, bloquer les macros non signées électroniquement; il est vraisemblable que le workbook_open, ou toute autre macro plante également.

Tu peux essayer de faire ton propre certificat électronique (Selfcert.exe ou makecert.exe, ou en passant par les outils Microsoft Office du menu Démarrer) et l'appliquer à ton projet. Ensuite envoie ton classeur à un destinataire qui va ajuster son Excel pour pouvoir exécuter les macros signées électroniquement. Si cela fonctionne, tu vas sans doute devoir te procurer un certificat "officiel" auprès d'une compagnie comme Verising. Il faudra les payer, mais c'est peut-être un moindre mal.

Pour en revenir à la question originale, on peut désactiver un formulaire, ou un contrôle en mettant la propriété Enabled à false, ou même, le faire disparaîtr en mettant la propriété Visible à False. Pour autant que ces propriétés soient disponibles.

Finalement, pour autant que je me souvienne, il y a des exemples tout faits de manipulation des fichiers PDF (en anglais cependant) sur le site de [www.codeproject.com Code Project]
3
Utilisateur anonyme
25 mars 2012 à 04:02
Bonjour,

Je vous signale en plus que l'un des adhérents, et il n'est pas forcément le seul, possède OpenOffice.Org 2000-2010 Oracle ! Alors là je ne sais pas si cela fonctionnera car je n'ai pas encore testé !

Ca ne marchera sûrement pas. Open Office est doté d'un BASIC différent et incompatible avec VB-VBA

6-Une nouvelle question : comment ferriez-vous pour défendre vos applis et conserver la propriété intellectuelle de ce que vous développez ? Je pense en effet que cette application des Formulaires Informatisés Protégés mériterait, peut être, avant diffusion de faire l'objet d'une protection dite juridique. Qu'en pensez-vous ? Quels sont les moyens ?

Là je ne peux décemment pas m'avancer. Je n'habite pas en France et je ne connais pas le droit Français. Au Canada, l'existence de l'oeuvre suffit à établir les droits de l'auteur. L'enregistrement est facultatif. Mais, généralement, sauf convention contraire entre les parties concernées, le droit d'auteur appartient à l'employeur quand l'oeuvre est produite au travail. Mais, cela peut-être différent en France.
3
PaPy36 Messages postés 25 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 28 avril 2013
24 mars 2012 à 16:13
Bonjour cmarcotte et ucfoutu,
Merci pour votre intervention appréciée.
Je réponds globalement à vos questions :
1-« Parle-t-on vraiment d'un nouveau développement en VB6 ? » Non , j'avais VB6, en souvenir, sous les "doigts", !
2- merci pour cette info concernant VB 2010 Express dont j'ignorais l'existence !
3-En effet, si pour des problèmes de portabilité de l'appli sous Excel, problèmes de version d'Excel, on pourrait alors envisager de développer, par exemple, en VB 2010 Express; mais je ne le connais pas !
4-« Parle-t-on d'un document unique qui se "promène?" Oui
5-« ?chaque personne a un accès limité à certaines sections du document ? : Oui
6-« Quoi qu'il en soit, cela me semble être un gros contrat. » : non L'appli est développée sous Excel/VBA, et actuellement en phase de mise au point, pour une association aux moyens limités !
7-« tu développes sous VBA/Excel et non sous VB6 » : Oui
8-« tu désignes par "formulaires" des feuilles Excel « : Oui
9-« ce que tu appelles "document" est un classeur Excel » : oui
10- ? mais je crains un manque de robustesse ? : Oui car j'ai rencontré des pb après transit par email. En fait je pense que cela est dû à "Workbook_Open" qui tente de sélectionner une cellule dans une sheet protégée.
11-Cette cellule sélectionnée me sert à « décharger » le bouton qui permet de valider une feuille. Il faut que je sorte cette commande de Workbook_Open qui est actif au chargement, à l'ouverture du classeur et qui peut alors agir sur une feuille protégée et planter le code ! Mais où la placer ?
12-« ? générer programmatiquement des documents au format PDF » peut-être mais je ne sais pas faire !
13-« ? n'est pas altéré au cours de l'envoi en pièce jointe de l'appli en cause. » : en fait je fais transiter le classeur en entier.
Encore merci pour votre précieuse aide et bon WE
Papy36
0
Utilisateur anonyme
24 mars 2012 à 20:53
Bonjour,

Le lien vers Code Project de mon message précédent ne fonctionne pas. (Je pense que c'est parce que j'avais oublié le http://)
0
PaPy36 Messages postés 25 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 28 avril 2013
25 mars 2012 à 00:01
Bravo ucfoutu et cmarcotte pour votre réactivité et votre célérité !
1-« Peut-on voir le code de l'évènement Workbook_open ? » : après analyse et tests ce sont une série de ClearContents qui sont à l'origine du plantage lorsque la feuille est protégée. Alors je pense avoir résolu le pb en testant la protection de feuille dans Workbook_Open et ne lançant l'éxécution de ces instructions que si la feuille est vierge de tous renseignement donc non protégée !
2- Je transfère le classeur en le plaçant en pièce jointe du message à envoyer.
3-Les versions d'Excel: à ma connaissance il y en a trois variantes utilisées dans notre asso :
MS Excel 1997 sous Windows 95, Excel 2000 sous Windows XP et MSOffice Excel 2007 !
Je vous signale en plus que l'un des adhérents, et il n'est pas forcément le seul, possède OpenOffice.Org 2000-2010 Oracle ! Alors là je ne sais pas si cela fonctionnera car je n'ai pas encore testé !
4-Pour la certification électronique je n'ai aucune pratique. On a mis l'activation des macros à l'ordre du jour avec proposition d'une procédure supposée valable et suffisante. Elle consiste à pointer sur le niveau de sécurité moyen(Outils/Macros/Sécurité/Niveau de Sécurité moyen).
5-Je vais faire, je l'espère, bon usage de toutes vos informations qui ont remplis ma besace ! Encore merci d'un fortran-iste !
6-Une nouvelle question : comment ferriez-vous pour défendre vos applis et conserver la propriété intellectuelle de ce que vous développez ? Je pense en effet que cette application des Formulaires Informatisés Protégés mériterait, peut être, avant diffusion de faire l'objet d'une protection dite juridique. Qu'en pensez-vous ? Quels sont les moyens ? Voilà ce qui me vient à présent à l'esprit.
Cordialement et bon dimanche
Papy36
0
PaPy36 Messages postés 25 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 28 avril 2013
25 mars 2012 à 09:35
Bonjour cmarotte et merci pour tes infos
0
Rejoignez-nous