Entra al Editor de macros (presionando juntas las teclas ALT y F11).
Inserta un módulo y copia allí esta macro:
Sub separa_en_Hojas()
'x Elsamatilde
'recorre la col A de hoja DATOS, a partir de fila 2
Application.ScreenUpdating = False
Sheets("DATOS").Select
Range("A2").Select
'repite el proceso hasta encontrar celda vacía en col A
While ActiveCell <> ""
nbrehoja = ActiveCell.Value
'guardo la fila x si necesito mostrar en mensaje de error
filaReg = ActiveCell.Row
Range("A" & ActiveCell.Row & ":C" & ActiveCell.Row).Copy
'crea hoja, pega los datos
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Paste
'asigna nombre a la hoja nueva
On Error GoTo errorHoja
ActiveSheet.Name = nbrehoja
On Error GoTo 0
sigo:
'vuelve a la hoja DATOS
Sheets("DATOS").Select
'pasa a la fila sgte y repite el bucle
ActiveCell.Offset(1, 0).Select
Wend
Application.CutCopyMode = False
MsgBox "Fin del pase a nuevas hojas.", , "FIN DEL PROCESO"
Exit Sub
errorHoja:
MsgBox "No se pudo dar nombre a la hoja de la fila " & filaReg & ". Nombrala manualmente al finalizar. El proceso continua con el resto de las hojas.", , "ERROR"
GoTo sigo
End Sub
Para ejecutarla podés buscarla desde la ficha Macros o con un botón o con un atajo de teclado.... este tema lo dejé explicado en la sección Macros de mi sitio.
Si por alguna razón no se puede asignar el nombre a la hoja (dato duplicado o texto no apto para nombre de hoja) te aparecerá un mensaje indicando en qué fila se encuentra el registro fallado y seguirá con el resto hasta llegar al final de la columna A.
Sdos y no olvides valorar y finalizar la consulta si queda el tema resuelto.
Elsa