Macro que calcule fórmula de una celda sólo si dos celdas adyacentes tienen valores diferentes

Tengo un listado de datos en algunas columnas, y un botón para actualizar las fórmulas que se encuentran en la columna D. En las columnas E y F hay datos numéricos. El problema es que al calcular la hoja completa se demora mucho, ya que calcula todas las fórmulas, incluso las que ya no debería calcular porque los valores de E y F son iguales.

Entonces, quisiera saber si es posible contar con una macro que evalúe si en una fila, el dato de la columna E y F son iguales o distintos, y si son distintos, ahí recién calcular la fórmula que está en la columna D. Si los datos son iguales, entonces pasar a la fila siguiente.

1 Respuesta

Respuesta
1

Esta macro es un ejemplo de lo que podría necesitar, ojala lo pueda adaptar a su macro

Sub comparar()
uf = Sheets("Resumen").Range("E" & Rows.Count).End(xlUp).Row + 1
    For j = 1 To uf
        v1 = Cells(j, 5).Value
        v2 = Cells(j, 6).Value
        If v1 = v2 Then
        Else
            Cells(j, 4).Value = v1 + v2
        End If
    Next j
End Sub

Muchas gracias Tor Cheer

En base a tu ejemplo, armé lo siguiente, sin embargo no hace lo que necesito, podrías ayudarme?

Private Sub CommandButton1_Click()
uf = Sheets("N° SESIONES").Range("E" & Rows.Count).End(xlUp).Row + 1
    For j = 1 To uf
        v1 = Cells(j, 5).Value
        v2 = Cells(j, 6).Value
        If v1 <> v2 Then
        Else
            Cells(j, 4).Rows.Calculate
        End If
    Next j
End Sub

Te agradezco

Perdón, este es el código, pero sigue sin funcionar

Private Sub CommandButton1_Click()
uf = Sheets("N° SESIONES").Range("D" & Rows.Count).End(xlUp).Row + 1
    For j = 1 To uf
        v1 = Cells(j, 5).Value
        v2 = Cells(j, 6).Value
        If v1 <> v2 Then
        Else
            Cells(j, 4).Calculate
        End If
    Next j
End Sub

Puede enviarme una copia de su archivo a mi correo [email protected] o subirlo a google drive u otra plataforma para compartirlo

Cuál es la parte errada que puedes ver en el código?

Si comparte una copia con datos ficticios de su archivo, es posible encontrar el problema, ya que a simple vista no puedo obtener un resultado concluyente. En las pruebas que hice hizo bien la operación.

Acá envío un archivo

https://drive.google.com/file/d/1KTny8O-3GR2fpJyD28k2-zwV6KmlcXLO/view?usp=sharing

En la hoja "N° SESIONES" hay columna con fórmula que cuentan cuántas veces se repite un nombre en la hoja "HORARIOS" (Columna F). Las columnas H, I, J cuentan cuantas veces se repite un nombre según el color de fondo de la celda. En la columna G (oculta) se suman los números de las columnas H, I, J, y si este conteo es distinto al de la columna F, entonces debe "calcularse" la columna D. Si bien esta columna tiene nombres, el calcular esa columna activa el cálculo de las columnas H, I, J  que dependen de otra macro (¿me explico bien?).

Por eso necesito que si la celda de la columna G (oculta) es distinta de la celda de la columna F, entonces se calcule la celda respectiva de la columna D.

Si los valores son iguales, que no calcule nada, para no perder tiempo.

Espero haberme explicado bien! Ojalá me puedas ayudar

Los colores de las celdas en la hoja "HORARIOS" se activan haciendo doble click

Ya tengo su archivo pero me sale un mensaje "No se puede encontrar el proyecto o la biblioteca" y no puedo hacer ninguna prueba

quizás haya alguna referencia que no tienes en tu PC, y que aparece en el libro de excel. Si es así, puedes eliminar esa referencia, ya que de todas formas no creo sea necesaria para ver el error del código por el que consulto

En esta parte de su comentario:

Por eso necesito que si la celda de la columna G (oculta) es distinta de la celda de la columna F, entonces se calcule la celda respectiva de la columna D.

¿Qué calculo o que resultado se obtendrá (columnas) en la Columna D?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas