
Fórmula genérica
=GET.WORKBOOK(1)&T(NOW())
Resumo
Para listar planilhas em uma pasta de trabalho do Excel, você pode usar uma abordagem de 2 etapas: (1) definir um intervalo nomeado chamado "nomes de planilha" com um comando de macro antigo e (2) usar a função INDEX para recuperar nomes de planilhas usando o intervalo nomeado. No exemplo mostrado, a fórmula em B5 é:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Nota: Encontrei esta fórmula no quadro de mensagens MrExcel em uma postagem de T. Valko.
Explicação
O intervalo nomeado "sheetnames" é criado com este código:
=GET.WORKBOOK(1)&T(NOW())
GET.WORKBOOK é um comando de macro que recupera uma matriz de nomes de planilha na pasta de trabalho atual. A matriz resultante é semelhante a esta:
("(workbook.xlsm)Sheet1","(workbook.xlsm)Sheet2","(workbook.xlsm)Sheet3","(workbook.xlsm)Sheet4","(workbook.xlsm)Sheet5")
Uma expressão enigmática é concatenada ao resultado:
&T(NOW())
O objetivo deste código é forçar o recálculo para selecionar as alterações nos nomes das planilhas. Como NOW é uma função volátil, ela recalcula a cada alteração na planilha. A função NOW retorna um valor numérico que representa a data e a hora. A função T retorna uma string vazia ("") para valores numéricos, então a concatenação não tem efeito sobre os valores.
De volta à planilha, a célula B6 contém esta fórmula copiada:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Trabalhando de dentro para fora, a função MID é usada para remover os nomes das planilhas. A matriz resultante é semelhante a esta:
("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5")
Isso vai para a função INDEX como "array". A função ROW usa um intervalo de expansão para gerar um número de linha crescente. A cada nova linha, INDEX retorna o próximo valor da matriz. Quando não houver mais nomes de planilhas para imprimir, a fórmula retornará um erro #REF.
Observação: como essa fórmula depende de um comando de macro, você precisará salvar como uma pasta de trabalho habilitada para macro se quiser que a fórmula continue a atualizar os nomes das planilhas depois que o arquivo for fechado e reaberto. Se você salvar como uma planilha normal, o código sheetname será removido.