Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

sécuriser un fichier

danval

XLDnaute Junior
bonjour à tous,

je suis sur un projet et afin de sécuriser mon fichier il me faudrait la chose suivante:

c'est une fichier qui vas me servir dans le cadre de formation: c'est une aide qui ne doit pas sortir de la salle et qui est limitée dans le temps à 20 mns pour des raisons d'exo.

pour un fichier excel ne pouvoir l'ouvrir qu'une fois par jour et pour un temps de 20 mns avec si possible un avertissement "il vous reste 5 mns" pour prévenir l'usagé.

je ne sais pas si cela est possible et s'il y as moyen de vérifier que la personne n'as pas changer la date de son ordinateur.
une autre chose:
est il possible de faire en sorte que lorsque l'on ouvre un fichier excel sur un ordinateur il ne soit ouvrable que sur celui la ceci afin qu'une personne mal intentionnée en face une copie et l'utilise chez lui par exemple.

bon je sais j'abuse mais mes connaissance en VBA sont trés limitées.
j'ai avancé la fermeture automatique marche (ici au bout d'une minute)

il sauvegarde avant de fermer.

je vous joint le fichier que j'ai commencé.



Bien cordialement.

Daniel
 

Pièces jointes

  • essai.xlsm
    32.1 KB · Affichages: 59

Staple1600

XLDnaute Barbatruc
Re

danval
J'ai donc ouvert ton fichier sans activer les macros
Je suis allé dans VBE et j'ai lu ceci que j'ai mis en commentaire
VB:
'Private Sub Workbook_Open()
'temp = Now + TimeValue("00:01:00")
'Application.OnTime temp, "arret"
'End Sub
Donc maintenant le classeur peut être ouvert en activant les macros mais il se passera rien à l'ouverture puis le code VBA est désormais ignoré car considéré comme des lignes de commentaires.

Ce sera la même chose avec le code VBA d'arthour973
(qui d'ailleurs pourra te dire qu'à l'époque dans sa propre discussion, je lui ai tenu le même discours si l’inefficacité de chercher à protéger un classeur par une macro VBA)
 

Staple1600

XLDnaute Barbatruc
Re

danval
Tu dispenses des formations dans quel domaine au fait ?

je n'ais pas aussi à faire à des pro d'excel donc....
On a tous débuté un jour avec Excel.
[digression amicalement ironique ou vice versa - à lire sans se prendre la tête]
Personnellement je suis toujours un peu chafouin quand je suis en face d'un formateur qui semble faire montre de sa supériorité face à ces élèves.
[/digression amicalement ironique ou vice versa - à lire sans se prendre la tête]

Débutant ou pas, cela n'empeche pas de copier ton fichier sur une clé USB etc...
 

danval

XLDnaute Junior
re bonjour,

je travaille sur mon fichier et il y as deux macro que j'aimerais mettre sous forme de boucle mais grrrrrr j'y arrive pas snifffffff. je crois que pour vous c'est de la routine mais pour moi c'est la galère.

Code:
Sub decalage()
'
' decalage Macro
'
deca
'
    Range("B19").Select
    Selection.Copy
    Range("B18").Select
    ActiveSheet.Paste
    Range("B20").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("B19").Select
    ActiveSheet.Paste
    Range("B21").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("B20").Select
    ActiveSheet.Paste
    Range("B22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("B21").Select
    ActiveSheet.Paste
    Range("B23").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("B22").Select
    ActiveSheet.Paste
    Range("B23").Select
    Application.CutCopyMode = False
End Sub



Code:
Sub deca()
'
' deca Macro
'

'
    ActiveWindow.SmallScroll Down:=-2
    Range("v19:Ay19").Select
    Selection.Copy
    Range("v18").Select
    ActiveSheet.Paste
    Range("v20:Ay20").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("v19").Select
    ActiveSheet.Paste
    Range("v21:Ay21").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("v20").Select
    ActiveSheet.Paste
    Range("v22:Ay22").Select
    Selection.Copy
    Range("v21").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

danval
Dans ce cas, je réévoque l'emploi d'un application HTA
(voir ce que c'est ici)
http://www.journaldunet.com/developpeur/tutoriel/dht/061123-ie-hta-html-application.shtml

De mémoire, on pouvait aussi "crypter" le code source avec Script Encoder
Mais bon là, on sort d'Excel, mais on peut faire pas mal de choses sympa en application HTA

Une petit exemple pour voir de qui je parle
Tu copies le code ci-dessous dans le Bloc-notes et tu enregistres sur ton bureau par exemple avec ce nom:
exemple.hta puis tu doubles-cliques dessus.
Code:
<head>
<title>Version du système installé</title>
<HTA:APPLICATION
     APPLICATIONNAME="Test OS Version"
     SCROLL="yes"
     SINGLEINSTANCE="yes"
>
</head>
<script language="VBScript">
    Sub GetOSVersion
       strComputer = "."
           Set objWMIService = GetObject("winmgmts:\\" & strComputer &  "\root\cimv2")

           Set colOperatingSystems = objWMIService.ExecQuery _
               ("Select * from Win32_OperatingSystem")

           For Each objOperatingSystem in colOperatingSystems
               Msgbox objOperatingSystem.Caption & " " & _
                   objOperatingSystem.Version
           Next
    End Sub
</script>
<body>
<input type="button" value="Lancer le test" name="run_button"  onClick="GetOSVersion">
</body>
 

Staple1600

XLDnaute Barbatruc
Re

danval
???
Tes dernières macros n'ont rien à voir avec ta sécurisation de fichier, non ?
Tu devrais ouvrir une autre discussion pour cette question de décalage et de valeurs seules (et en y mettant un fichier exemple avec le résultat à obtenir mis "manuellement")
 

Staple1600

XLDnaute Barbatruc
Re

danval
Ces macros ne sont pas dans le fichier essai.xslm que tu as joint dans cette discussion précédemment.
Je pense qu'effectivement ce serait plus fluide de créer une nouvelle discussion pour ton histoire de décalage et de copier/coller Valeurs seules.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…