Establecer el final de un rango con click de ratón

Quisiera que al pinchar en una celda de mi tabla, me estableciera esta como final de rango. Suponiendo que el principio del rango será siempre "C1" y el final seria la celda que eligiese con el ratón

1- Suponiendo que haga clic en T100. Salga un mensaje con posibilidad de confirmar o cancelar, que me confirme el rango seleccionado

" Rango elegido C1:T100 "

2- Al seleccionar aceptar:

a) Copia ese rango C1:T100

b) Pega en "C1" el rango anterior, pero solo como valores+formato (así elimino las fórmulas y evito que se vuelvan a recalcular

c) Que al terminar ese proceso me salga un mensaje de

         " Pegado de valores  finalizado"

1 Respuesta

Respuesta
1

Debes entrar al Editor de macros (con atajo de teclado ALT y F11).

Seleccionar con doble clic el objeto HOJA donde vayas a trabajar y allí pegar el código siguiente:

Ajusta el mensaje a tu gusto:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'x Elsamatilde
'solo se ejecuta al clic en alguna celda de col C
If Target.Column <> 3 Then Exit Sub
'el rango será desde C1 hasta la celda seleccionada
rgo = "C1:C" & Target.Row
'confirmar
sino = MsgBox("El rango elegido es " & rgo & ". Confirmas?", vbQuestion + vbYesNo, "Confirmar")
If sino <> vbYes Then Exit Sub
'confirmado: el rgo se copia/pega como valores
Range(rgo).Copy
'se evita que vuelva a ejecutarse el evento al momento del pegado
Application.EnableEvents = False
Range(rgo).PasteSpecial xlPasteValues
Application.EnableEvents = True
'quita el modo de copiado
Application.CutCopyMode = False
'seleccionar celda fuera del rango
Target.Offset(0, 1).Select
MsgBox "Fin del proceso"
End Sub

¡Gracias! 

Gracias Elsa.  Perfecto, Muchas Gracias Excel

Excelente muchas Gracias

Saludos Juan

Hola Elsa:

En Relación con Tu código enviado que es Perfecto.

No se como asignarle un botón para que se ejecute la macro, Por que se inicia automáticamente al abrir la hoja.

Esto formaría parte de otras acciones que debería ejecutar dentro de mi agenda y no se como hacerlo. Por lo que necesito ese botón para iniciar la macro en su momento oportuno

He hecho varias pruebas y no consigo ponerle un nombre y asignarle un botón

Posdata: seria mucho pedir que antes de iniciarse la macro, saliera en pantalla un dialogo que me pusiera " Selecciona una Celda de la columna C para eliminar fórmulas" con un aceptar o cancelar

¿

?

Perdona por mi Torpeza. En Excel me defiendo bastante bien pero en Visual Basic soy una Nulidad

Gracias por tu Ayuda

No lo consideres una torpeza, solo es desconocimiento y no es obligación tenerlo si no eres programador... Lamentablemente se ha instalado la idea de que programar puede programar cualquiera, sin estudiar nada relacionado a Informática (¿saben qué es una carrera universitaria de por lo menos 4 años?)

Bien, 'al hacer clic con el ratón en una celda' se produce un evento llamado SelectionChange y como es un evento de hoja se ejecuta siempre (salvo que en algún otro evento o proceso lo interrumpamos momentáneamente).

Entonces, lo que necesitas ahora es una macro para ser ejecutada solo cuando vos lo decidas... y eso requiere otro tipo de macro. Podrás leer más sobre tipos de macros y cómo ejecutarlas desde esta sección de mi sitio.

Por lo tanto, por favor inicia una nueva consulta con otro título e inicia el cuerpo del mensaje con el texto 'Para Elsa' y con mucho gusto te voy preparando lo que necesitas.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas