Macro para insertar filas según valor de celdas

Estoy buscando una macro que me ayude a insertar filas antes o después de una fila, según el valor de una celda es decir, tengo 3 columnas y 100 filas rango A2:C101, en la columna "C", tengo el valor del cual va a depender la macro para insertar la fila antes o después de la fila que contiene esa celda.

Si el valor de la celda C5 es 1 entonces hay que insertar una fila antes de la fila 5

Si el valor de la celda C9 es 2 entonces hay que insertar una fila después de la fila 9.

Aquí dejo un ejemplo gráfico.

2 Respuestas

Respuesta
1

Depende como es que quieres ejecutar dicha macro, puedes empezar probando esto:

Suponiendo que ejecutaras la macro una vez cuando tu decidas en la fila que decidas, parandote en una de las filas a la que le quieres aplicar el efecto y presionando alguna combinacion de teclas que ejecute la macro:

Sub AddRow()
Dim cRow As Integer
cRow = ActiveCell.Row
Select Case Cells(cRow, 3).Value
Case 1
    ActiveCell.EntireRow.Insert
Case 2
    ActiveCell.Offset(1, 0).EntireRow.Insert
End Select
End Sub

Por ejemplo, en este vídeo que grabe, uso Crtl + R para ejecutarla.

Video demo: video demo

Andy

Excelente, muchas gracias

De nada

Respuesta
1

Prueba esta macro leerá tus datos y buscara los 1 y 2 dependiendo de lo que que tengas en la columna grupo insertara 1 fila abajo en caso de 2 i una fila arriba en caso de 1

Sub insertar_filas()
Set datos = Range("a1").CurrentRegion
With datos
    cuenta = WorksheetFunction.CountIf(.Columns(3), 1)
    cuenta2 = WorksheetFunction.CountIf(.Columns(3), 2)
    For i = 1 To cuenta
        If i = 1 Then Set busca = .Columns(3).Find(what:=1)
        If i > 1 Then Set busca = .Columns(3).FindNext(busca)
        Range(busca.Address).EntireRow.Insert
    Next i
    For i = 1 To cuenta2
        If i = 1 Then Set busca = .Columns(3).Find(what:=2)
        If i > 1 Then Set busca = .Columns(3).FindNext(busca)
        Range(busca.Address).Offset(1, 0).EntireRow.Insert
    Next i
End With
Set datos = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas