Cortar y pegar sin perder el formato del celda de origen

Tengo una pregunta muy sencilla a la que no soy capaz de encontrar respuesta ¿quizás no sea tan sencilla? :)

Resulta que no soy capaz de mantener el formato de celda (bordes y formato de letra) en las celdas que corto y pego en otro lugar de la hoja. En otras palabras si selecciono varias celdas y las quiero mover a otro sitio, el formato de las celdas donde se encuentran los datos inicialmente, desaparece

¿Cómo puedo bloquear que el formato de las celdas no se mueva y sólo lo hagan los datos?

Sé que con la función "copiar y pegado especial" se puede, pero en mi caso quiero cortar y pegar

1 respuesta

Respuesta
2

Tenés que copiar y luego regresar para borrar contenido

Por ej;:

Range("D2:D7").Select 'este es el rango copiado
Selection. ClearContents

Gracias por la respuesta, pero en mi caso no voy a utilizar nada de programación, sólo el uso de teclas, ya que el fichero va a ser de uso público entre varios usuarios.

Lo he protegido con una contraseña, pero ni aún así no evito que desaparezca el formato de las celdas al cortar y pegar en otra zona de la hoja del fichero.

¿se puede proteger el formato de celdas origen cuando se CORTA Y PEGA?

gracias!

Una primera aclaración: que un libro sea de uso público no impide que tenga macros desarrolladas en él. No lo comento por este caso en particular pero tenelo presente porque sino estarás limitándote con esa falsa creencia.

Para hacerlo sin macros, cortando y copiando no podrás mantener los formatos. Tendrás que hacer lo mismo que haríamos con un código VBA: copiar y pegar, y luego borrar contenido en el rango copiado.

Con respecto a la protección, se puede permitir Aplicar formato.... No hay opción de Mantener formato al cortar un rango o celda.

Ok, entonces añadiendo una macro al fichero ¿podré utilizar la función cortar y pegar y no perderé el formato (bordes, colores, fórmulas) de la celda o rango de celdas origen?

Gracias!!!

Así es, la macro hará exactamente lo que harías a mano: desproteger la hoja, copiar, pegar, borrar contenido y volver a proteger.

Podes ejecutarla desde un botón o desde un atajo de teclado (estos temas los tengo explicados en la sección Macros de mi sitio)

Solo hay que evaluar cuando se ejecutará: con el rango ya seleccionado sería lo ideal ... pero a dónde es lo que hay que evaluar: ¿Se sabe de antemano el rango destino o es aleatorio? Si es esto último también hay solución, espero tus aclaraciones.

Sdos

Elsa

Ok, parece que vamos encontrando la solución.

El rango de celdas es aleatorio, es decir, los usuarios seleccionan diferentes rangos de celdas y los mueven a otro lugar de la hoja también aleatorio.

Todo se hace seleccionando mediante ratón o cursores y utilizando cortar y pegar desde los menús o el atajo de teclado Ctrl+x y Ctrl+v

Manualmente solo deben reemplazar el Ctrl x por Ctrl C y luego de pegado seleccionarlo nuevamente y presionar Supr.

Con una macro, podes trabajar con hoja protegida o no. Si hasta ahora no la tenías protegida no hacen falta las 2 instrucciones marcadas.

Entrá al Editor de macros, insertá un módulo y copiá esto.

Sub copiar_pegar()
'x Elsamatilde
'se parte de un rango ya seleccionado para copiar
rgoOrigen = Selection.Address

'seleccionar la primer celda de destino
Set rgoDestino = Application.InputBox("Selecciona la 1er celda de destino", Type:=8)
If Not rgoDestino Is Nothing Then
'se desprotege la hoja para copiar y pegar
ActiveSheet. Unprotect 'si tiene clave quedaría así: ActiveSheet.Unprotect "tu_clave"
Range(rgoOrigen). Copy
Range(rgoDestino.Address).Select
ActiveSheet. Paste
Range(rgoOrigen). ClearContents 'este es el rango copiado
ActiveSheet. Protect
End If
End Sub

Esto podés ejecutarlo con un atajo de teclado o desde el menú Macros o con un botón dibujado en la hoja. En la sección Macros de mi sitio lo tengo explicado, sinó al finalizar esta consulta pode´s dejar otra nueva con este tema.

He probado la macro y funciona bastante bien, las celdas origen que tienen un borde dibujado se mantienen igual después de cortar y pegar, aunque quería saber si se puede eliminar el cuadro de diálogo que pregunta la celda de destino.

Me he dado cuenta que las fórmulas también las mueve ¿se podría evitar?

Muchas gracias :)

Debes tratar de aclarar todo en la consulta, no por partes... ahora resulta que hay fórmulas... ¿y qué hacemos en ese caso? ¿Las pegamos como valores?

¿Tampoco querés el cuadro de diálogo pero cómo sabrá Excel dónde pegarlo?

Insisto: Manualmente solo deben reemplazar el Ctrl x por Ctrl C y luego de pegado seleccionarlo nuevamente y presionar Supr.

Sdos.

Muchas gracias por la ayuda, aunque el problema todavía no está solucionado espero que con la información proporcionada pueda solucionar por mí mismo el problema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas