Insertar filas

¿Qué tal Fernando?, perdona que te vuelva a molestar pero las macros que he intentado realizar no me funcionan, te comento el problema:
Tengo un fichero en el que apretando un botón quiero insertar una linea, y a su vez me copie la linea anterior con el mismo formato(que contiene datos y fórmulas) pero con las condiciones siguientes, p.ejem.la celda "A22"respetar la fórmula, celdas"B22:K22"respete formato pero sin datos, celdas"L22:022"respete fórmulas.
También tengo otro botón en el que graba el fichero con el nombre del mes, pero lo que no consigo es que me lo grabe en la misma ubicación donde actualmente tengo el fichero que estoy tratando.
Gracias anticipadas.

1 respuesta

Respuesta
1
El siguiente código hace lo que solicitas:
Busca la última fila con datos, la selecciona entera, copia en la siguiente fila y limpia el rango que debe quedar con formatos:
Sub CopFila()
Range("A2").End(xlDown).Select
With ActiveCell
.EntireRow.Copy
.Offset(1).EntireRow.Select
End With
ActiveSheet.Paste
Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row, 11)).ClearContents
Cells(ActiveCell.Row, 1).Select
End Sub
---
Respecto a la segunda pregunta, utiliza esto:
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & NOMBREMES
Obviamente NOMBREMES es la variable donde cargas el nombre que deberá tener el archivo
Pruébalo y dime
(No olvides finalizar ambas preguntas)
Un abrazo!
Fernando
Lo he probado, pero la fila que inserta lo hace en la segunda linea después de la primera con datos y no en la última, tal vez sea porque las 5 primeras lineas son de cabecera y no tienen datos.
Un saludo.
Si las cinco primeras filas son de encabezados (no habías aclarado esto antes), la búsqueda de la última fila debería empezar en A6.
Por tanto, reeemplaza la primer línea del código que te envié, por la siguiente:
Range("A6").End(xlDown).Select
(O cambia A2 por A6)
Prueba y dime...
Un abrazo!
Fernando
Perdona por no indicarte lo de la cabecera, mira he vuelto a probar sigue dando problemas, ahora me sale un error que dice:"Se ha producido el error"100" en tiempo de ejecución, error definido por la aplicación o el objeto".
Y se va a la linea 65536 e indica que el error esta en la linea: .Offset(1).EntireRow.Select
Disculpa.
Tampoco me dijiste que no tenías datos en la primer celda debajo del encabezado que esta fuese la única fila llena.
Por eso se va a la última fila de la planilla.
Esta macro debería funcionar correctamente si tu planilla ya tuviera, por lo menos una fila con datos/fórmulas.
Y esto debería ser así, toda vez que tu dijiste que las fórmulas y formatos los copia de la fila *anterior*.
Entonces, si tuvieras una sola fila con datos (que luego copiarás abajo) y en la celda A5 tuvieras algo (como un titulo por ejemplo, o ponle un espacio), reemplaza la primer fila de la macro por esta otra:
Range("A5").End(xlDown).Select
De esta manera se posiciona en la celda A5 y "baja" hasta la última llena (A6, por ejemplo). Luego debería funcionar normalmente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas