Septiembre, con todo el poder de Excel, Power BI e Inteligencia Artificial | Clase en vivo privada este sábado 12 de septiembre de 2026. Clic aquí →
hace 5 horas 💬 Comentario
hice esto, no quedó perfecto pero funciona, elimina la linea de la hoja que estamos ingresando como indice (que yo le puse control) y además pregunta si quiero cambiar el nombre de otra hoja, probablemente con alguno de los bucles futuros lo haga mejor: Sub CrearIndice3()
    
Dim Hoja_control As Worksheet
Dim Cantidad_Hojas As Integer
Dim i As Integer
Dim Resp_cambio_hoja_control As Byte
    
    
ThisWorkbook.Sheets.Add Before:=Sheets(1)
Set Hoja_control = Application.ActiveSheet
    
    With Hoja_control.Range("A1")
        .Value = "ÍNDICE CONTROL"
        .Font.Bold = True
    End With
    
Cantidad_Hojas = ThisWorkbook.Sheets.Count
    
    For i = 1 To Cantidad_Hojas
        Hoja_control.Range("A1").Offset(i, 0).Value = Sheets(i).Name
    Next i
    
Resp_cambio_hoja_control = MsgBox("Desea asignarle un nombre a la nueva hoja?", vbQuestion + vbYesNoCancel, "Curso VBA")
    
    If Resp_cambio_hoja_control = vbYes Then
        Application.Dialogs(xlDialogWorkbookName).Show
    Else
        'nada
        
    End If
    
ThisWorkbook.ActiveSheet.Range("a2").Delete
    
    
    Dim hojaseleccionada As String
    Dim Nuevonombrehojacontenido As String
    Dim Respuesta As Byte
    
    
    
    hojaseleccionada = Application.InputBox("seleccione la hoja del indice para cambiar el nombre: ", "seleccione hoja", Type:=2)
    
    Nuevonombrehojacontenido = InputBox("introduce un nombre para la hoja: ", "cambio de nombre")
    
    
    If Nuevonombrehojacontenido = "" Then
        
        MsgBox "no ha introducido un nombre valido OPERACION CANCELADA ", vbCritical
        Exit Sub
        
    End If
    
    ThisWorkbook.Sheets(hojaseleccionada).Activate
    ActiveSheet.Name = Nuevonombrehojacontenido
    Respuesta = MsgBox("el nuevo nombre de la hoja es: " & Nuevonombrehojacontenido & vbNewLine & "desea cambiar el nombre de otra hoja?", vbYesNoCancel)
    
    If Respuesta = vbYes Then
        
        hojaseleccionada = Application.InputBox("seleccione la hoja del indice para cambiar el nombre: ", "seleccione hoja", Type:=2)
        
        Nuevonombrehojacontenido = InputBox("introduce un nombre para la hoja: ", "cambio de nombre")
        
        
        If Nuevonombrehojacontenido = "" Then
            
            MsgBox "no ha introducido un nombre valido OPERACION CANCELADA ", vbCritical
            Exit Sub
            
        End If
        
        ThisWorkbook.Sheets(hojaseleccionada).Activate
        ActiveSheet.Name = Nuevonombrehojacontenido
        Respuesta = MsgBox("el nuevo nombre de la hoja es: " & Nuevonombrehojacontenido & vbNewLine & "desea cambiar el nombre de otra hoja?", vbYesNoCancel)
        
    Else
        
        MsgBox "elegiste NO"
                
        Exit Sub
        
    End If
    
    
    
End Sub


Respuestas 0