Cómo recorrer un rango de celdas y añadir valor a cada celda

publicado por: Anonymous

soy nuevo en Visual Basic y estoy aprendiendo poco a poco Macros de Excel.
Tengo una tabla donde posee 5 columnas.

introducir la descripción de la imagen aquí

Lo que necesito es super simple.
Necesito filtrar el criterio de estilo y diseño, con la finalidad de que el rango ("C5:F15"), es decir el rango de valores, puedan sumar un valor de 100 cuando la celda posea el valor Ej:Celda("D4") sería 500,00 + 100 = 600,000. Es decir, las celdas vacías no se sumen.

La idea es hacerlo con Macros, pero recién estoy aprendiendo.

solución

Algo sencillo:

Sub suma_100()

    Dim rango As Range
    Dim celda As Range

    Set rango = Range("D4:F15")

    Application.ScreenUpdating = False

    For Each celda In rango

        If celda.Value > 0 And Cells(Celda.Row, "C") = "Estilo" Or celda.Value > 0 And Cells(Celda.Row, "C") = "Diseño" Then celda.Value = celda.Value + 100

    Next

    Application.ScreenUpdating = True

End Sub

Lo que hago es definir un rango de datos, el que has puesto y luego evaluar cada una de las celdas de ese rango. Si la celda tiene valor le sumo 100.

Ojo que habría que añadir más cosas si quieres evitar errores porque alguien escriba texto, por ejemplo.

También podría hacerse cómo dice el compañero, metiendo los valores en un array, evaluando esos valores y sumando 100 y volcando de nuevo el array a la hoja con el resultado.
Para un rango muy grande de datos esto último es mucho más eficiente.

P.D. El código lo he escrito para ejecutarlo en la propia hoja donde tienes los datos.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *