............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Ver el tema anterior Ver el tema siguiente Ir abajo

COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Mensaje por charlesc el Jue Abr 12, 2012 3:36 pm

Hola Amigos,

Tengo un libro excel con aproximadamente 100 nombres de celdas y rangos definidos.

Pues bien, necesito "etiquetar" las mismas celdas en aproximadamente 90 libros excel que ya hay creados,
pero sin nombres.

Por favor, decidme que hay algún método para hacerlo, que no sea manualmente.

Muchas gracias.

charlesc

Masculino Cantidad de envíos : 10
Edad : 49
Ciudad - Pais : cadiz
Version de Excel : 2003 y 2007
Fecha de inscripción : 02/03/2012

Volver arriba Ir abajo

Re: COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Mensaje por Cacho R el Jue Abr 12, 2012 8:35 pm

Hola! charlesc. Tienes dos opciones:

a) 10 personas trabajando todo el día durante dos semanas pueden conseguir ese objetivo;
b) Una macro -quizás- lo consiga en un par de minutos

Te sugeriría que comiences a desarrollar "algo" en el marco de las macros de Excel y, en base a lo que tengas, podremos ir orientándote.

Saludos, Cacho R.
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Mensaje por charlesc el Vie Abr 13, 2012 9:58 am

He pensado en esto.

¿Que os parece?


Sub copiar_nombres()

' copia los nombres de libro_origen a libro_destino

Dim n As Name

Dim libro_origen As Workbook
Dim libro_destino As Workbook

Set libro_origen = Workbooks("libro con nombres.xls")
Set libro_destino = Workbooks("libro sin nombres.xls")


For Each n In libro_origen.Names

libro_destino.Names.Add n.Name, n.RefersTo

Next n
End Sub

charlesc

Masculino Cantidad de envíos : 10
Edad : 49
Ciudad - Pais : cadiz
Version de Excel : 2003 y 2007
Fecha de inscripción : 02/03/2012

Volver arriba Ir abajo

Re: COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Mensaje por Cacho R el Vie Abr 13, 2012 1:43 pm

charlesc escribió:He pensado en esto. ¿Que os parece?

Sub copiar_nombres()
' copia los nombres de libro_origen a libro_destino
Dim n As Name
Dim libro_origen As Workbook
Dim libro_destino As Workbook

Set libro_origen = Workbooks("libro con nombres.xls")
Set libro_destino = Workbooks("libro sin nombres.xls")
For Each n In libro_origen.Names
libro_destino.Names.Add n.Name, n.RefersTo
Next n
End Sub
¡Ya -casi- lo tienes!...

¿Sabes que es muy importante asegurar?... Cuando un nombre en el libro refiere a un rango, incluye -también- el nombre de la hoja a la que pertenece el rango.
Entonces: ¿Puedes asegurar que las hojas de los libros que recibirán los nombres se llaman EXACTAMENTE igual que las hojas del libro original?

Por ejemplo: si una hoja (del libro origen) se llama "Enero" y su equivalente en otro libro (destino) es "Febrero", pues estamos en un problema. De no ser así: ¡ya -casi- lo tienes!
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Mensaje por charlesc el Vie Abr 13, 2012 4:19 pm

Hola Cacho R,

Ante todo, gracias por tu respuesta,

No. No puedo asegurar que hoja a hoja, se llaman "exactamente" en libro origen y en libro destino.

Es mas. No puedo asegurar que en los libros ya creados, tengan todas las hojas, que en el libro "con celdas etiquetadas".

Así que, como bien comentas. El primer trabajo a realizar antes de lanzar la macro contra todas las "90" hojas ya creadas, va a ser preparar las 90 hojas para que coincidan "exactamente", con el libro etiquetado ( por decirlo así). Son muy muy parecidas, pero hay pequeñas diferencias.

Voy a probar la macro, con algunas hojas a ver que pasa.

Ya os cuento, como me ha ido.

Muchas gracias, Cacho R.







charlesc

Masculino Cantidad de envíos : 10
Edad : 49
Ciudad - Pais : cadiz
Version de Excel : 2003 y 2007
Fecha de inscripción : 02/03/2012

Volver arriba Ir abajo

Re: COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Mensaje por Cacho R el Vie Abr 13, 2012 4:45 pm

El tema que estamos analizando sería muy fácilmente salvable si aportaras información útil tal como:

- Los libros de los que estamos hablando, ¿Tienen una sola hoja?

