Como crear marco insertar fila y copiar dos fila anter

Buen día
Como podría crear una macro para que en la columna B si encuentra la palabra M/S inserte una fila y me copie en esa fila que inserta la información que esta en dos filas anteriores.
Por ejemplo si en B35 encuentra la palabra M/S inserte una fila y me copie en este caso lo que haya en la fila 33
Nota.- En la columna B la palabra M/S se puede encontrar en cualquier parte de la columna y varias veces.
Espero haberme explicado y agradezco de antemano tu apoyo
Saludos

1 respuesta

Respuesta
1
primero tendrías que evaluar cuántas veces aparece M/S en la columna B, eso lo puedes hacer por medio de la función =Contar.Si(), por ejemplo, en I2 pones: =Contar.Si(B2:B200,"M/S"). Una vez que tengamos las veces que apareces puedes ejecutar esta macro:
Sub CopiaFila()
'
' Rutina creada por FGS-COMPUTACION
Dim Cant As Long
Cant = Range("I2").Value
Range("B3").Select
For Cant = 1 To Cant
Cells.Find(What:="M/S", After:=ActiveCell, LookIn:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
ActiveCell.Offset(-2, 0).Select
ActiveCell.Offset(0, -1).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
ActiveCell.Offset(3, 0).Select
ActiveCell.EntireRow.Insert
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Next Cant
End Sub
[email protected]
Mil gracias por responder, he estado haciendo unas pruebas y solo hay pequeño detalle como modificar la macro para que me inserte y pegue los datos una fila arriba de la palabra M/S, es que me inserta y pega los datos abajo de la palabra M/S.
Saludos
Sub CopiaFila()
'
' Rutina creada por FGS-COMPUTACION
Dim Cant As Long
Cant = Range("I2").Value
Range("B3").Select
For Cant = 1 To Cant
Cells.Find(What:="M/S", After:=ActiveCell, LookIn:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
ActiveCell.Offset(-2, 0).Select
ActiveCell.Offset(0, -1).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
ActiveCell.Offset(2, 0).Select
ActiveCell.EntireRow.Insert
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
Next Cant
End Sub
Prueba con esta.
[email protected]
No funciono, mejor te envío el archivo a tu correo para una mejor compresión
Saludos
En cuanto lo tenga te aviso.
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas