Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Cronómetro con VBA para Excel


.

Procedimiento de VBA o Macro de Excel, si  descargas el ejemplo podrás ver tres  botones, apretando el botón iniciar, da inicio  al  cronometro, este corre  hasta que se haga click en el botón detener, copiando los datos del último contador antes de ser detenido.  Si se vuelve a hacer click en iniciar borra los datos anteriores y coloca la hora actual reiniciando el ciclo nuevamente si se detiene se copian los datos y así sucesivamente, el ejemplo de este cronometro se puede adaptar a cada aplicación, incluso puede ponerse en un formulario. Haciendo click en el link del final podrás descargar el ejemplo.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  
El ejemplo se puede descargar desde el link del final en forma GRATUITA, es un archivo comprimido donde hay un archivo de Excel con la Macro y un archivo de Word con las tablas de ejemplo que se importarán a Excel, se deben descromprimir los archivos y guardar los dos juntos en cualquier carpeta de la PC, pero juntos.

La macro que permite importar tablas de Word a Excel, en primero lugar abre el archivo de Word, luego se procede a recorrer todas las tablas de Word, en en ella todas las columnas y filas que componen la tablas, pasando los datos de Word a Excel; luego de haber importado los datos de Word, procede a dar formato a las celdas de Excel.

El procedimiento descripto lo hace con todas las tablas que hubiese en Word, al final sale un mensaje mostrando la cantidad de tablas importadas, en el vídeo encontrarás una explicación más detallada y gráfica del funcionamiento de la macro, el código completo del ejemplo se encuentra al final del post.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

El código se encuentra a continuación se debe ingresar en un módulo, descargando el ejemplo lo podrás ver en funcionamiento, analizar, modificar y adaptar a lo que tú estés realizando el código está abierto sin ningún tipo de restricción.

Código a insertar en módulo,

Option Explicit
Dim hssig, hsini As Date

Private Sub FinCron()
Application.ScreenUpdating = False
On Error Resume Next
Application.OnTime hssig, «Actualiza», , False
End Sub
Private Sub Actualiza()
‘Asignar hs a celda
Sheets(«hoja1»).Range(«h2»).Value = Now – Sheets(«hoja1»).Range(«f2»).Value
hssig = Now + (1 / 86400)
Application.OnTime hssig, «Actualiza»
End Sub
Private Sub IniciaCron()
    Actualiza
    hsini = Now
    Sheets(«hoja1»).Range(«f2»).Value = FormatDateTime(hsini, vbLongTime)
    Sheets(«hoja1»).Range(«g2»).Value = «»
End Sub
Private Sub StopCron()
    FinCron
    Dim UF As Long
    With Sheets(«hoja1»)
        .Range(«g2»).Value = FormatDateTime(Now(), vbLongTime)
        .Range(«h2»).Value = FormatDateTime(.Range(«g2») – .Range(«f2»), vbLongTime)
         UF = .[F1048576].End(xlUp).Row + 1
        .Cells(UF, 6).Value = .[f2].Value
        .Cells(UF, 7).Value = .[g2].Value
        .Cells(UF, 8).Value = [h2].Value
        .Range(«f» & UF & «:h» & UF).NumberFormat = «h:mm:ss»
    End With
End Sub
Private Sub reset()
Sheets(«hoja1»).Range(«a1:xdf1048576»).ClearContents
Columns(«h:h»).Select
Selection.NumberFormat = «hh:mm:ss;@»
End Sub 

Si te fue de utilidad puedes INVITARME
UN CAFÉ
 y de esta manera ayudar a seguir
manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was
helpful INVITE ME A COFFEE and so help keep
up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends