Insertar una fila en blanco si se da una condición

Quisiera una fórmula que me inserte una fila en blanco si de da una condion, (o una macro simplejajaja)

Tengo una hoja de excel, en la que tengo nro de tarjetas( de marcación horaria, la fecha, la hora de marcación y el evento(entada o Salida), quisiera una fórmula o macro que me inserte una fila en blanco cada vez que cambia el nro de tarjeta, ya tengo una macro que me las ordena según el nro de tarjeta, hice una fórmula que en la columna J me pone la palabra cambiar cada vez que cambia de nro de tarjeta, lo que pretendo es agregar una fila sobre la palabra cambiar, así separo los nros de tarjetas con una fila en blanco

Aclaro que mi planilla puede trabajar con hasta 100000 filas.

1 respuesta

Respuesta

H o l a:

Te anexo la macro para insertar una fila antes de la palabra "cambiar"

Sub InsertarFila()
'Por.Dante Amor
    col = "J"
    For i = Range(col & Rows.Count).End(xlUp).Row To 1 Step -1
        If Cells(i, col) = "cambiar" Then
            Rows(i).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        End If
    Next
    MsgBox "Fin"
End Sub

Si quieres que la fila se inserte después de la palabra cambiar entonces:

Sub InsertarFila()
'Por.Dante Amor
    col = "J"
    For i = Range(col & Rows.Count).End(xlUp).Row To 1 Step -1
        If Cells(i, col) = "cambiar" Then
            Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        End If
    Next
    MsgBox "Fin"
End Sub

Prueba y me comentas.


' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

Buenas, muchas gracias pero no me esta funcionado o no se como usarla, yo tengo en la misma hoja un botón que me ordena los valores, y luego de esto quiero que aplique lo de separar por fila 

o sea pretendo que cada vez que presione el botón, los ordene y luego me separe con la fila en blanco cada vez que cambia el Nro de tarjeta, así los puedo ver mas facil, no se si deberia posicionarme en alguna celda en especial para ejecutar la macro

de paso te comento que yo ire agregando registros en esta hoja, que por lo general los pego, y son muchas filas, y cada vez que presionaría el botón para que se ejecute la macro y me haga lo que te comente( ordenar y separar con la fila)

como serán muchos datos se me había ocurrido ver la posibilidad de que la macro se ejecute entre tal y tal fila, así no consume tantos recursos cada vez que se ejecute, por ejemplo si ya tengo todo ok hasta la fila 5000 y pego 1000 filas mas, que me permita decirle aplica la macro entre las filas 5000 y 6000( obvio tener dos celdas en las cuales pueda poner estos valores) espero no complicarte muchoojajaja. pasa que antes programaba en VB 6 y todo esto lo podía hacer, pero no manejo nada de macros en excel

Muchas Gracias

como podría enviarte adjunto el excel en cuestión???

Después de ejecutar tu macro, tienes que ejecutar la macro "InsertarFila".

Según entiendo tienes una fórmula que pone "cambiar" cada que hay un cambio de tarjeta.

Tendría que revisar cómo tienes tu macro y cómo tienes tu fórmula. Pero no pusiste ni la macro ni la fórmula, ni tampoco cómo tienes los datos.

Envíame tu archivo y te creo una sola macro sin necesidad de fórmulas.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “jorgeb2010” y el título de esta pregunta.

Te anexo la macro

Sub ejecutar()
'Por.Dante Amor
    ' con esta funcion de abajo me ordena las tarjetas , por año, luego por mes y finalmente por nro de tarjeta
    col = "C"
    u = Range(col & Rows.Count).End(xlUp).Row
    Range("B1:I" & u).Sort Key1:=Range("H2"), Order1:=xlAscending, Key2:=Range("i2"), Order2:=xlAscending, Key3:=Range("C2"), Order3:=xlAscending, Header:=xlYes
    '
    ' inserta fila
    Application.ScreenUpdating = False
    u = Range(col & Rows.Count).End(xlUp).Row
    ant = Cells(u, col)
    For i = u To 1 Step -1
        If Cells(i, col) <> ant Then
            Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
        End If
        ant = Cells(i, col)
    Next
End Sub

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas