Contar aperturas planilla

Hola Experto: ante mi ignorancia al respecto, en su momento (de esto hace algo más de un año) ante una consulta, Uds. Me pasaron la siguiente subrutina para controlar las fechas "topes" de apertura de una planilla, la que - por supuesto - me está funcionando perfectamente:
Sub Fechas()
Dim FechaInicio As Date, FechaFin As Date, Hoy As Date
FechaInicio = "06/09/2010"
FechaFin = "30/09/2010"
Hoy = Day(Date) & "/" & Month(Date) & "/" & Year(Date)
If Hoy < FechaInicio Then ThisWorkbook.Close
If Hoy > FechaFin Then ThisWorkbook.Close
End Sub
La cuestión ahora pasa por querer agregar a esa subrutina un "tope" en la cantidad de aperturas de la planilla (ejemplo 5 veces). Superada esa cantidad de intentos, aun cuando la fecha se encuentre dentro de los parámetros establecidos, negar el ingreso a la planilla. Esto es en virtud de que como está originalmente pensada, cambiando la fecha de la PC, las misma se puede abrir indefinidamente, por lo que quiero establecer las dos posibilidades en la misma rutina.
Saludos y muchas gracias

1 Respuesta

Respuesta
1
Prueba con esto:
Private Sub Workbook_Open()
    Hoja1.Activate
    If Hoja1.Range("IV65536").Value > 3 Then Me.Close
    Hoja1.Range("IV65536").Font.Color = vbWhite
    Hoja1.Range("IV65536").Value = Hoja1.Range("IV65536").Value + 1
    Range("A1").Select
    Me.Save
End Sub
Lo pegas en el evento Workbook_Open
Cada vez que habrá el libro en la celda IV65536 se sumara 1, de tal forma que
    If Hoja1.Range("IV65536").Value > 3 Then Me.Close   ' cerrara el libro si la celda mantiene un valor mayor que 3, claro este valor tu lo decides en función de cuantas aperturas deseas otorgar, Claro que con esto, ni tu podras abrirlo, al menos de la forma tradicional ( aunque no conozco la no tradicional, siempre hay algún truquillo por conocer o no ?).
Bien eso es todo
Si te sirve por favor no olvides finalizar la pregunta
Bye
Hola experto: Gracias por tu respuesta inmediata.
Voy a intentar la modificación que sugerís.
La pregunta es si la puedo agregar a la misma subrutina que chequea la fecha de la PC que es lo que realmente me interesa por una cuestión que semanalmente actualizo la planilla y la reenvió a terceros para su utilización, por lo que periódicamente debo ingresar a modificar los parámetros.
Por supuesto que conservo un "original" de la planilla que es sobre la cual trabajo donde la fecha tiene un límite a muy largo plazo y de agregar el conteo de aperturas sería valor "cero" o "en blanco". ¿Es así la cuestión?
El valor puede ser cero o en blanco ya que para este evento son equivalentes
ahora en cuanto a adaptarlo a tu macro, Mmmm. Entonces tendrías que cambiar el enfoque, puesto que si deseas contar las aperturas del archivo, lo lógico era poner el script en el evento open, pero la otra forma seria colocarlo en el evento Workbook_WindowDeactivate
pero solo esta parte :
Hoja1. Activate
    Hoja1.Range("IV65536").Font.Color = vbWhite
    Hoja1.Range("IV65536").Value = Hoja1.Range("IV65536").Value + 1
    Range("A1").Select
    Me. Sabe
Hoja1.Activate
en el evento open debes mantener:
   Hoja1.Activate
    If Hoja1.Range("IV65536").Value > 3 Then Me.Close
para que tenga efecto la validación de apertura
ahora bien, en tu macro puedes incluir una linea que invoque el script de actualización del evento  por ejemplo puedes crear la macro nombre
private sub Apertura()
Hoja1.Activate
    Hoja1.Range("IV65536").Font.Color = vbWhite
    Hoja1.Range("IV65536").Value = Hoja1.Range("IV65536").Value + 1
    Range("A1").Select
    Me.Save
Hoja1.Activate
end sub
y en tu macro pones la llamada Call Apertura()
De esta forma cada vez que corras tu macro de fechas, a la vez invocaras el script, pero esto aplicara solo en ese evento ( que corras tu maro de fechas), por lo tanto si no corres la macro de fechas en cada apertura, podrías tener el caso de que tendrías más aperturas que las deseadas en función de no correr el macro de fechas, ¿no se si me explico?.
Bueno, pero eso es más o menos las alternativas que te puedo ofrecer.
No olvides finalizar tu pregunta
Bye

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas