Auto Eliminar Libro

08/05/2007 - 16:39 por Luis | Informe spam
Qué tal??! Me gustaría que me ayuden con lo siguiente: Necesito que un
Libro de Excel se Elimine por completo de una computadora luego de que
llegue determinada fecha o que haya sido utilizado un número máximo de
veces, lo que ocurra primero... Es posible?? Lo necesito urgente..
Muchísimas Gracias!!!

Saludos!!

Preguntas similare

Leer las respuestas

#1 Norman Jones
08/05/2007 - 18:04 | Informe spam
Hola Luis,

'--
Me gustaría que me ayuden con lo siguiente: Necesito que un
Libro de Excel se Elimine por completo de una computadora luego de que
llegue determinada fecha o que haya sido utilizado un número máximo de
veces, lo que ocurra primero... Es posible?? Lo necesito urgente..
'--

Colocar el siguiente codigo en el modulo VBA
ThisWorkbook :

'=>>
Private Sub Workbook_Open()
Dim NME As Name
Dim i As Long
Dim myDate As Date
Const sStr As String = "myCount"
Const myMax As Long = 5 '<< CAMBIAR

myDate = DateValue("1/6/2007") '<< CAMBIAR

On Error Resume Next
Set NME = Me.Names("myCount")
On Error GoTo 0

If Not NME Is Nothing Then
NME.RefersTo = Evaluate(NME.Name) + 1
Else
Set NME = Me.Names.Add(Name:=sStr, _
RefersTo:=1, _
Visible:=False)
End If

If Evaluate(NME.Name) > myMax _
Or Date > myDate Then
With Me
Application.DisplayAlerts = False
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
Application.DisplayAlerts = True
End If

End Sub
'<<


Regards,
Norman
Microsoft Excel MVP
Respuesta Responder a este mensaje
#2 Héctor Miguel
08/05/2007 - 19:26 | Informe spam
hola, chicos !

solo una 'observacion' relacionada con la forma de establecer la 'fecha limite' con la instruccion:
-> myDate = DateValue("1/6/2007") '<< CAMBIAR

que debiera significar 'myDate' -> "1/6/2007" ???
-> enero seis de 2007 ?
-> uno de junio de 2007 ?
el como la 'interprete' el codigo dependera del orden de fecha en la configuracion regional del equipo donde se ejecute
-> para evitar instrucciones de interpretacion 'ambigua' o insegura [sobre todo con las fechas]
se sugiere el uso de funciones mas... 'seguras' [p.e.] -> myDate = DateSerial(Year, Month, Day)

[my $0.02] ;)

saludos,
hector.

... Necesito que un Libro de Excel se Elimine por completo de una computadora
luego de que llegue determinada fecha o que haya sido utilizado un número maximo de veces
lo que ocurra primero... Es posible?? Lo necesito urgente..

Colocar el siguiente codigo en el modulo VBA ThisWorkbook :
'=>>
Private Sub Workbook_Open()
Dim NME As Name
Dim i As Long
Dim myDate As Date
Const sStr As String = "myCount"
Const myMax As Long = 5 '<< CAMBIAR
myDate = DateValue("1/6/2007") '<< CAMBIAR
On Error Resume Next
Set NME = Me.Names("myCount")
On Error GoTo 0
If Not NME Is Nothing Then
NME.RefersTo = Evaluate(NME.Name) + 1
Else
Set NME = Me.Names.Add(Name:=sStr, _
RefersTo:=1, _
Visible:=False)
End If
If Evaluate(NME.Name) > myMax _
Or Date > myDate Then
With Me
Application.DisplayAlerts = False
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
Application.DisplayAlerts = True
End If
End Sub
'<<>>
Regards,
Norman
Microsoft Excel MVP
Respuesta Responder a este mensaje
#3 KL
08/05/2007 - 19:38 | Informe spam
Hola chicos,

"Héctor Miguel" wrote
-> myDate = DateValue("1/6/2007") '<< CAMBIAR
se sugiere el uso de funciones mas... 'seguras' [p.e.] -> myDate = DateSerial(Year, Month, Day)



Mas opciones +/- universales:

Sub test()
mydate1 = #6/1/2007#
mydate2 = #1-jun-2007#
mydate3 = DateValue("2007-6-1")
End Sub

Saludos,
KL
Respuesta Responder a este mensaje
#4 Héctor Miguel
08/05/2007 - 20:06 | Informe spam
hola, chicos !

KL escribio en el mensaje ...
Mas opciones +/- universales:
Sub test()
mydate1 = #6/1/2007#
mydate2 = #1-jun-2007#
mydate3 = DateValue("2007-6-1")
End Sub



parece que las 'formas' mydate1 y mydate2 pudieran resultar no muy... 'seguras' -?-
segun: -> Stephen Bullen's: Excel 2002 VBA Programmer's Reference: International Issues /Ch.22
-> http://www.bmsltd.ie/ExcelProgRef/Ch22/default.htm
en la seccion: Date Literals -> un parrafo antes de las funciones IsNumeric(), IsDate()

saludos,
hector.
Respuesta Responder a este mensaje
#5 KL
09/05/2007 - 12:22 | Informe spam
Hola HM,

"Héctor Miguel" wrote
parece que las 'formas' mydate1 y mydate2 pudieran resultar no muy... 'seguras' -?-
segun: -> Stephen Bullen's: Excel 2002 VBA Programmer's Reference: International Issues /Ch.22
-> http://www.bmsltd.ie/ExcelProgRef/Ch22/default.htm
en la seccion: Date Literals -> un parrafo antes de las funciones IsNumeric(), IsDate()



Yo diria que es una de aquellas razones que yo llamo rebuscadas (en ruso: chupadas de un dedo). Usar los literales de fechas es tan
peligroso como programar en VBA en general - todo es US-Centric :-). Por otra parte la forma mydate2 excluye la posibilidad de error
a la hora de introducir la fecha. Nunca he tenido estos problemas, pero, vamos, si podria ser un riesgo :-)

Saludos,
KL
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida