Consulta: consulta en el lenguaje de macro vba como puede expresar una funcion en excel cuando se activa una celda cualquiera de una tabla devuelva el valor de una celda ubicada en la misma fila y en una determinada columna

Respuesta: En VBA para Excel, puedes utilizar el evento `Worksheet_SelectionChange` para capturar cuando se selecciona una celda. Luego, puedes escribir una macro para devolver el valor de la celda en una columna específica de la misma fila.

Aquí tienes un ejemplo de cómo hacerlo. Este ejemplo asume que deseas devolver el valor de la columna "B" cuando se selecciona cualquier celda de una tabla en el rango de columnas "A" a "D".

Primero, abre el editor de VBA (presiona `Alt + F11`), y luego selecciona la hoja específica en la que quieres aplicar este código (en la ventana de Explorador de Proyectos).

Pega el siguiente código en el módulo de la hoja seleccionada:

```vba
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim desiredColumn As Integer
Dim selectedRow As Long

'Define the desired column index (for example, column "B" is index 2)
desiredColumn = 2

'Check if the selected cell is within the desired range (e.g., A1:D100)
If Not Intersect(Target, Me.Range("A1:D100")) Is Nothing Then
'Get the row of the selected cell
selectedRow = Target.Row

'Display the value of the cell in the desired column of the same row
'You can change this MsgBox to whatever you want to do with the value
MsgBox "The value in column B of the same row is: " & Me.Cells(selectedRow, desiredColumn).Value
End If
End Sub
```

En este código:

- `Worksheet_SelectionChange` es un evento que se activa cada vez que se cambia la selección de celdas en la hoja de cálculo.
- `Target` es la celda, o rango de celdas, que se ha seleccionado.
- `desiredColumn` se establece en 2, que corresponde a la columna "B".
- `Me.Range("A1:D100")` es el rango en el que deseas que se active este evento. Puedes ajustar este rango según tus necesidades.
- `selectedRow` obtiene la fila de la celda seleccionada.
- `Me.Cells(selectedRow, desiredColumn).Value` obtiene el valor de la celda en la columna deseada de la misma fila.

Este ejemplo muestra un mensaje con el valor de la celda en la columna "B" de la misma fila. Puedes modificar el comportamiento (por ejemplo, almacenar el valor en una variable o realizar alguna otra operación) según tus necesidades.

1 resultado
Búsquedas
similares