MS Excel 2003: sobrescribir el valor de la columna B cuando el valor de la columna A es mayor

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

MS Excel 2003: sobrescribir el valor de la columna B cuando el valor de la columna A es mayor

Este tutorial de Excel explica cómo escribir una macro (con capturas de pantalla e instrucciones paso a paso) para sobrescribir un valor en una columna cuando otro valor es mayor en Excel 2003 y versiones anteriores.

Problema: en Microsoft Excel 2003/XP/2000/97, tengo una hoja de cálculo con una lista actualizada regularmente de precios de acciones en la columna A descargada de la web. En la columna B, quiero registrar (automáticamente) que se ha alcanzado el precio máximo por acción. Entonces, quiero que la columna B aumente al valor de la columna A, pero solo si la columna A> columna B.

R: Esto se puede hacer con macros.

Veamos un ejemplo.

Descargue la hoja de cálculo de Excel (que se muestra a continuación)

En nuestra hoja de cálculo, las cotizaciones diarias se almacenan en la columna A y los precios máximos se almacenan en la columna B.

Ponemos un botón en la hoja de trabajo que, al hacer clic, actualizará el valor en la columna B si el valor correspondiente en la columna A es mayor. Cuando la macro esté completa, aparecerá el siguiente mensaje.

Para ver la macro, presione Alt+F11 y haga doble clic en el módulo llamado Módulo1 en la ventana izquierda.

Si la macro necesita examinar más de las primeras 200 filas en la hoja de cálculo, es posible que deba modificar la variable Lrows.

codigo macro

Este código de macro se ve así:

Sub UpdateHighestPrices()

   Dim LLoop As Integer
   Dim Lrows As Integer
   Dim LQuote As String
   Dim LHighestVal As String

   'Update first 200 rows in spreadsheet with highest prices
   Lrows = 200

   LLoop = 2

   'Check first 200 rows in spreadsheet
   While LLoop <= Lrows
      LQuote = "A" & CStr(LLoop)
      LHighestVal = "B" & CStr(LLoop)

      'Update value in column b, if value in column B is higher
      If Range(LQuote).Value > Range(LHighestVal).Value Then
         Range(LHighestVal).Value = Range(LQuote).Value
      End If

      LLoop = LLoop + 1

   Wend

   MsgBox "The highest prices have been updated."

End Sub
(Visited 72 times, 1 visits today)