INSERTAR CELDAS COPIADAS Y BORRAR CONTENIDO EXCEPTO CELDAS CON FORMULAS
Publicado por Quico (106 intervenciones) el 12/03/2020 00:29:40
Tengo una macro que me INSERTA una fila completa debajo de la fila seleccionada.
Esta macro hace lo siguiente:
Hasta aquí todo bien, el problema es que me está borrando también las fórmulas. :-(
No tengo claro como puedo hacer para que no me borre la fórmula, que siempre se sitúa en la celda de la "columna E"
Intente crear esta macro "cutre" en la que una vez copiada la fila, seleccionaba una a una cada celda con valores, EXCEPTO la que tiene la formula (Columna E) y luego eliminaba.
Es esta:
Pero claro, el problema es que no tiene por que ser en la fila 28 y ha de poder hacerse en cualquier fila.
Quizá sea todo más sencillo que aplicar otra sintaxis a: Selection.ClearContents
Pero si no existe, esta claro que se tiene que poder indicar las celdas del rango a borrar sin indicar un número de fila.
Range("B28,C28,D28,G28,H28,I28,J28,K28,L28,M28,O28,P28").Select
¿Cómo podría hacerlo?
Gracias
Esta macro hace lo siguiente:
1. De la fila seleccionada con celdas con valores y alguna celda con fórmula, la COPIA
2. Debajo de la fila seleccionada, INSERTA las celdas copiadas con los mismos valores y fórmulas.
3. Selecciona la nueva FILA insertada y elimina todos los valores con: Selection.ClearContents
2. Debajo de la fila seleccionada, INSERTA las celdas copiadas con los mismos valores y fórmulas.
3. Selecciona la nueva FILA insertada y elimina todos los valores con: Selection.ClearContents
Hasta aquí todo bien, el problema es que me está borrando también las fórmulas. :-(
No tengo claro como puedo hacer para que no me borre la fórmula, que siempre se sitúa en la celda de la "columna E"
Intente crear esta macro "cutre" en la que una vez copiada la fila, seleccionaba una a una cada celda con valores, EXCEPTO la que tiene la formula (Columna E) y luego eliminaba.
Es esta:
1
2
3
4
5
6
7
8
Rows("27:27").Select
Selection.Copy
Rows("28:28").Select
Selection.Insert Shift:=xlDown
Range("B28,C28,D28,G28,H28,I28,J28,K28,L28,M28,O28,P28").Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub
Pero claro, el problema es que no tiene por que ser en la fila 28 y ha de poder hacerse en cualquier fila.
Quizá sea todo más sencillo que aplicar otra sintaxis a: Selection.ClearContents
Pero si no existe, esta claro que se tiene que poder indicar las celdas del rango a borrar sin indicar un número de fila.
Range("B28,C28,D28,G28,H28,I28,J28,K28,L28,M28,O28,P28").Select
¿Cómo podría hacerlo?
Gracias
Valora esta pregunta


0