Asignar nombre desde el nombre de una hoja a un línea de código de VBA
Tengo una macro que para que funcione debe ir en la hoja propiamente en visual basic (Microsoft Excel Objetos). Lo que realiza es traer datos de una hoja base de acuerdo al valor dentro de una celda. Lo que quisiera es que tome en forma dincamica el nombre de la solapa pues al duplicar la hoja no lo hace. Las hojas duplicadas siempre se llamaran Fecha 1, Fecha 2 hasta el valor 20. Pues sino cada vez que duplico la hoja debo ingresar a VBA y realizar el cambio de nombre.
El nombre de las solapas lo tengo en forma dinámica en la celda B2 con la siguiente fórmula
=DERECHA(CELDA("nombrearchivo";A1);LARGO(CELDA("nombrearchivo";A1))- ENCONTRAR("]";CELDA("nombrearchivo";A1);1))
La macro que trae la información de la hoja FORMACIÓN a la hoja llamada Fecha 1 es:
Private Sub ComboBox1_Change()
'Sheets("Fecha 1").Select
'ActiveSheet.Unprotect Password:="1234"
Dim w As String
Sheets("Fecha 1").[A9:G24].Clear 'Borra datos en hoja1
w = Sheets("Fecha 1").[E4].Value 'Variable w que es la fecha
With Sheets("FORMACION").[A2]
.AutoFilter 1, w 'Aplica autofiltro
.CurrentRegion.Copy Sheets("Fecha 1").[A9] 'Copia y pega lo filtrado
.AutoFilter 'Quita el autofiltro
End With
'Sheets("Fecha 1").Select
'ActiveSheet.Protect Password:="1234"
End Sub