Problema con un bucle

Hola compañero!
Otra vez yo molestando, bueno la verdad quiero saber si me puedes ayudar con unos códigos:
1. Es que no he podido hacer el código para que cada determinado tiempo se guarden los cambios o datos que halla digitado en excel automáticamente, eso si sin usar la opción de autorrecuperacion.
2 necesito cargar los datos digitados en el textbox1 del userform1 al texbox1 del userform2 tampronto despliegue el userform2
espero que me puedas ayudar te lo agradecería, que estés bien y disculpa la molestia.

1 Respuesta

Respuesta
1
La opción de guardar los datos una vez que tengas dado el nombre al libro, son dos formas una la que no te gusta la autorecuperación que este el código:
Sub Autorecuperación()
    With Application.AutoRecover
        .Enabled = True
        .Time = 5             'Este es el tiempo de autoguardado
    End With
End Sub
Y luego es el propio de guardar antes de darle nombre:
Sub Guardar_Como()
'Si quieres darle nombre desde un Inputbox pues añades esta linea:
archivo=Inputbox("Escribeel nombre del archivo")
    ChDir "C:\Documents and Settings\Usuario\Escritorio"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\USUARIO\Escritorio\" & archivo & ".xls", FileFormat:=xlNormal _
        , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False  Range("F8").Select
   End Sub
Y si ya le tienes puesto el nombre y tan solo quieres de vez en cuando guardar a tu elección sería este:
Sub Guardar()
ActiveWorkbook.Save
End Sub
Y si quieres que se guarden los datos cada cierto tiempo teniendo dado el nombre al libro sería así:
Sub Auto_Open()
Application.OnTime Now + TimeValue("00:05:00"), "Guarda"
'Esta para 5 minutos lo cambias a tu gusto
End Sub
Sub Guarda()
ActiveWorkbook.Save
End Sub
Pones las 2 macros en un modulo
Respecto a cargar los datos del Userform1 en Userform2 quedaría así:
Private Sub Userform2_Initialize()
Textbox1.Value=Userform1.TextBox1.Value
End Sub
Esto sin que hayas cerrado el Userform1 puedes ocultarlo (Userform1. Hide) pero no cerrarlo porque los datos que poseen los controles de los Userform volátiles y no se guardan en memoria después de cerrarlos.
>Un saludo
>Julio
PD: Si te servió puntua y finaliza la consulta.
Hola,
gracias por contestar!
Mira que estos 2 códigos:
Sub Auto_Open() 
Application.OnTime Now + TimeValue("00:05:00"), "Guarda" 
'Esta para 5 minutos lo cambias a tu gusto 
End Sub 
Sub Guarda() 
ActiveWorkbook.Save 
End Sub
los he puesto en un solo modulo y cuando abro el libro pasados los 5 min efectivamente se guarda automaticamente toda la informacion, pero apartir que se autoguarda la primera vez no se vuelve a ejecutar el codigo es decir a los proximos 5 min ya no se autoguarda la informacion, sera que lo estoy poniendo mal????
Gracias por tamar de su tiempo para resolver inquietudes!
Que tengas un feliz día!
Entiendo que quieres que se ejecute cada cierto tiempo pero repetidas veces, no una vez solo, bien entonces hay que hacer modificaciones, desde la hoja de excel pulsas con el derecho sobre el icono de excel que hay a la izquierda del menú Archivo de la barra de herramientas, y eliges ver código, y le añades estas macros en la pantalla en blanco que aparece:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime dTime, "Guarda"
End Sub
Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:05:00"), "Guarda"
End Sub
Sub Guarda()
dTime = Now + TimeValue("00:05:00")
Application.OnTime dTime, "Guarda"
ActiveWorkbook.Save
End Sub
Y ahora en un modulo pones esta otra macro:
Sub Guarda()
dTime = Now + TimeValue("00:05:00")
Application. OnTime dTime, "Guarda"
ActiveWorkbook. Save
End Sub
De esta forma cada 5 minutos se realizará el guardado del Libro.
>Un saludo
>Julio
Hola gracias por contestar,
De verdad que esta de 10 el código que me has dado, pero hay un inconveniente cuando pasan los 5 minutos se ejecuta la macro para guardar dos veces seguidas, ¿sera por que en el libro se repite la macro que puse en el modulo? A continuación dejo el código que puse:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnTime dTime, "Guarda"
End Sub
Private Sub Workbook_Open()
UserForm6.Show
Application.OnTime Now + TimeValue("00:010:00"), "Guarda"
End Sub
Sub Guarda()
dTime = Now + TimeValue("00:010:00")
Application.OnTime dTime, "Guarda"
ActiveWorkbook.Save
End Sub
y en el modulo tengo el siguiente:
Sub Guarda()
dTime = Now + TimeValue("00:010:00")
MsgBox "SE PROCEDERA A GUARDAR TODA LA INFORMACION", vbOKOnly + vbInformation, "AUTOGUARDAR"
Application.OnTime dTime, "Guarda"
ActiveWorkbook.Save
MsgBox "INFORMACION GUARDADA CON EXITO", vbOKOnly + vbInformation, "AUTOGUARDAR"
End Sub
Espero me puedas ayudar, que tengas un feliz día!
Te dije que la Sub Guarda iva en un módulo y tu has repetido en el Workbook y en el módulo, lógico que se ejecute 2 veces.
Osea que no hay inconveniente es que lo has puesto dos veces.
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas