Insertar una fila según condición de una celda

Tengo una tabla como esta

Precisaba que si dos celdas contiguas (columna Bruto y Exento) son iguales no haga nada y si la columna Exento es igual a 0 tampoco haga nada, ademas si la celda de la derecha (columna Exento) es diferente de cero (a veces se opera con cantidades negativas) me inserte esta misma fila justo debajo con todos su valores, pero en ese caso precisaba que me rectificase un valor en una tercera celda (columna Base), este valor tendría que ser la cantidad Exenta y en la columna Impuesto poner el valor a a 0.

En la imagen ya se ve como he creado una tercera linea a modo de ejemplo que duplica la tercera y refleja lo que preciso.

2 Respuestas

Respuesta
1

Prueba con esta macro, este es el resultado final

y esta es la macro

Sub INSERTAR_FILA()
Set DATOS = Range("A1").CurrentRegion

With DATOS

filas = .Rows.Count
For i = 2 To filas
otro:
bruto = .Cells(i, 2): exento = .Cells(i, 3)
If IsEmpty(exento) = True And IsEmpty(bruto) = True Then End
If exento = 0 Then GoTo SIGUIENTE
If bruto <> exento Then
.Cells(i, 2).Offset(1, 0).EntireRow.Insert
.Rows(i + 1) = .Rows(i).Value
.Cells(i, 4).Offset(1, 0).Value = .Cells(i, 3).Value
.Cells(i, 5).Offset(1, 0).Value = 0
i = i + 1
End If
SIGUIENTE:
Next i
If i >= filas Then GoTo otro
End With
End Sub

Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas