Situarte en una determinada fila al hacer doble clic

En la hoja "listados" tengo cuatro columnas con datos. En la columna A hay valores numéricos que se corresponden con un nº de fila en otra hoja "titulos" y en la columna B hay valores de texto que se corresponden con valores que hay en hoja "titulos" en la columna A.

Lo que necesitaría es que al hacer doble clic o apretara intro sobre la celda con números en la hoja "listados" me llevara justo al mismo número de fila correspondiente en la hoja "titulos", y se seleccionara toda la fila.

Lo mismo en la columna B con los valores de texto, en la hoja "listados". Cuando hiciera doble clic o pulsara intro debería abrírseme la hoja "titulos" y posicionarse el cursor en la fila que encontrara con ese valor de texto, es decir que se seleccionara la fila tanto si hago doble clic o intro sobre valores de la columna A como sobre los de la columna B.

1 respuesta

Respuesta
1

H o l a:

Para que funcione con doble click pon la siguiente macro en los eventos de la hoja "listados"

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Por.Dante Amor
    If Not Intersect(Target, Columns("A")) Is Nothing Then
        Sheets("titulos").Select
        Sheets("titulos").Rows(Target.Value).Select
    End If
    If Not Intersect(Target, Columns("B")) Is Nothing Then
        Set h = Sheets("titulos")
        Set b = h.Columns("A").Find(Target, lookat:=xlWhole)
        If Not b Is Nothing Then
            h.Select
            h.Rows(b.Row).Select
        End If
    End If
End Sub

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 la hoja (listados)
  4. Del lado derecho copia la macro

Hola Dante Amor

La macro funciona bien y hace exactamente lo que necesitaba.

Solo comentarte un detalle que falta. Imagínate que tengo tres filas en hoja "listados" con valores numéricos en la columna A, que como te dije, se corresponden con el nº de fila correspondiente en hoja "titulos" y en columna B tengo 3 nombres iguales...

Entonces cuando hago doble clic sobre cualquiera de los 3 titulos iguales me lleva siempre en la hoja "titulos" al primer titulo encontrado sin tener en cuenta que los nombres son iguales pero cada uno pertenece a un nº distinto de fila en la hoja "titulos".

Haría falta que cuando selecciono en columna B uno de los nombres repetidos tuviera en cuenta a qué nº de fila está vinculado en la hoja "titulos" para ir a ése concreto y no al primero que encuentra.

Otro detalle, si no es demasiada molestia, ¿se podría además del doble clic, que funcionara todo si le doy al botón "intro" del teclado?

Muy agradecido de antemano

Te anexo la macro actualizada para el doble click

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Por.Dante Amor
    If Not Intersect(Target, Columns("A:B")) Is Nothing Then
        f = Cells(Target.Row, "A")
        If f = 0 Then Exit Sub
        Sheets("titulos").Select
        Sheets("titulos").Rows(f).Select
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas