Cambiar Nombres (Administrador de Nombres) con Macro

Tenemos en la empresa una hoja de cálculo para la realización de informes y la venimos utilizando sin ningún problema desde hace un par de años. Esta hoja funciona con una pestaña de introducción de datos y tras completarla, con una macro crea las hojas del informe con sus áreas de impresiones a base de copiar una plantilla varias veces según se requiera.

Desde dirección, se ha instado al uso de un programa para la centralización de todos los datos de la empresa (facturación, compras, etc...) incluyendo la entrada de datos para los informes. El programa lo que hace es usar pegar los inputs en la plantilla Excel que hemos venido utilizando.

Este programa funciona relativamente bien, pero por lo visto utiliza "la versión inglesa" del Excel, de tal forma que las áreas de impresión, que están definidas mediante nombres en la plantilla con 'Área_de_impresión', están cambiadas una vez corre el programa a 'Print_Area'. Esto hace que cuando abrimos el archivo excel no reconozca el nombre inglés de área de impresión.

He probado a cambiar el nombre manualmente en el administrador de nombre de 'Print_Area' a 'Área_de_impresión' y el problema se arregla. Hacer esta operación manualmente es bastante tedioso, ya que un informe puede contener de 20 a 150 páginas, y si hay que cambiar el nombre de cada una de ellas desde el administrador de nombre cada vez que se realiza un informe, a razón de 5 a 6 informes diarios, os podéis imaginar el trabajo extra que supone.

Tengo ciertas nociones de VBA, pero ignoro cuales son los comandos o lineas de código a añadir en una macro para cambiarlos.

Hay que tener en cuenta que el número de nombre a cambiar es variabe en función de las hojas del informe, y que el nombre a cambiar es el mismo en todos los casos.

Para que os hagáis una idea, debería quedar así:

 

Si necesitais más información me la pedís sin problemas.

1 respuesta

Respuesta
1

Te anexo la macro para cambiar los nombres, en todas las hojas, que digan "Print_Area" a "Área_de_impresión"

Sub CambiarNombres()
'Por.Dante Amor
    For Each h In Sheets
        For Each p In h.Names
            If InStr(1, p.Name, "Print_Area") > 0 Then
                p.Name = "Área_de_impresión"
            End If
        Next
    Next
End Sub

Añade tu respuesta

Haz clic para o