Jump to content
Sign in to follow this  
juandi

[Solucionado] Se abre solo el libro

Recommended Posts

Gente, como va

El codigo de abajo es que utilizo para calcular la funcion Sumarcolor que esta colocada en varias celdas, y que se calcula cada 6 segundos, el problema es que cierro el libro, guardando o no los cambios ,y se vuelve a abrir solo, que puede estar pasando??

Function Sumarcolor(Celdacolor As Range, Rangosuma As Range) As Double

Dim celda As Range

For Each celda In Rangosuma

If celda.Interior.ColorIndex = Celdacolor.Cells(1, 1).Interior.ColorIndex Then Sumarcolor = Sumarcolor + celda

Next celda

Set celda = Nothing

Application.Volatile

End Function

Sub ClockParaSumarcolor()

If Stopit = True Then Exit Sub

[A1].Calculate

Application.ScreenUpdating = True

PESOS

Application.OnTime (Now + TimeSerial(0, 0, 6)), "ClockParaSumarcolor"

End Sub

Private Sub Workbook_Open()

ClockParaSumarcolor

End Sub

Private Sub Worksheet_Activate()

Stopit = False

ClockParaSumarcolor

End Sub

Private Sub Worksheet_Deactivate()

Stopit = True

End Sub

Share this post


Link to post
Share on other sites

Re: se abre solo el libro??

Hola,

cuando cierres el libro tienes que evitar que se vuelva a ejecutar la macro ClockParaSumarcolor.... veo que la cancelas o evitas que se ejecute cuando desactivas la página, pero no cuando lo cierres. Una vez cerrado, la macro se volverá a ejecutar.... prueba usando lo que usas en worksheet_deactivate en el evento cerrar el libro, algo así:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Stopit = True
End Sub[/CODE]

Share this post


Link to post
Share on other sites

Re: se abre solo el libro??

Hola,

cuando cierres el libro tienes que evitar que se vuelva a ejecutar la macro ClockParaSumarcolor.... veo que la cancelas o evitas que se ejecute cuando desactivas la página, pero no cuando lo cierres. Una vez cerrado, la macro se volverá a ejecutar.... prueba usando lo que usas en worksheet_deactivate en el evento cerrar el libro, algo así:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Stopit = True
End Sub[/CODE]

Hola mauricio, prové poniendo el codigo pero a los 6 segundos se abre de nuevo, tanto si guardo los cambios o no.

que otra cosa puedo provar. Lo que nesecito es que sume las celda sin color, pero tuve que poner que esto se ejecute cada un tiempo ya que, antes funcionaba pero tenia que ejecutar celda por celda para que se actualizara, espro que me puedas ayudar!!!

saludos

Juan, Argentina

Share this post


Link to post
Share on other sites

Re: se abre solo el libro??

Hola juandi:

Pueda que nuestro amigo Mauricio se encuentre ocupado prueba con este codigo

En el libro

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.OnTime (Now + TimeSerial(0, 0, 6)), "ClockParaSumarcolor", schedule:=False

End Sub

Si es con un useroform

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

Application.OnTime (Now + TimeSerial(0, 0, 6)), "ClockParaSumarcolor", schedule:=False

End Sub

Share this post


Link to post
Share on other sites

Re: se abre solo el libro??

Hola juandi:

Pueda que nuestro amigo Mauricio se encuentre ocupado prueba con este codigo

En el libro

Si es con un useroform

Que tal, gracias por la respuesta, pero sigue sin funcionar, tanto si guardo o no los cambios, por favor que otra cosa puedo probar. Es muy importante para mi solucionarlo ya que es un informe que envio por mail, y lo he probado y hace desastre, gracias pur su interes.

saludos

Juandi, Argentina, cordoba

Share this post


Link to post
Share on other sites

Re: se abre solo el libro??

Hola juandi:

Sube un archivo de ejemplo con datos ficticios, para ver por que no te funciona.

Hola, quiero subirlo pero lo comprimo y me queda de 629 KB, como hago o estoy comprimiendo mal??

saludos y gracias

Share this post


Link to post
Share on other sites

Re: se abre solo el libro??

Hola juandi:

El codigo que has colocado esta con dos comas quitale una coma, a mi funciona he visto que tienes otros errores revisa bien las variables

Application.OnTime (Now + TimeSerial(0, 0, 6)), "ClockParaSumarcolor", , schedule = False

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.OnTime (Now + TimeSerial(0, 0, 6)), "ClockParaSumarcolor", schedule = False

End Sub

Share this post


Link to post
Share on other sites

Re: se abre solo el libro??

Hola juandi:

El codigo que has colocado esta con dos comas quitale una coma, a mi funciona he visto que tienes otros errores revisa bien las variables

