Cambio dinamico de nombre de hoja de Calculo

06/11/2007 - 00:58 por Jose Luis Prieto | Informe spam
Buenas,
Por favor, alguien podría explicarme si es posible cambiar dinámicamente el
nombre de una hoja de Calculo de un libro, dependiendo del contenido de una
celda??

Ante todo, Mil gracias

Preguntas similare

Leer las respuestas

#1 Ivan
06/11/2007 - 04:38 | Informe spam
hola Jose Luis,

cambiar dinámicamente el
nombre de una hoja de Calculo de un libro, dependiendo del contenido de una
celda??



mira si te puede valer algo parecido a esto:

suponiendo que es la misma hoja a la que quieres cambiar el nombre que
la que contiene la celda en la que lo escribes (en el ejemplo 'A1' -
cambialo por la que sea-) pega esto en el modulo de esa hoja (click
secundario en la pestaña de esa hoja => ver codigo => lo pegas en la
hoja (del editor de VBA) que se te abre)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a1")) Is Nothing Then
On Error Resume Next
Name = Target
If Err.Number <> 0 Then MsgBox "El nombre introducido no es " & _
"un nombre valido de hoja": Target = Name: Target.Select
On Error GoTo 0
End If
End Sub

si quieres comentas
un saludo
Ivan
Respuesta Responder a este mensaje
#2 Héctor Miguel
06/11/2007 - 05:37 | Informe spam
hola, chicos !

despues de la instruccion On Error Resume Next, yo solo trataria de evitar el uso del "Target"
y cambiarlo por la referencia a la celda pretendida para el cambio de nombre de la hoja (A1 ?)
ya que si se llegara a hacer un copy y se pega en un rango que incluya a la celda A1...
el Target es la referencia al rango completo (no solo a la celda A1)
(lo que ocasionaria caer en un "bucle sin fin") :-((

saludos,
hector.

Ivan escribio en el mensaje ...
hola Jose Luis,



cambiar dinámicamente el nombre de una hoja de Calculo de un libro
dependiendo del contenido de una celda??

mira si te puede valer algo parecido a esto:

suponiendo que es la misma hoja a la que quieres cambiar el nombre que la que contiene la celda en la que lo escribes
(en el ejemplo 'A1' - cambialo por la que sea-) pega esto en el modulo de esa hoja
(click secundario en la pestana de esa hoja => ver codigo => lo pegas en la hoja (del editor de VBA) que se te abre)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a1")) Is Nothing Then
On Error Resume Next
Name = Target
If Err.Number <> 0 Then MsgBox "El nombre introducido no es " & _
"un nombre valido de hoja": Target = Name: Target.Select
On Error GoTo 0
End If
End Sub
Respuesta Responder a este mensaje
#3 Jose Luis Prieto
06/11/2007 - 15:26 | Informe spam
Muy Buenas, ante todo muchas gracias Iván y Hector por contestar.

Si os parece os cuento mas detalladamente:

Estoy haciendo una plantilla de horarios para un restaurante en un mismo
libro. tengo una hoja general donde se expone el horario de cada empleado por
dias; otra hoja donde tengo un resumen general de las horas de cada empleado.

lo que quiero crear es lo siguiente jeje veremos si me explico:

cuando en un rango de celdas x tenga valor distindo de "0" me gustaria que
en el mismo ibro me creara una hoja de calculo con el nombre del empleado en
cuestion y capturar las horas que solo hace ese empleado. si el valor es
igual a "0" no se creará dicha hoja.

Si no es posible lo que digo (claro que si no lo hace excel.. no existe),
seria necesario identificar cada una de las hojas de las "n" que he de crear
en el mismo libro con el nombre del empleado, de ahi que necesite ese cambio
dinámico del nombre de la hoja.

de nuevo muchas gracias por vuestra ayuda

jose luis




"Héctor Miguel" escribió:

hola, chicos !

despues de la instruccion On Error Resume Next, yo solo trataria de evitar el uso del "Target"
y cambiarlo por la referencia a la celda pretendida para el cambio de nombre de la hoja (A1 ?)
ya que si se llegara a hacer un copy y se pega en un rango que incluya a la celda A1...
el Target es la referencia al rango completo (no solo a la celda A1)
(lo que ocasionaria caer en un "bucle sin fin") :-((

saludos,
hector.

>> Ivan escribio en el mensaje ...
>>hola Jose Luis,
>
>cambiar dinámicamente el nombre de una hoja de Calculo de un libro
> dependiendo del contenido de una celda??
>
>> mira si te puede valer algo parecido a esto:
>>
>> suponiendo que es la misma hoja a la que quieres cambiar el nombre que la que contiene la celda en la que lo escribes
>> (en el ejemplo 'A1' - cambialo por la que sea-) pega esto en el modulo de esa hoja
>> (click secundario en la pestana de esa hoja => ver codigo => lo pegas en la hoja (del editor de VBA) que se te abre)
>>
>> Private Sub Worksheet_Change(ByVal Target As Range)
>> If Not Intersect(Target, Range("a1")) Is Nothing Then
>> On Error Resume Next
>> Name = Target
>> If Err.Number <> 0 Then MsgBox "El nombre introducido no es " & _
>> "un nombre valido de hoja": Target = Name: Target.Select
>> On Error GoTo 0
>> End If
>> End Sub



Respuesta Responder a este mensaje
#4 Jose Luis Prieto
06/11/2007 - 23:45 | Informe spam
buenas a ambos de nuevo,

No creo que seas tu el espeso... será mas bien que no me se explicar.
El objetivo es el siguiente:

basandome en una sola hoja donde incluyo diariamente el horario de cada
empleados, he de sacar una unica hoja donde solo salga el horario de toda la
semana de un empleado en cuestion.

el objeto de cambiar dinamicamente el nombre de las hojas, es para evitar
los errores por la alta rotacion. el que esta semana se llama luis al mes
resulta que es pedro. Si en la hoja numero 1 llamada "Turnos" tengo una celda
con un nombre asignado, deberia poder otorgar ese nombre para que nomencle su
hola de horario.

y lo que os comentaba antes, era una forma de rizar el rizo: si la empresa
tiene 10 empleados, debo generar 10 hojas de calculo, uno para cada empleado;
pero si la empresa tiene 100 empleados... la "cojo" plantilla tiene tela...
por esto, os comentaba si es posible crear tambien dinamicamente una hoja en
su totalidad.. supongo que poderse hacer.. seguro que, pero desde luego
entendería un comentario por vuestra parte como..."hazte informatico tio!!".

por ahora, he generado las hojas a capón, la general y las que estan
destinadas a cada uno de los empleados. está casi acabada. Por mi parte, si
quereís que os la envíe para que la echéis un vistazo, sin ningún problema ni
compromiso,

saludos varios y gracias de nuevo


"Ivan" escribió:

hola Hector ( y Jose Luis)

>trataria de evitar el uso del "Target"
> y cambiarlo por la referencia a la celda pretendida para el cambio de nombre de la hoja (A1 ?)
> ya que si se llegara a hacer un copy y se pega en un rango que incluya a la celda A1...
> el Target es la referencia al rango completo (no solo a la celda A1)
> (lo que ocasionaria caer en un "bucle sin fin") :-((

gracias por la correccion. La verdad es que los dichosos eventos
(sobre todo de hoja) siguen teniendo [para mi] su 'aquel'.

y para Jose Luis, acabo de ver tu mensaje y la verdad es que lo voy a
tener que releer con calma para acabar de entender lo que quieres
hacer.

Por un lado¿cual es la hoja a la que quieres aplicar el cambio
dinamico de nombre? y, aunque creo que lo intentas explicar, (no se si
estoy muy espeso, pero no lo acabo de ver) ¿por que?

y por otro creo que no sobraria si especificaras/detallaras un poco
mas concretos.

Cosas como: rangos usados, organizacion de las tablas ( columnas/
campos, fila inicial, etc) tanto de origen como de destino (nueva), si
solo se tendria que crear una hoja por empleado y forma/lugar donde
añadir los datos/horarios, y lo que se te ocurra pueda ayudar a 'ver'
mejor tu archivo

aunque estando Hector por aqui supongo que algo ya se le estara
ocurriendo

un saludo
Ivan


Respuesta Responder a este mensaje
#5 Héctor Miguel
07/11/2007 - 05:57 | Informe spam
hola, Jose Luis !

si ya tienes una hoja de control general y solo necesitas "ver" un resumen segun empleado seleccionado...
prueba con los filtros avanzados, copiando a otro lugar, estableciendo el rango de salida (nombrado) en una hoja "resumen"
(a menos que sea indispensable mantener n_hojas segun empleados en esa hoja de control general) -???-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la consulta original __
basandome en una sola hoja donde incluyo diariamente el horario de cada empleados
he de sacar una unica hoja donde solo salga el horario de toda la semana de un empleado en cuestion.
el objeto de cambiar dinamicamente el nombre de las hojas, es para evitar los errores por la alta rotacion.
el que esta semana se llama luis al mes resulta que es pedro.
Si en la hoja numero 1 llamada "Turnos" tengo una celda con un nombre asignado
deberia poder otorgar ese nombre para que nomencle su hola de horario.
y lo que os comentaba antes, era una forma de rizar el rizo:
si la empresa tiene 10 empleados, debo generar 10 hojas de calculo, uno para cada empleado
pero si la empresa tiene 100 empleados... la "cojo" plantilla tiene tela...
por esto, os comentaba si es posible crear tambien dinamicamente una hoja en su totalidad...
por ahora, he generado las hojas a capon, la general y las que estan destinadas a cada uno de los empleados.
esta casi acabada. Por mi parte, si quereis que os la envie para que la echeis un vistazo
sin ningun problema ni compromiso..
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida