Macro para agregar filas si encuentro un dato

Tengo un archivo de excel donde, de manera manual, tengo que insertar filas cuando existe una determinada condición. Después se vuelve más complejo el proceso, pero me gustaría resolver con una macro la cuestión de agregar filas por debajo de la fila que cumpla la condición. Por ejemplo si no encuentra la palabra enero que me ponga una fila de bajo

1

1 Respuesta

539.100 pts. Por cuestiones de tiempo y de la increíble desidia de...

.

Buenas, Alejandro

La siguiente macro, inserta una fila completa debajo de la fila donde estés:

Sub InsFilaAbajo()
    ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown
End Sub

Creo que sería útil que le asignes un atajo de teclado de forma tal que puedas utilizarla más fácilmente.

Para lo del atajo, haz:

"Vista" | "Macros"

Selecciona allí (un sólo click sobre) la nueva macro ingresada y presiona el botón "Opciones". En la pantalla siguiente ingresa la letra a la que quieres asociar la macro. Por supuesto evita aquellas que ya están siendo utilizadas por MS Excel como atajo (v.g. Ctrl + C, Ctrl + X, etc)

Luego de aceptar, cuando presiones Ctrl más la letra indicada, la macro se ejecutará instantáneamente.

Espero que te sea de ayuda.

Un abrazo

Fernando

.

.

Cierto: faltó considerar lo de la condición para que se inserte la fila abajo.

El tema es que no dijiste dónde -en qué rango/celda- debe buscarse esa palabra.

La rutina siguiente hace la búsqueda en toda la fila actual, la de la celda que tengas seleccionada cuando ejecutas la macro.

Además, dejé una variable, por si la palabra fuese otra.

Sub InsFilaAbajo()
PalabraBusca = "Enero"
Set Encontrado = ActiveCell.EntireRow.Find(What:="PalabraBusca", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
If Encontrado = Nothing Then ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown
Set Encontrado = Nothing
End Sub

Ojalá sea lo que buscas.

Abrazo

Fernando

Pero donde esta la parte donde busca mira tengo una columna con los nombres de los meses si no encuentra uno que ponga una fila en blanco donde debe de ir ese mes ¿¿¿

.

Pues precisamente esa era mi pregunta anterior, porque no habías mencionado dónde tendría que buscar la palabra.

Por lo tanto, infiero que tampoco se trata de una unica palabra sino buscar los meses que faltan en un listado como este:

Es decir que la rutina debe completar los doce meses insertando línea (¿y nombre?) Para el mes que falte en la secuencia.

Imagino también que no se trata de un listado tan corto como el del ejemplo, pues eso es algo que se puede hacer fácilmente, sin recurrir a una macro. Tal vez sean varios grupos de meses encolumnados cuyos faltantes hay que agregar

Entonces, Alejandro, será útil que me comentes cómo están organizados tus datos para que la rutina haga lo que solicitas. ¿Podrías subir aquí una imagen del rango a completar?

Ayudame a ayudarte.

Saludos

Fernando

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas