digitar nombre en una celda y que se asigne ese nombre a una nueva hoja del libro

17/03/2005 - 23:11 por Luis Fernando Vargas Díaz | Informe spam
Buenas Tardes:

Mi consulta es la siguiente:

Tengo una hoja llamada Control y dentro de la misma, tengo la celda (C2) en
la cual digito el nombre de un proceso (ejemplo, ADJUDICACIONES).
Inmediatamente en la celda D2 tengo un botón que al pulsarlo crea una
réplica de otra hoja que se llama modulo con el siguiente código:

Sub agregarhoja()

Sheets("modulo").Select
Sheets("modulo").Copy Before:=Sheets(3)
Range("A1").Select
End Sub

Mi pregunta es como hago para que se agregue la hoja replicada pero NO con
el nombre modulo (2), sino mas bien con el nombre que digité en la celda C2
(ADJUDICACIONES).

Para finalizar, tengo otro botón en la celda inmediata (E2) que al pulsarlo,
me debería llevar directamente a la hoja replicada que se llama
ADJUDICACIONES.

No sé si me expliqué bien pero agradezco cualquier ayuda que me puedan
brindar, saludos

Preguntas similare

Leer las respuestas

#1 KL
18/03/2005 - 00:06 | Informe spam
Hola Luis Fernando,

Prueba el siguiente codigo.

Saludos,
KL

'Inicio Codigo-
Sub AgregarHojaNueva()
Dim carInvalidos As Variant
Dim Hoja As Worksheet
Dim i As Integer
Dim NombreUnico As Boolean
Dim NombreValido As Boolean
Dim rng As Range

'Establecemos la lista de caracteres invalidos.
carInvalidos = Array(":", "\", "/", "?", "*", "[", "]")

'Congelamos la pantalla.
Application.ScreenUpdating = False

'Establecemos el rango q contiene el nombre de la hoja.
Set rng = Worksheets("Control").Range("A2")

'comprobamos si ya existen hojas con los
'nombres q queremos usar.
NombreUnico = True
For Each Hoja In Worksheets
If Hoja.Name = rng.Value Then
MsgBox "Ya existe una hoja con el nombre: " _
& rng.Value
NombreUnico = False
Exit For
End If
Next Hoja

'comprobamos si el nombre contiene
'caracteres invalidos.
NombreValido = True
For i = 0 To UBound(carInvalidos)
If InStr(rng.Value, carInvalidos(i)) Then
MsgBox "El nombre " & rng.Value _
& " contiene caracteres invalidos (" _
& carInvalidos(i) & ")."
NombreValido = False
Exit For
End If
Next i

'Creamos las hojas y asignamos los nombres validos.
If Not IsEmpty(rng) And NombreUnico And NombreValido Then
Worksheets("modulo").Copy After:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = rng.Value
End If

'Volvemos a la hoja principal.
Range("A1").Activate
End Sub
'Fin Codigo-


"Luis Fernando Vargas Díaz" wrote in message
news:
Buenas Tardes:

Mi consulta es la siguiente:

Tengo una hoja llamada Control y dentro de la misma, tengo la celda (C2)
en
la cual digito el nombre de un proceso (ejemplo, ADJUDICACIONES).
Inmediatamente en la celda D2 tengo un botón que al pulsarlo crea una
réplica de otra hoja que se llama modulo con el siguiente código:

Sub agregarhoja()

Sheets("modulo").Select
Sheets("modulo").Copy Before:=Sheets(3)
Range("A1").Select
End Sub

Mi pregunta es como hago para que se agregue la hoja replicada pero NO con
el nombre modulo (2), sino mas bien con el nombre que digité en la celda
C2
(ADJUDICACIONES).

Para finalizar, tengo otro botón en la celda inmediata (E2) que al
pulsarlo,
me debería llevar directamente a la hoja replicada que se llama
ADJUDICACIONES.

No sé si me expliqué bien pero agradezco cualquier ayuda que me puedan
brindar, saludos



Respuesta Responder a este mensaje
#2 Luis Fernando Vargas Díaz
18/03/2005 - 19:59 | Informe spam
Muchas gracias por la información KL, el código me sirvió a la perfección.
Ahora, me podrías indicar como hacer un código en otro botón que me lleve a
la hoja creada a partir del nombre digitado en este caso en la celda C2.

Gracias de nuevo.

Saludos




"KL" escribió en el mensaje
news:
Hola Luis Fernando,

Prueba el siguiente codigo.

Saludos,
KL

'Inicio Codigo-
Sub AgregarHojaNueva()
Dim carInvalidos As Variant
Dim Hoja As Worksheet
Dim i As Integer
Dim NombreUnico As Boolean
Dim NombreValido As Boolean
Dim rng As Range

'Establecemos la lista de caracteres invalidos.
carInvalidos = Array(":", "\", "/", "?", "*", "[", "]")

'Congelamos la pantalla.
Application.ScreenUpdating = False

'Establecemos el rango q contiene el nombre de la hoja.
Set rng = Worksheets("Control").Range("A2")

'comprobamos si ya existen hojas con los
'nombres q queremos usar.
NombreUnico = True
For Each Hoja In Worksheets
If Hoja.Name = rng.Value Then
MsgBox "Ya existe una hoja con el nombre: " _
& rng.Value
NombreUnico = False
Exit For
End If
Next Hoja

'comprobamos si el nombre contiene
'caracteres invalidos.
NombreValido = True
For i = 0 To UBound(carInvalidos)
If InStr(rng.Value, carInvalidos(i)) Then
MsgBox "El nombre " & rng.Value _
& " contiene caracteres invalidos (" _
& carInvalidos(i) & ")."
NombreValido = False
Exit For
End If
Next i

'Creamos las hojas y asignamos los nombres validos.
If Not IsEmpty(rng) And NombreUnico And NombreValido Then
Worksheets("modulo").Copy After:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = rng.Value
End If

'Volvemos a la hoja principal.
Range("A1").Activate
End Sub
'Fin Codigo-


"Luis Fernando Vargas Díaz" wrote in message
news:
> Buenas Tardes:
>
> Mi consulta es la siguiente:
>
> Tengo una hoja llamada Control y dentro de la misma, tengo la celda (C2)
> en
> la cual digito el nombre de un proceso (ejemplo, ADJUDICACIONES).
> Inmediatamente en la celda D2 tengo un botón que al pulsarlo crea una
> réplica de otra hoja que se llama modulo con el siguiente código:
>
> Sub agregarhoja()
>
> Sheets("modulo").Select
> Sheets("modulo").Copy Before:=Sheets(3)
> Range("A1").Select
> End Sub
>
> Mi pregunta es como hago para que se agregue la hoja replicada pero NO


con
> el nombre modulo (2), sino mas bien con el nombre que digité en la


celda
> C2
> (ADJUDICACIONES).
>
> Para finalizar, tengo otro botón en la celda inmediata (E2) que al
> pulsarlo,
> me debería llevar directamente a la hoja replicada que se llama
> ADJUDICACIONES.
>
> No sé si me expliqué bien pero agradezco cualquier ayuda que me puedan
> brindar, saludos
>
>
>


Respuesta Responder a este mensaje
#3 KL
19/03/2005 - 00:17 | Informe spam
Hola Luis Fernando,

Prueba asignar este codigo a tu boton.

Saludos,
KL

'Inicio Codigo
Sub SeleccionarHoja()
Dim Hoja As Object
On Error Resume Next
Set Hoja = ThisWorkbook.Sheets(ActiveSheet.Range("C2").Value)
On Error GoTo 0
If Not Hoja Is Nothing Then
If Hoja.Visible = True Then
Hoja.Activate
Else
MsgBox "La hoja " & Hoja.Name & " esta oculta" _
& " y no puede ser activada."
End If
Else
MsgBox "La hoja " & Range("A1").Value & " no existe" _
& " en este libro."
End If
End Sub
'Fin Codigo


"Luis Fernando Vargas Díaz" wrote in message
news:%23BBjgy%
Muchas gracias por la información KL, el código me sirvió a la perfección.
Ahora, me podrías indicar como hacer un código en otro botón que me lleve
a
la hoja creada a partir del nombre digitado en este caso en la celda C2.

Gracias de nuevo.

Saludos




"KL" escribió en el mensaje
news:
Hola Luis Fernando,

Prueba el siguiente codigo.

Saludos,
KL

'Inicio Codigo-
Sub AgregarHojaNueva()
Dim carInvalidos As Variant
Dim Hoja As Worksheet
Dim i As Integer
Dim NombreUnico As Boolean
Dim NombreValido As Boolean
Dim rng As Range

'Establecemos la lista de caracteres invalidos.
carInvalidos = Array(":", "\", "/", "?", "*", "[", "]")

'Congelamos la pantalla.
Application.ScreenUpdating = False

'Establecemos el rango q contiene el nombre de la hoja.
Set rng = Worksheets("Control").Range("A2")

'comprobamos si ya existen hojas con los
'nombres q queremos usar.
NombreUnico = True
For Each Hoja In Worksheets
If Hoja.Name = rng.Value Then
MsgBox "Ya existe una hoja con el nombre: " _
& rng.Value
NombreUnico = False
Exit For
End If
Next Hoja

'comprobamos si el nombre contiene
'caracteres invalidos.
NombreValido = True
For i = 0 To UBound(carInvalidos)
If InStr(rng.Value, carInvalidos(i)) Then
MsgBox "El nombre " & rng.Value _
& " contiene caracteres invalidos (" _
& carInvalidos(i) & ")."
NombreValido = False
Exit For
End If
Next i

'Creamos las hojas y asignamos los nombres validos.
If Not IsEmpty(rng) And NombreUnico And NombreValido Then
Worksheets("modulo").Copy After:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = rng.Value
End If

'Volvemos a la hoja principal.
Range("A1").Activate
End Sub
'Fin Codigo-


"Luis Fernando Vargas Díaz" wrote in message
news:
> Buenas Tardes:
>
> Mi consulta es la siguiente:
>
> Tengo una hoja llamada Control y dentro de la misma, tengo la celda
> (C2)
> en
> la cual digito el nombre de un proceso (ejemplo, ADJUDICACIONES).
> Inmediatamente en la celda D2 tengo un botón que al pulsarlo crea una
> réplica de otra hoja que se llama modulo con el siguiente código:
>
> Sub agregarhoja()
>
> Sheets("modulo").Select
> Sheets("modulo").Copy Before:=Sheets(3)
> Range("A1").Select
> End Sub
>
> Mi pregunta es como hago para que se agregue la hoja replicada pero NO


con
> el nombre modulo (2), sino mas bien con el nombre que digité en la


celda
> C2
> (ADJUDICACIONES).
>
> Para finalizar, tengo otro botón en la celda inmediata (E2) que al
> pulsarlo,
> me debería llevar directamente a la hoja replicada que se llama
> ADJUDICACIONES.
>
> No sé si me expliqué bien pero agradezco cualquier ayuda que me puedan
> brindar, saludos
>
>
>






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida