Macro en excel para multiplicar por -1

Tengo la siguiente hoja de excel y lo que quiero hacer es lo siguiente:

Si en la columna A el valor es "EXP", entonces tiene que multiplicar el valor por (-1) y si no es un EXP entonces que deje el valor que tenia.

La cosa es que el rango es dinámico, ya que, puede tener más de 12 filas y puede tener más de 12 meses.

Lo único que se me ha ocurrido es colocar un -1 en algún lugar escondido y hacer la multiplicación pero esto no me sirve.

Tengo también el siguiente código

Sub Macro2()

If Range("A5") = "EXP" Then
Range("D18").Select
Selection.Copy
Range("B5").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
End Sub

Como se ve solamente lo pude hacer para un valor y necesito que sea dinamico.

1 Respuesta

Respuesta
2

[Hola 

Te paso la macro 

Sub multiplicar()
'
'[Por Adriel Ortiz
'
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
    For j = 2 To Cells(4, Columns.Count).End(xlToLeft).Column
        If Cells(i, "A") = "EXP" Then
          Cells(i, j) = Cells(i, j) * -1
        End If
    Next j
Next i
End Sub

Valora la respuesta para finalizar Excelente o bueno saludos!

Hola,

Funciona perfecto pero me he olvidado de un detalle.

En el caso de que una de las celdas este en blanco, me debe dejar la celda en blanco. Si lo hago con la macro que me has enviado y tengo un valor en blanco lo que hace es colocarme un cero.

Gracias

Macro actualizada

Sub multiplicar()
'
'[Por Adriel Ortiz
'
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
    For j = 2 To Cells(4, Columns.Count).End(xlToLeft).Column
        If Cells(i, "A") = "EXP" And Cells(i, j) <> "" Then
          Cells(i, j) = Cells(i, j) * -1
        End If
    Next j
Next i
End Sub

Hola, Me funciona perfecto la macro

Ahora tengo otra pregunta. Sabes que la macro comienza a multiplicar en el B4.

¿Y si no sabes en que columna va a comenzar? Es decir, siempre va a comenzar en la fila 4, pero no sabes si comienza en el B4 o en el E4 por ejemplo ya que es dinámico. ¿Hay alguna forma de hacerlo dinámico?

Gracias,

Si es posible, valora esta respuesta y crea una nueva pregunta saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas