Jump to content
Sign in to follow this  
BLKSNAKER

Hacer click sobre nombre y que lo ubique en otra hoja

Recommended Posts

Hola buen dia como estan.

Necesito que me ayuden con una macro que haga lo siguiente:

Si estoy situado en la hoja1, hago click en la palabra hormiga de la hoja 1 (celda c16), que la macro automaticamente me posicione en la palabra hormiga en la hoja2 (celda e15).

Esto necesito que la macro lo haga con cada una de las palabras que pudiera agregar en la hoja 1, y que obviamente tambien estaran en la hoja 2.

Saludos.

Libro2.rar

Share this post


Link to post
Share on other sites

Pon esta macro en la Hoja1 del Libro2.xlsx y pulsa doble-click en cualquier celda de la columna C.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Celda As Range
If Target.Column = 3 And Not Target = "" Then
Cancel = True
Hoja2.Select
Set Celda = Hoja2.Range("E:E").Find(Target.Value, LookIn:=xlValues)
If Celda Is Nothing Then
Beep
Hoja2.Range("A1").Select
Else
Celda.Select
End If
End If
End Sub
[/CODE]

Share this post


Link to post
Share on other sites

Hola

Prueba con

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo error:
vf = WorksheetFunction.Match(Target.Value, Hoja2.Columns("E"), 0)
With Hoja2
.Select
.Cells(vf, "E").Select
End With
error:
Cancel = True
End Sub[/CODE]

Saludos

Share this post


Link to post
Share on other sites

Excelente!!! Gracias a los dos, funcionan ambas macros. Trate de adaptarlas a una archivo mas complejo que el archivo ejemplo, pero no me funciono. Adjunto modelo mas complejo para ver si pueden ayudarme. Lo que busco es lo mismo, que al hacer click en cualquier celda de la primer hoja, automáticamente se posicione en la celda de la segunda hoja cuyo nombre se corresponde al del la celda de la primer hoja.

Libro3.rar

Share this post


Link to post
Share on other sites
Excelente!!! Gracias a los dos, funcionan ambas macros. Trate de adaptarlas a una archivo mas complejo que el archivo ejemplo, pero no me funciono. Adjunto modelo mas complejo para ver si pueden ayudarme. Lo que busco es lo mismo, que al hacer click en cualquier celda de la primer hoja, automáticamente se posicione en la celda de la segunda hoja cuyo nombre se corresponde al del la celda de la primer hoja.

Sin ver tu nuevo archivo, supongo que no te funciona porque tienes que declarar el nombre correcto de la hoja destino, revisalo y si no es eso, pues avisa

Saludos

Share this post


Link to post
Share on other sites
Hola, ya probé con los nombres de las hojas, y no funciona.

Saludos.

Intenta con:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo error:
With Target
If .Column = 2 Or .Column = 4 Or .Column = 6 _
Or .Column = 8 Or .Column = 10 Or .Column = 12 Then
vf = WorksheetFunction.Match(.Value, Hoja2.Columns("A"), 0)
With Hoja2
.Select
.Cells(vf, "A").Select
End With
error:
Cancel = True
End If
End With
End Sub[/CODE]

Saludos

Share this post


Link to post
Share on other sites

Realice una variacion en el caso de que tu archivo llegase a tener mas columnas para Item, utiliza esta macro, donde solo deberas incluir el numero de columna dentro del "array", te resultara mucho mas comoda

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo error:
With Target
col = .Column
items = .Value
vc = WorksheetFunction.Match(col, Array(2, 4, 6, 8, 10, 12), 0)
If vc Then
With Hoja2
vf = WorksheetFunction.Match(items, .Columns("A"), 0)
.Select
.Cells(vf, "A").Select
End With
Cancel = True
End If
End With
error:
End Sub[/CODE]

Saludos

Share this post


Link to post
Share on other sites

Muchas gracias!!!!

Funciono.

Hay alguna forma de que en vez de especificar los numeros de columna, la macro se haga de tal forma que, al hacer click en cualquiera de las celdas de la primer hoja CAZZO, este esta celda donde fuere, busque y posicione la celda con el dato correspondiente en la hoja GRPS?

Algo que me llamo la atencion de las macros propuestas, en ellas, no figura el nombre de la hoja CAZZO, sino que asumo se refieren a esta hoja como "hoja2", y asi y todo, la macro funciona!! A que se debe?

Share this post


Link to post
Share on other sites

Lo unico que debes hacer es borrar parte de la macro de evento, tal que:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

With Hoja2
vf = WorksheetFunction.Match(Target.Value, .Columns("A"), 0)
.Select
.Cells(vf, "A").Select
End With
Cancel = True

End Sub[/CODE]

Observa la imagen abajo, puedes ver dos nombres, el "nombre interno" (Hoja1) de como VBA indexa cada hoja que agregamos y el "nombre externo" (CAZZO) es el nombre que cambiamos a nuestro gusto

2ch6vdt.jpg

Dime si te ha quedado claro

Saludos

Share this post


Link to post
Share on other sites

Veo que Gerson se ha adelantado, pero como lo tengo preparado lo subo.

estas dos instrucciones son equivalentes:

Sheets("CAZZO").Range("A1") = 1
Hoja2.Range("A1") = 1
[/CODE]

.

post-46507-145877010388_thumb.png

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png