Cambiar nombre a hojas en Excel en base a un rango de celdas mediante macros

image

En el foro de Ayuda Excel se hizo una pregunta de acerca de cómo cambiar el nombre de las hojas de Excel si los nombres a definir están en un rango de celdas.

En base a esa pregunta es que les comparto una macro que permite cambiar el nombre a las hojas en base a un rango de celdas. La macro tiene un manejo de errores en caso de que haya más hojas que nombres en las celdas.

Vea también: Cambiar nombres a hojas de Excel mediante formulario vba.

Cómo funciona

En el ejemplo comenzaremos a introducir los nombres a asignar en la celda [A13]. El primer requisito para que la macro funcione es que tengamos por lo menos dos hojas en el archivo, en dado caso no funcionará, ya que los nombres se asignar a partir de la segunda hoja.

En cuando a la macro, usaremos el constructor For Next para recorrer las hojas del libro e ir cambiando los nombres en base al contenido del rango donde están los nombres.

Cambiar nombre a hojas en Excel en base a un rango de celdas mediante macros

Figura 1. Cambiar nombre a hojas en Excel en base a un rango de celdas mediante macros.

Ver Video

Macro vba

A continuación les comparto la macro usada en el ejemplo.

Option Explicit
'---------------------------------------------------------------------------------------
' Module    : Módulo1
' Author    : MVP Excel, Sergio Alejandro Campos
' Date      : 15/03/2016
' Purpose   : Cambiar nombre a hojas
' Website   : www.exceleinfo.com
'---------------------------------------------------------------------------------------
'
Sub CambiarNombreHojas()
'Declaramos varibles
    Dim CeldaInicial As Integer
    Dim intHojas As Integer
    Dim i As Integer

    'Guardamos el dato de la cantidad de hojas
    intHojas = ActiveWorkbook.Sheets.Count

    'Si hay menor de 2 hojas la macro no continúa.
    If intHojas < 2 Then
        MsgBox "Debe haber por lo menos dos hojas en el libro", vbExclamation, "EXCELeINFO"
    Else
        'Recorremos hoja por hoja y cambiamos nombres
        CeldaInicial = 0
        For i = 2 To intHojas
            On Error Resume Next
            ActiveWorkbook.Sheets(i).Name = Range("A13").Offset(CeldaInicial, 0).Value
            CeldaInicial = CeldaInicial + 1
            On Error GoTo 0
        Next
    End If

End Sub

Descarga el ejemplo

Par aplicar la macro en tus archivo descargar el ejemplo. Si quieres ver el video donde explico este ejemplo aquí mira el video.

You may also like...