- En el caso de tener varias hojas: los nombres que se requieren transferir, ¿Están todos referidos a la primera hoja de los libros?... ¿A la última?

La verdad es que si nos muestras dos libros: el de origen de los nombres y uno cualquiera de los libros receptores sería mucho más sencillo y no tendríamos que estar adivinando !!! (lo anterior es un sinónimo de "perder el tiempo", ¿no?)
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Mensaje por charlesc el Sáb Abr 14, 2012 6:51 pm

Hola,

Los libros excel de los que hablo, son plantillas utilizadas por varios documentos word con datos vinculados con celdas excel de estos libros, que comento ( por ejemplo una factura en word, una instancia en word, documentos varios, etc..)

La ultima versión de estos libros excel, tiene 42 hojas. Pero la primera versión tiene solo 20 hojas. Aunque casi todos los nombres están en las hojas importantes. hoja 1, hoja 4, hoja 6, hoja 7, hoja 10.

Pero ya te digo, van saliendo versiones mejoradas y se van mejorando con el tiempo.

No puedo enseñaros los libros excel, puesto que contienen datos privados de personas y empresas, lo siento.

Ya he probado la macro, pero me dá errores con los ..!Print_Area y ..!FilterDatabase.

Como sería posible limpiar los libros de estos tipos de nombres?

Gracias.

charlesc

Masculino Cantidad de envíos : 10
Edad : 49
Ciudad - Pais : cadiz
Version de Excel : 2003 y 2007
Fecha de inscripción : 02/03/2012

Volver arriba Ir abajo

Re: COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Mensaje por charlesc el Sáb Abr 14, 2012 6:55 pm

Hola Caho R,

Se me olvidadaba. Las hojas existentes en los libros, si tienen exactamente el mismo nombre. Lo que pasa que la ultima versión del libro excel, tiene mas hojas.

Se podría hacer una macro para añadir a todos los libros excel antiguos, las hojas que se han añadido a la ultima version del libro excel?

Saludos.

charlesc

Masculino Cantidad de envíos : 10
Edad : 49
Ciudad - Pais : cadiz
Version de Excel : 2003 y 2007
Fecha de inscripción : 02/03/2012

Volver arriba Ir abajo

Re: COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Mensaje por Cacho R el Sáb Abr 14, 2012 8:21 pm

La macro que muestras te obliga a estar abriendo de un modo manual -uno a uno- los 90 libros...

Si el libro origen de los nombres y TODOS los libros a procesar estuviesen ubicados en la misma carpeta, el procedimiento lo podrías automatizar con lo siguiente (algunas instrucciones a considerar te las he puesto dentro del mismo código):

Código:
Sub TransferirNombres()
'-------------------
' By Cacho Rodríguez
'-------------------
Dim myName As Name, oriBook As Workbook
Dim Mat, i As Integer, myFile As String

' El libro que contiene los nombres de origen, debe encontrarse
' abierto, y debes definir su nombre en la siguiente línea:
Set oriBook = Workbooks("libro con nombres.xls")

' Esta macro puede estar ubicada en cualquier lado:
' es indiferente

Application.ScreenUpdating = False
ReDim Mat(1 To oriBook.Names.Count, 1 To 2)
For i = 1 To UBound(Mat)
  Mat(i, 1) = oriBook.Names(i).Name
  Mat(i, 2) = oriBook.Names(i).RefersTo
Next

On Error Resume Next
myFile = Dir(oriBook.Path & "\*.xl*")

Do Until myFile = ""
  If myFile <> oriBook.Name And myFile <> ThisWorkbook.Name Then
    Workbooks.Open oriBook.Path & "\" & myFile, , False
    For i = 1 To UBound(Mat)
      ActiveWorkbook.Names(Mat(i, 1)).Delete
      ActiveWorkbook.Names.Add Mat(i, 1), Mat(i, 2)
    Next i
    ActiveWorkbook.Close True
  End If
  myFile = Dir
Loop

Application.ScreenUpdating = True
End Sub

Haz tus pruebas y comenta, por favor.
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Mensaje por charlesc el Mar Mayo 01, 2012 8:50 am

Hola,

He probado la macro y funciona muy bien.

Muchas gracias, Cacho R.

Saludos.

charlesc

Masculino Cantidad de envíos : 10
Edad : 49
Ciudad - Pais : cadiz
Version de Excel : 2003 y 2007
Fecha de inscripción : 02/03/2012

Volver arriba Ir abajo

Re: COMO TRANSFERIR NOMBRES DE UN LIBRO EXCEL A OTROS LIBROS.

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.