Application.OnTime (Now + TimeSerial(0, 0, 6)), "ClockParaSumarcolor", , schedule = False

Cesar, aquite dejo el link donde ya corregí el error de la coma, http://www.megaupload.com/?d=0AC8K1VC

A mi se me sigue abriendo solo, y ahora que hago!!!

en el procedimiento ClockParaSumarcolor llamo a una procedimiento pesos, que estan ahi las variables que son privadas, no creo que eso ocasione porblemas.

Descargate el archivo y me contas

saludos

Juandi

Share this post


Link to post
Share on other sites

Re: se abre solo el libro??

Hola juandi:

El codigo que has colocado esta con dos comas quitale una coma, a mi funciona he visto que tienes otros errores revisa bien las variables

Application.OnTime (Now + TimeSerial(0, 0, 6)), "ClockParaSumarcolor", , schedule = False

Cesar, en esta link http://www.megaupload.com/?d=0AC8K1VC

esta el libro con la corrección de la coma, pero en mi pc se sigue abriendo solo, que puede hacer, le tengo que encontrar solución.

conrespecto a las variables se utlizan en un rpocedimiento que se llama peso, y que son variables privadas. este procedimiento lo llamo en "ClockParaSumarcolor", o sea que se hace ejecutra cada 6 segundos; no creo que este por ahi el problema. QUE PUEDO HACER??

Gracias de antemano saludos

Juan

Share this post


Link to post
Share on other sites

Re: se abre solo el libro??

Rolana, estimado, me alegra verte!!

Juandi,

por favor sigue con detenimiento estos pasos:

1. En el módulo1 cambia la variable pública stopit por esta: Public Cuando As Date (ingrésala al inicio del módulo);

2. Cambia la subrutina ClockParaSumarcolor así:

Sub ClockParaSumarcolor()
'Beep
[A1].Calculate
PESOS
Cuando = Now + TimeSerial(0, 0, 6)
Application.OnTime earliesttime:=Cuando, procedure:="ClockParaSumarcolor"
End Sub[/CODE]

3. Ingresa esta otra macro en el mismo módulo:

[CODE]Sub detener()
On Error Resume Next
Application.OnTime earliesttime:=Cuando, procedure:="ClockParaSumarcolor", schedule:=False
End Sub[/CODE]

4. En ThisWorkbook, usa las siguientes macro de evento:

[CODE]Private Sub Workbook_BeforeClose(Cancel As Boolean)
detener
End Sub
Private Sub Workbook_Deactivate()
detener
End Sub
Private Sub Workbook_Open()
ClockParaSumarcolor
End Sub[/CODE]

... cuando usas schedule:=false para desactivar ontime, debes indicar el mismo tiempo para el cual está programada la rutina, por eso es necesario guardar el tiempo en una variable pública ¿? no sé si se entienda, pero si sigues los pasos que te indiqué se debe solucionar el problema... por favor, nos avisas cómo te va.

Share this post


Link to post
Share on other sites

Re: se abre solo el libro??

Rolana, estimado, me alegra verte!!

Juandi,

por favor sigue con detenimiento estos pasos:

1. En el módulo1 cambia la variable pública stopit por esta: Public Cuando As Date (ingrésala al inicio del módulo);

2. Cambia la subrutina ClockParaSumarcolor así:

Sub ClockParaSumarcolor()
'Beep
[A1].Calculate
PESOS
Cuando = Now + TimeSerial(0, 0, 6)
Application.OnTime earliesttime:=Cuando, procedure:="ClockParaSumarcolor"
End Sub[/CODE]

3. Ingresa esta otra macro en el mismo módulo:

[CODE]Sub detener()
On Error Resume Next
Application.OnTime earliesttime:=Cuando, procedure:="ClockParaSumarcolor", schedule:=False
End Sub[/CODE]

4. En ThisWorkbook, usa las siguientes macro de evento:

[CODE]Private Sub Workbook_BeforeClose(Cancel As Boolean)
detener
End Sub
Private Sub Workbook_Deactivate()
detener
End Sub
Private Sub Workbook_Open()
ClockParaSumarcolor
End Sub[/CODE]

... cuando usas schedule:=false para desactivar ontime, debes indicar el mismo tiempo para el cual está programada la rutina, por eso es necesario guardar el tiempo en una variable pública ¿? no sé si se entienda, pero si sigues los pasos que te indiqué se debe solucionar el problema... por favor, nos avisas cómo te va.

Mauricio:

con los cambios que vos me sugeris, anda perfecto!!!, quiero agracederte a vos y a este gran foro, por el interes y la rapides en las respuetas, ademas de las respuestas suepr tecnicas que brindan. El tema esta cerrado.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy