Extraer el valor de una celda clikando en ella

Quiero extraer, mediante un clik en ella, el valor numérico contenido en una celda (elegida por mí en cada momento) integrada en una matriz de varias filas y columnas y que se escriba en otra celda "resultado", que está en otra hoja del libro Excel.

Dicha matriz tiene una primera fila de "distancias" en valores numéricos, y una primera columna de "cantos", igualmente en valores numéricos, estando rellena con los resultados calculados de cargas admisibles. Los valores están resueltos, por lo que es meramente informativa.

Este valor de carga admisible lo necesito en la otra casilla automáticamente al clikar en la matriz.

1

1 respuesta

Respuesta
1

H o l a:

Para pasar un valor de una hoja a otra, hay que hacerlo con una macro. Para que pueda realizar la macro, me tienes que dar el detalle de información.

Si puedes poner 2 imágenes. En la imagen uno pon la hoja1 en donde tienes la matriz. Marca en esta matriz 3 celdas de color amarillo, como si hubieras presionado click sobre esas celdas.

En la imagen dos, pon la hoja donde quieres el resultado, esta hoja 2 deberá tener los 3 valores de ejemplo que marcaste de amarillo en la hoja1.

Es IMPORTANTE! Que en las imágenes se vean las filas y las columnas de excel.

Sal u dos

Te envío imagen de la hoja con la explicación de la necesidad.

Te solicité 2 imágenes para poder hacer la macro:

"

En la imagen uno pon la hoja1 en donde tienes la matriz. Marca en esta matriz 3 celdas de color amarillo, como si hubieras presionado click sobre esas celdas.

En la imagen dos, pon la hoja donde quieres el resultado, esta hoja 2 deberá tener los 3 valores de ejemplo que marcaste de amarillo en la hoja1.

"

Ahora no sé cuáles son las celdas destino.

En tu ejemplo de Sobrecarga Obtenida no sé si va en W3 o en W4

Sería mejor si pudieras poner las 2 imágenes.


Te anexo la macro, pero tendrás que realizar las adecuaciones a la macro, de acuerdo a los datos de tu hoja2. Si tienes problemas para adaptar la macro avísame para actualizarla.



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Target.Column < 4 Then Exit Sub
    If Target.Row < 3 Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    '
    f = Target.Row
    c = Target.Column
    '
    Set h2 = Sheets("Hoja2")    'hoja destino
    col = "B"                   'Columna destino
    '
    h2.Range(col & 2) = Cells(2, c)
    h2.Range(col & 4) = Cells(f, c)
    h2.Range(col & 5) = Cells(f, "B")
    h2.Range(col & 6) = Cells(1, "R")
    h2.Range(col & 12) = Cells(f, "C")
End Sub

Cambia en la macro "Hoja2" por el nombre de tu hoja destino.

Cambia en la macro "B" por la columna destino.


Cada que presiones click en alguna celda de la zona de sobrecarga, los 5 datos se enviarán a la hoja2.


Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

¡Muchas Gracias! La macro funciona como una moto.Estoy alucinando de tu maestría.

Solamente le falta que arroje en  fila 13 columna B el texto:  "si" si el fondo de la casilla elegida está coloreado y "no" si está en blanco, para indicar la necesidad de apuntalamiento. No se si se podrá hacer.

Te agradezco mucho tu ayuda.

Hola otra vez Dante.

La macro me funciona en la hoja de consulta que te envié, pero cuando la paso al libro de trabajo real, no me funciona.

En este libro, la matriz es la misma, pero esta en la fila 31 de la hoja, en lugar de la fila 1 .

En la hoja "resultados", que es la de destino de los datos, las respuestas están igualmente en la columna B.

Creo que me arreglaría si me "Lees la macro" explicando su sentido.

Muchas gracias.

Te anexo la macro actualizada:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Target.Column < 4 Then Exit Sub
    If Target.Row < 3 Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    '
    f = Target.Row
    c = Target.Column
    If Target.Interior.ColorIndex = xlNone Then x = "No" Else x = "Si"
    '
    Set h2 = Sheets("Hoja2")    'hoja destino
    col = "B"                   'Columna destino
    '
    h2.Range(col & 2) = Cells(2, c)
    h2.Range(col & 4) = Cells(f, c)
    h2.Range(col & 5) = Cells(f, "B")
    h2.Range(col & 6) = Cells(1, "R")
    h2.Range(col & 12) = Cells(f, "C")
    h2.Range(col & 13) = x
End Sub

R ecuerda cambiar la valoración de la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas