Ir al contenido principal

macros: controlar el tiempo desde excel - OnTime()

Muchas veces nos veremos en la necesidad de realizar acciones a una hora determinada, por ejemplo:
1) cerrar el libro
2) efectuar un backup de datos
3) llamar a un procedimiento o funcion
4) etc, etc.

Comentarios

  1. Hola Damian, Cordial saludo

    Solicito tu ayuda, trengo problemas al abrir un archivo realizado en excel 2007, para abrirlo en 2010, con el código de encriptar que vos mismo muy amablemente nos brindaste, y es lo siguiente:
    Siempre que abro el libro en excel 2010, muestra un mensaje diciendo: Excel ha encontrado contenido que no se puede leer. Desea recuperarlo?, y al decir SI, abre el libro, pero:
    1. El libro contiene vínculos a otros orígenes, como ver esos vínculos y elimininarlos cuando yo no tenía ningún tipo de vínculos?
    2. Muestra error 16360 02.xlm
    Registros quitados Rango con nombre de /xl/workbook.xlm parte (libro)
    Si le doy click en el enlace, presenta la misma información en una página web en html,
    3. Pero cada vez que abro el libro se presenta la misma situación

    4. Al registrar el serial y darle aceptar lanza una advertencia de:
    Microsoft Visual Basic:
    Se ha producido error "1004", Error en el método "Save", de objeto "_Workbook", y por supuesto no permite abrir la aplicación.

    ESTE ES EL CÓDIGO QUE TENGO EN EL WORKBOOK
    Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Sheets("BIENVENIDA").Select
    Range("D17").Select

    ' Codigo Encriptar No. Serie
    If Sheets("xxx").Range("a3").Value = 1 Then Exit Sub
    ' Toma los 3 primeros caracteres del path en donde se ejecuta el libro,
    'y así obtengo, por ejemplo, C:\ ó cualquier otra letra
    Ruta = Left(ActiveWorkbook.Path, 3)
    If DiscoApto(Ruta) = False Then
    'si la funcion es False, aviso y cierro el libro:
    MsgBox "No se pueden Copiar los archivos al disco duro de su máquina.", vbCritical, "Error"
    ActiveWorkbook.Close xlDoNotSaveChanges
    Else
    With Sheets("xxx")
    'si se ejecuta en el disco correcto, guardo su nro de serie
    .Range("A1").Value = TomarNroDeSerie(Ruta)
    'encripto el nro de serie y lo guardo:
    .Range("A2").Value = EncriptarNroDeSerie(.Range("A1").Value)
    End With
    'en la hoja "bienvenida" (que será la única visible del proyecto)
    'coloco en A2 el nro de serie del disco, avisando al cliente que
    'debe pasarmelo para activar el libro:
    Sheets("BIENVENIDA").Range("A2") = Sheets("xxx").Range("A1").Value
    End If
    ActiveWindow.DisplayWorkbookTabs = False
    End Sub

    Private Sub CommandButton1_Click()
    frmActualizar.Show
    End Sub


    Y ESTE ES EL CÓDIGO QUE TENGO EN EL BOTON

    Unload Me
    Sheets("VBA Times").Visible = True
    Sheets("VBA Times").Select
    Hoja1.Visible = True
    Hoja2.Visible = True
    Hoja3.Visible = True
    Hoja4.Visible = True
    Hoja5.Visible = True
    Hoja7.Visible = True
    Sheets("BIENVENIDA").Visible = False
    End If
    End If
    End If
    End If
    ActiveWorkbook.Save
    End Sub


    Gracias por tu colaboración

    Armand

    ResponderEliminar
  2. Quizas uno de los problemas a que debes guardarlo como "libro habilitado para macros".
    Enviame el archivo asi lo estudio un poco y veo si puedo solucionarlo.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

macros: como enviar mails desde Excel (vba)

Un gran amigo "on-line", Johan Moreno, de Colombia , me hizo llegar la inquietud de cómo enviar mails desde Excel . Si bien contaba con algunas líneas de código sobre el particular, decidí retomar mi ejemplo y adaptarlo mejor a las circunstancias. Hace unos minutos termino de remitirle un correo con la solución a Johan... desde Excel y con un archivo adjunto, mismo que transcribo a continuación para ayudar a todos con esta tarea. Veamos primero las dos formas principales de enviar mails: mediante Outlook o nuestro Web Mail ( yahoo, gmail, hotmail, etc, etc ) No soy usuario de Outlook en lo absoluto: no confío en los agujeros de seguridad que continuamente aparecen y, por otro lado, t eniendo a mi alcance una herramienta tan poderosa (y gratuita) como Gmail, la cual ahora también permite sincronizar los mensaje con la Pc para verlos offline (deben activarlo en "google labs") ... no creo que me haga usuario ni hoy ni mañana. Igualmente mas adelante daré una solució

funciones: convertir numeros a letras con excel

En realidad hace tiempo que vienen consultándome sobre esto... quizás cinco o seis años . Debe ser una de las funciones mas buscadas de Excel, por lejos: la posibilidad de escribir: 1.534,63 y que en una celda aparezca magicamente "un mil quinientos treinta y cuatro c/15/100". Aquí les dejo una solución, basada en funciones , sin utilizar macros, la cual preparé exclusivamente para este Blog. A pesar de los millones de usuarios que requieren esta herramienta, no viene incorporada en Excel, debemos armarla nosotros mismos .  Luego de la imagen irá la explicación de como llegué a lograr esto, dado que es un proceso medianamente complejo , que utiliza tres o cuatro funciones básicas y requiere de varios pasos. así quedará nuestra planilla y siempre devolverá en letras el valor que ingresemos en A1 [+/-] Ver el resto / Ocultar Desde ya aclaro: esta no es " la forma " de hacerlo, simplemente es una mas, evitando el uso de macros. Sobre esta base, comencemos: 1) El núme

sopa de letras en excel

Un lector me comenta que pudo visualizar varias sopas de letras en YouTube, realizadas con Excel. Inmediatamente me dirigí a dicho sitio y busqué información al respecto. Los ejemplos son buenos y si, efectivamente, podemos armar una muy buena "sopa de letras", salvo que (digamos) es un trabajo bastante manual, cosa que intento evitar a toda costa en mis proyectos. Obviamente que la tarea de automatización incluye Macros, lo cual me insume tiempo, pero queda mucho mejor. Vamos primero a explicar muy brevemente la forma de realizar esta juego "a la clásica", para luego pasar a un desarrollo mucho mas complejo, pero también automatizado y realista. la clásica grilla de una sopa de letras [+/-] Ver el resto / Ocultar Bien, analicemos un poco la imagen superior: 1) es una grilla de 20 filas x 20 columnas, aunque bien podríamos hacerla del tamaño que quisiéramos. 2) Cada celda tiene una letra, que fue generada  mediante la anidación de dos funciones. 3) Vean ahora la ba