Vincular celda con hoja

Quisiera vincular el nombre de un hoja de excel con el de una celda de la misma hoja, ¿es posible?

1 respuesta

Respuesta
1

¿Podrías aclarar un poquito la consulta? No se comprende...

Hay una función que devuelve el nombre de Archivo completo en una celda, y a partir de allí se puede obtener el nombre de hoja... confirma si es eso lo que necesitas para que te lo pase.

Quisiera que el nombre de la hoja se corresponda con el texto de una celda.

Por ejemplo: que cuando escriba en la celda A1 "Calendario", me aparezca el texto "Calendario" como nombre de la Hoja en cuestión.

Gracias.

Bien, entonces si necesitas '... cuando escriba en la celda A1 "Calendario", me aparezca el texto "Calendario" como nombre de la Hoja en cuestión...'

Debes colocar el código en el objeto HOJA donde realizarás el ingreso.

Entrá al Editor de macros, seleccioná con doble clic el objeto Hoja (del panel a tu izquierda) y allí escribí esto:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'se coloca hipervínculo al texto ingresado en col A de esta hoja
If Target.Column <> 1 Or Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:= _
 Target.Value & "!A1", TextToDisplay:=Target.Value
End Sub

Aquí se controla lo ingresado en la col A.

Si solo lo necesitas para un rango de un par de filas, avisame que ajusto las referencias.

Introduciendo el texto en el editor de macros no me funciona lo que necesito.

Perdón, no me se expresar:

Quiero que dónde pone Hoja 1, ponga calendario, que es el texto de la celda A1.

Gracias de todas formas. Muy amable por su tiempo.

¿Lo qué necesitas es renombrar la hoja con el texto de la celda A1?

Si es así, entonces en el Editor, en el objeto HOJA donde estabas trabajando, reemplazá la rutina anterior por ésta:

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'se renombra la hoja con el texto ingresado en A1
If Target.Address <> "$A$1" Then Exit Sub
'si la celda A1 queda vacía no se ejecuta
If Target.Value = "" Then Exit Sub
'si se presenta un error, x ej nombre repetido, no se modifica
On Error Resume Next
ActiveSheet.Name = Target.Value
End Sub

Lee los comentarios del código para saber lo que hace.

Si lo necesitas para varias o todas las hojas del libro avisame que te indico dónde colocarla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas