Limitar en el tiempo el uso de un archivo EXCEL
Resuelto
RG14
Mensajes publicados
77
Estado
Miembro
-
RG14 Mensajes publicados 77 Estado Miembro -
RG14 Mensajes publicados 77 Estado Miembro -
Hola,
He creado un archivo que contiene macros, funciones de cálculo, etc. (Excel 2010)
Ciertas celdas están bloqueadas (hoja protegida con contraseña) para no perturbar accidentalmente su correcto funcionamiento.
Este archivo, deseo limitar su uso en el tiempo (según los casos 1 semana, o 1 mes, etc.) a las personas a las que se lo envío.
¿podrían ayudarme con el procedimiento a aplicar?
cordialmente
RG14
He creado un archivo que contiene macros, funciones de cálculo, etc. (Excel 2010)
Ciertas celdas están bloqueadas (hoja protegida con contraseña) para no perturbar accidentalmente su correcto funcionamiento.
Este archivo, deseo limitar su uso en el tiempo (según los casos 1 semana, o 1 mes, etc.) a las personas a las que se lo envío.
¿podrían ayudarme con el procedimiento a aplicar?
cordialmente
RG14
8 respuestas
-
Hola, expertos
Lo siento, pero todos sus documentos presentados son rechazados (fallo de activación del producto -pro?) estoy en 2010
Su ayuda, por lo tanto, no sirve. El nivel de protección que busco es muy básico... solo una suspensión de uso para usuarios básicos. El archivo no contiene datos especiales, pero es un contenido que interesa a los atletas..
gracias a ustedes
RG14-
Otra forma: ocultar todas las hojas excepto una si la fecha ha pasado. Aunque se rechace la ejecución de las macros, no podremos acceder a todas las hojas
.
Por supuesto hay que proteger las macros.
Ve a Herramientas–Propiedades VBAProject–Protección y pon la contraseña
Aquí está el código para poner en ThisWorkbook:
Option Explicit Dim datefin As Date Dim k As Integer Dim nom As String Private Sub Workbook_Open() nom = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1) 'nombre de archivo sin la extensión datefin = "28 / 10 / 2018" 'poner la fecha de última utilización If datefin < Date Then MsgBox "La fecha ha pasado!", vbCritical, nom ThisWorkbook.Close Else MsgBox "Quedan: " & DateDiff("d", #10/28/2018#, Date) & " días", vbInformation, nom 'poner la fecha de última utilización 'en apertura se descubre por macro,si no activado....... nada For k = 1 To Sheets.Count Sheets(k).Visible = True Next End If End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) For k = 1 To Sheets.Count If Sheets(k).CodeName <> "Feuil1" Then 'ajustar el nombre de la hoja visible Sheets(k).Visible = xlSheetVeryHidden 'hojas ocultas incluso por clic derecho End If Next End Sub
Voilà
@+ Le Pivert
-
-
Hola el Pivert
He ejecutado todas las directrices y TODO funciona como se desea. El tiempo de apertura de derechos es perfectamente programable, lo que limita a un uso autorizado para usuarios "pequeños aprovechados"
gracias de nuevo por esta ayuda especialmente valiosa.
cordialmente
RG14 -
Hola,
Quizá colocando una pequeña macro oculta que se activara en una fecha determinada y borrara las rangos de datos y de fórmulas...
Pero nunca he probado esa manipulación.
Atentamente,
Alain -
Hola,
Hay que saber que los cuadernos/clasificadores de Excel son fácilmente crackeables (cuando se tienen los códigos es muy fácil contrarrestar la prohibición). El ejemplo adjunto tiene 2 archivos de Excel:
- Una clave de activación que pone la fecha de fin de actividad en el registro y se autodestruye
- Y el propio libro (el archivo)
Seguir bien las instrucciones, es un poco complejo para una persona que no domina VBA
https://www.cjoint.com/c/HIrjOOIsx7Q
--
@+ El Pivert -
No domino, de hecho (soy un manitas personal...)
no encuentro Worbook_BeforeClose
¿cómo hacerlo??
gracias-
Todo está explicado en el cuaderno de trabajo Hacer Alt F11 para acceder al editor Poner la contraseña para acceder a las macros que se encuentran en ThisWorkbook Ve a la esquina superior izquierda y despliega la estructura para llegar a ThisWorkbook y selecciónalo. Verás que aparece el código; Esta instrucción es para hacerla solo para pruebas (evita destruir el libro). Aléjate en Sub creer_vbs en esta línea: f.write ("Dim nomfichier: nomfichier = ""Activation.xls"" " & vbCrLf) cambiar el nombre y renombrar el libro con ese nombre y luego, después de haber cerrado En el libro a proteger también entra en ThisWorkbook para poner la fecha de validación sigue bien las instrucciones ver esto en la imagen https://www.excel-pratique.com/fr/vba/introduction.php @+
-
-
Bueno, aquí estoy ... ver el enlace captura de pantalla .. no es fácil
También, no tengo nada en el archivo del cuaderno pero OK activación
https://www.cjoint.com/c/HIrqn23bUfO
RG14-
Necesitas abrir el libro: Classeur_essai
que vayas a ThisWorkbook y que copies todo el código a tu libro cliente (ThisWorkbook) modificando únicamente la fecha de última utilización.
en el libro: Activation,
no es necesario borrarlo, elimina eso:
Dim oWsh 'creer_vbs ' a activar Set oWsh = CreateObject("Shell.Application") 'oWsh.ShellExecute Workbooks(ActiveWorkbook.Name).Path & "\delete_file.vbs" ' a activar Set oWsh = Nothing End Sub Private Sub creer_vbs() Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(Workbooks(ActiveWorkbook.Name).Path & "\delete_file.vbs", ForWriting, True) f.write ("On Error Resume Next") & vbCrLf f.write ("Set fso = WScript.CreateObject(""Scripting.FileSystemObject"")") & vbCrLf f.write ("Dim path") & vbCrLf f.write ("path = WScript.ScriptFullName") & vbCrLf f.write ("GetPath = Left(path, InStrRev(path, ""\""))") & vbCrLf f.write ("Dim nomfichier: nomfichier = ""Activation.xls"" ") & vbCrLf ' cambiar el nombre y renombrar el libro a este nombre luego de haber cerrado f.write ("Dim lieufichier: lieufichier = GetPath & nomfichier") & vbCrLf f.write ("If fso.FileExists(lieufichier) Then") & vbCrLf f.write (" fso.deletefile lieufichier") & vbCrLf f.write (" fso.deletefile path") & vbCrLf f.write ("WScript.echo "" [OK] ¡El archivo ha sido eliminado!"" ") & vbCrLf f.write ("Else") & vbCrLf f.write ("WScript.echo "" [ ] ¡El archivo no existe!"" ") & vbCrLf f.write ("End If") & vbCrLf f.write ("Set fso = Nothing") & vbCrLf f.write ("WScript.Quit")
eso funcionará de todas formas
Voilà
@+ Le Pivert
-
-
-
Hola,
aunque sea de todos modos, podemos abrir un archivo negando la ejecución de las macros. Partiendo de ahí, toda protección será en vano. Sin mencionar al prudente que trabaja en una copia...
eric
--
Intentando continuamente, al final se consigue. Así que cuanto más falla, más probabilidades hay de que funcione. (los Shadoks)
Además del agradecimiento (sí, sí, ¡se puede hacer!), piensa en marcar como resuelto. Gracias-
Para RG14, aquí tienes una versión simplificada:
https://www.cjoint.com/c/HIsgeF7XMkQ
Hola eriiic,
abrir un archivo negando la ejecución de las macros
está previsto que el libro se cierre
trabaja en una copia...
eso no tiene ninguna incidencia así como renombrar el libro.
El código que está en la apertura busca la fecha que está en la base de registro.
El único medio es crackear la protección vba para obtener acceso a las macros.
Como decía al principio, para un profesional de Excel es bastante fácil!
Aquí queda
@+ El Pivert
-