Limitar en el tiempo el uso de un archivo EXCEL

Resuelto
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

8 respuestas

  1. RG14
     
    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
    3
    1. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
       
      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
      0
  2. RG14 Mensajes publicados 77 Estado Miembro 2
     
    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
    1
  3. Usuario anónimo
     
    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
    0
  4. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
     
    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
    0
  5. RG14 Mensajes publicados 77 Estado Miembro 2
     
    No domino, de hecho (soy un manitas personal...)
    no encuentro Worbook_BeforeClose
    ¿cómo hacerlo??
    gracias
    0
    1. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
       
      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 @+
      0
  6. RG14 Mensajes publicados 77 Estado Miembro 2
     
    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
    0
    1. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
       
      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
      0
  7. RG14
     
    Creo que no estoy a la altura… no puedo abrir el libro de Excel.
    0
    1. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
       
      Hay que abrir el libro Activation, seguir las explicaciones para hacer operativo el libro Classeur_essai

      Ya no puedo hacer más

      @+
      0
  8. eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
     
    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
    0
    1. cs_Le Pivert Mensajes publicados 8437 Estado Colaborador 730
       
      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
      0