Cómo actualizar una hoja de cálculo de Excel periódicamente con un temporizador VBA

Comparte ahora:

Este artículo muestra cómo actualizar una hoja de trabajo o un gráfico a intervalos regulares. Este ejercicio crea un temporizador que actualiza la hoja de trabajo cada minuto, reflejando los cambios en los datos de origen.

Este artículo asume que el lector muestra la cinta de desarrollador y está familiarizado con el editor de VBA. De lo contrario, busque en Google "Pestaña de desarrollador de Excel" o "Ventana de código de Excel".

Puede encontrar un ejemplo del libro de trabajo utilizado en este ejercicio aquí.

Los usos de los informes dinámicos pueden ser:

  • Consultar la base de datos propietaria que se suministra con el sistema telefónico de su empresa para analizar las llamadas.
  • Genere un número aleatorio cada 15 minutos a efectos de premios o rifas.
  • Envíe automáticamente correos electrónicos desde su base de datos local cuando se cumplan ciertos niveles. (aquí el temporizador decidirá si disparar el proceso o no, según los niveles alcanzados).

o el que usaremos:

  • Muestra el último tipo de cambio USD / EUR de Internet.

Los datos se extraen del Sitio web de Yahoo Finance cada minuto. Una vez probado con éxito, debe sustituirse por un intervalo de procesamiento más largo.

La interfaz

Abra un nuevo libro de trabajo;

Nombra la primera hoja "Pantalla". Dado que la tabla D8 a E11 se completará desde la web, no es necesario ingresar valores o encabezados de fila. El resto es opcional.Prepare la interfaz

El código

Abra la ventana del código VBA e inserte un módulo. Copie el siguiente código en el módulo.

El evento Auto_Open inicia el temporizador cuando se abre el libro de trabajo y lo detiene cuando se cierra, a menos que el desarrollador interrumpa el código durante el desarrollo.Código VBA

Sub Auto_Open()
AlertTime = Now + TimeValue("00:01:00") 'interval in minutes
Application.OnTime AlertTime, "Ticker"      'call Sub Ticker, below
End Sub

Sub Ticker()
    Dim currBuy As String
    Dim currSell As String

    Range("D8:F11").ClearContents            'prepare the destination for the web data
    currBuy = "USD"
    currSell = "EUR"
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://finance.yahoo.com/q?s=" & currBuy & currSell & "=X", Destination:=Range("$D$8"))
        .Name = "q?s=" & currSell & currBuy & "=X"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = """table1"""
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
    AlertTime = Now + TimeValue("00:01:00") ‘move trigger on a minute
    Application.OnTime AlertTime, "Ticker"
End Sub

El Resultado

Cada n minutos se actualizará la tabla en la hoja "Pantalla" desde el sitio web de Yahoo. Consulte el sitio web de Microsoft para obtener conexiones de datos más complejas.

Recuperación de libros de trabajo dañados

Se sabe que Excel se bloquea en momentos inesperados, probablemente debido a una falta de recursos. En tales casos, el archivo de origen puede dañarse irremediablemente y negarse a volver a abrirse. En ausencia de copias de seguridad frecuentes, una herramienta para recuperar Excel corrompido Los archivos serían invaluables.

Introducción del autor:

Felix Hooker es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo rar fix y productos de software de recuperación de sql. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.