Excel - Copiar el contenido de la celda activa
Resuelto
Noibeu
-
anonymike -
anonymike -
Hola,
soy principiante con Excel y después de algunos días de búsqueda (les aseguro, no a tiempo completo), he decidido exponerles mi problema...
Necesito mostrar el contenido de la celda activa en otra celda bien definida. Es decir, independientemente de dónde haga clic en mi hoja de Excel, el contenido de esta celda seleccionada debe aparecer en mi otra celda.
He intentado con la función CELDA("contenido";K12) pero solo me da el contenido de la celda K12.
En la función CELDA, ¿es posible reemplazar K12 por algo que haga referencia a la celda activa?
Si no, ¿hay alguna función que podría resolver mi problema?
Si no, imagino que es posible con una macro, pero no tengo conocimientos sobre eso, si es posible tener el código...
Gracias de antemano...
Noibeu
soy principiante con Excel y después de algunos días de búsqueda (les aseguro, no a tiempo completo), he decidido exponerles mi problema...
Necesito mostrar el contenido de la celda activa en otra celda bien definida. Es decir, independientemente de dónde haga clic en mi hoja de Excel, el contenido de esta celda seleccionada debe aparecer en mi otra celda.
He intentado con la función CELDA("contenido";K12) pero solo me da el contenido de la celda K12.
En la función CELDA, ¿es posible reemplazar K12 por algo que haga referencia a la celda activa?
Si no, ¿hay alguna función que podría resolver mi problema?
Si no, imagino que es posible con una macro, pero no tengo conocimientos sobre eso, si es posible tener el código...
Gracias de antemano...
Noibeu
Configuración: Windows XP Internet Explorer 6.0
Enlaces relacionados:
- VBA .Copiar valor de celda de Excel sin fórmula
- Excel: Copia automática del contenido de celdas
- Copiar/pegar celdas ocultas en Excel
- [Excel 2010] Llenar celda según contenido de otra
- Copiar el contenido de una celda en un comentario con macro
- enviar el contenido de la celda A1 a C1 si B1 contiene "valorX"
2 respuestas
-
Aquí tienes una solución, paso a paso. En Excel:
- haz clic en el menú Herramientas, luego en Macro y en la lista que aparece, en "Visual Basic Editor",
- en el explorador de proyectos VBAProject a la izquierda de la pantalla, tienes tus diferentes hojas de tu libro de Excel. Tomemos por ejemplo la hoja titulada Hoja1 en Microsoft Excel Objects. Haz doble clic en "Hoja1 (Hoja1)"
- se abre una página de código en blanco frente a ti. Justo en la parte superior de esta, tienes marcado en una lista desplegable "General". Haz clic en este último y elige "Worksheet". La lista desplegable de la derecha se ha actualizado: ábrela y elige "SelectionChange". SelectionChange es, de hecho, una macro que se ejecuta cada vez que cambias de celda activa en tu hoja de Excel. Solo tienes que integrar el código para copiar el contenido de la celda activa en cada nueva celda donde hagas clic.
- en la nueva página, tienes el siguiente contenido:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
Private Sub etc. es el encabezado/el nombre/el inicio de tu macro y End Sub indica el final de la misma. Todo el contenido de tu macro debe escribirse entre este encabezado y el End Sub.
- para llegar a la instrucción de copia de celdas, la celda activa se denomina ActiveCell en VBA Excel. El valor contenido en esta celda se llama ActiveCell.Value. Cualquier celda en Excel se escribe Cells(fila,columna), su valor siendo Cells(fila,columna).Value.
Por lo tanto, si por ejemplo quieres copiar el contenido de la celda A1, B1 en una celda sobre la que Has hecho clic (y que se convierte en activa), aquí está la instrucción que debes insertar en el cuerpo de la macro:
ActiveCell.Value = Cells(1, 1).Value
Al final, tu macro será como sigue:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveCell.Value = Cells(1, 1).Value
End Sub
Luego guarda la macro y prueba escribiendo lo que quieras en la celda A1, B1, validando y luego haciendo clic en cualquier otro lugar de la hoja. Luego te dejo adaptar la celda que deseas copiar ;-)
Esto es todo, espero haberte ayudado. Si no es exactamente lo que buscabas, no dudes en corregirme.-
¡Muchas gracias Ptidavid,
¡funciona a la perfección! Solo había un pequeño problema, y era que con lo que me diste, el contenido de la celda A1 iba a la celda activa. Yo quería lo contrario (que el contenido de la celda activa fuera a A1).
Pero como fuiste muy claro y preciso en tu explicación, no fue difícil entender que en lugar de ActiveCell.Value = Cells(1, 1).Value, había que poner Cells(1, 1).Value = ActiveCell.Value.
¡Gracias de nuevo por tomarte el tiempo de responderme y por la claridad de tus explicaciones!
Noibeu -
-
-
-
-
-
Hola comunidad.
Perdón por desenterrar este tema un poco polvoriento que sigue siendo de actualidad.
En el mismo sentido, necesitaría realizar una copia simple de la ActiveCell en el portapapeles (para poder pegarla en otro lugar).
Además, necesitaría limitar esta función a las celdas B3:B20 en las hojas "Soudure" y "Collage".
Aquí estoy:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ("B3:B20")
Then Range.ActiveCell.Value.Select
Selection.Copy
End Sub
¿Puedo pedirles un poco de ayuda?
¡Gracias de antemano!
------------Tema movido a nuevo post -------