Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
Avatar do usuário
Por Ev3r 15 Abr 2019 às 16:35
Membro 1 Estrela
Mensagens: 13
Reputação: 3
#43095
boa tarde,
tenho uma planilha com várias guias onde cada guia representa uma página do documento, preciso de uma formula que indique a numeração de cada página automaticamente de forma sequencial mas que conte somente as guias que eu preencher as informações pois nem sempre vou precisar de todas as guias desse arquivo.
tenho feito a numeração manualmente, mas gostaria de uma formula para evitar erros, visto que é um documento que vai pra registro e pode ser devolvido por numeração de pagina errada.

no exemplo eu coloquei uma planilha com as guias 1,2,3 e 4, sendo que somente nas guias 1,2 e 4 teria o preenchimento de dados, nessa sequencia, a guia 4 seria na verdade a folha nº 3 e não 4.

desde já agradeço.
Apenas usuários registrados podem ver ou baixar anexos.
Avatar do usuário
Por Estevaoba 16 Abr 2019 às 00:13
Membro 4 Estrelas
Mensagens: 398
Reputação: 179
#43115
Se for possível renomear as abas eliminando os espaços, por exemplo, folha 1 para folha1, e mantendo esse padrão, ou seja, sempre com a mesma palavra mais um número sequencial como no seu exemplo, é possível combinar algumas funções que retornam o nome e o número de ordem das abas.

Cole a fórmula abaixo em uma célula fora da área de dados, U2, por exemplo. Pode ocultar se quiser. Cole a fórmula em todas as abas. Para fazer isso só com uma operação, clique na primeira aba, segure a tecla Shift e clique na última aba, depois selecione a célula U2 (ou outra de sua escolha), cole a fórmula e tecle Enter. Com isto, a fórmula estará em todas as abas exibindo uma numeração. Nas abas não preenchidas, a numeração será a mesma da última aba anterior que esteja preenchida.
Detalhe: A fórmula leva em conta que a célula A1 fica vazia quando a aba não está preenchida.

Código: Selecionar todos=SEERRO(INDIRETO("folha"&PLAN(INDIRETO(DIREITA(CÉL("nome.arquivo";Z1);NÚM.CARACT(CÉL("nome.arquivo";Z1))-LOCALIZAR("]";CÉL("nome.arquivo";Z1)))&"!A1"))-1&"!U2")+SE(A1="";0;1);1)


Em seguida, na célula a exibir a numeração correta, J2 no seu exemplo, cole esta fórmula:
=SE(A1="";"";U2)

Veja no anexo se atende.

Good luck!
Apenas usuários registrados podem ver ou baixar anexos.
Por osvaldomp 16 Abr 2019 às 22:18
Membro 5 Estrelas
Mensagens: 1242
Reputação: 608
#43152
Se for aceitável uma solução via macro, instale uma cópia do código abaixo no módulo de EstaPasta_de_trabalho, assim:
1. copie o código daqui
2. a partir de qualquer planilha tecle 'Alt+F11' para acessar o editor de VBA
3. no lado esquerdo da tela dê duplo clique em EstaPasta_de_trabalho
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar
Código: Selecionar todosPrivate Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 If Target.Address <> "$A$1" Then Exit Sub
 For Each Sh In ThisWorkbook.Worksheets
  If Sh.Index = 1 Then
   Sh.[J2] = IIf(Sh.[A1] <> "", 1, "")
  Else
   Sh.[J2] = IIf(Sh.[A1] <> "", Evaluate("MAX('" & Sheets(1).Name & ":" & Sheets(Sh.Index - 1).Name & "'!J2)") + 1, "")
  End If
 Next Sh
End Sub


funcionamento - após alteração manual em A1 de qualquer das planilhas o código acima irá inserir um número sequencial em J2 das planilhas com algum conteúdo em A1.