Como numerar automaticamente as linhas caso a célula adjacente não esteja em branco no Excel?

No Excel, utilizar a alça de preenchimento para criar manualmente uma série numérica é uma forma comum de gerar números de série ou índices para listas. Contudo, surgem frequentemente situações em que pretende numerar apenas as linhas cujas células adjacentes contenham dados. Por exemplo, poderá desejar gerar automaticamente o número de linha numa lista, mas omitir a numeração nas linhas em que as células de dados adjacentes estejam vazias. Além disso, poderá esperar que esses números se atualizem instantaneamente à medida que os dados são introduzidos ou removidos — garantindo sempre uma sequência atualizada, sem qualquer intervenção manual.
Numerar linhas automaticamente com fórmula se a célula adjacente não estiver em branco
Numerar linhas automaticamente com código VBA se a célula adjacente não estiver em branco
Numerar linhas automaticamente com fórmula se a célula adjacente não estiver em branco
Uma forma eficaz de obter uma numeração dinâmica de linhas com base nos valores das células adjacentes é utilizar uma fórmula do Excel. Com esta abordagem, a numeração só aparece quando a célula adjacente contém um valor. Ao adicionar ou eliminar dados nessas células, a numeração atualiza-se automaticamente para refletir as alterações. Eis um método prático que pode utilizar:
1. Selecione a célula onde pretende que a numeração comece (por exemplo,)A2, se os seus dados começarem em B2). Introduza a seguinte fórmula:
=IF(B2<>"",COUNTA($B$2:B2),"") 2. Em seguida, arraste a alça de preenchimento ao longo dos seus dados para aplicar esta fórmula às restantes linhas. A numeração ajusta-se automaticamente, apresentando números apenas nas linhas em que existam dados na coluna B.

Se encontrar problemas em que os números não se atualizam conforme esperado, confirme se a fórmula foi copiada para todas as linhas relevantes e se não existem células mescladas ou validações de dados que interfiram no seu intervalo. Lembre-se de que as fórmulas dependem de referências corretas e podem ser interrompidas por alterações estruturais na folha de cálculo.
Numerar linhas automaticamente com código VBA se a célula adjacente não estiver em branco
Para utilizadores mais avançados, ou em situações em que prefira não aplicar fórmulas em toda a folha de cálculo — ou precise que a numeração seja atualizada automaticamente ao colar dados, remover blocos ou realizar alterações frequentes — uma macro VBA é uma alternativa atrativa. Com o VBA, pode atualizar automaticamente o número de linhas numa coluna sempre que a célula adjacente for editada, sem recorrer a fórmulas. Esta solução é ideal para formulários de introdução de dados, registos de importação ou listas de tarefas sujeitas a alterações frequentes na disposição.
1. Prima Alt + F11 para abrir a janela do editor do Visual Basic for Applications. No Explorador de Projetos, localize o seu livro e, em seguida, faça duplo clique na folha relevante (por exemplo, «Sheet1») em «Microsoft Excel Objects».
2. Na janela de código que surge, cole o seguinte código. Este exemplo parte do pressuposto de que pretende numerar as linhas na coluna A sempre que a coluna B não estiver em branco; pode ajustar as referências conforme o seu intervalo específico, se necessário:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim chk As Range
Set chk = Intersect(Target, Me.Columns("B"))
If chk Is Nothing Then Exit Sub
Application.EnableEvents = False
Call RenumberNonBlank(Me, "B", "A", 2)
Application.EnableEvents = True
End Sub
Sub RenumberNonBlank(ws As Worksheet, _
keyCol As String, _
numCol As String, _
firstDataRow As Long)
Dim lastRow As Long
Dim r As Long
Dim seq As Long
lastRow = ws.Cells(ws.Rows.Count, keyCol).End(xlUp).Row
seq = 1
For r = firstDataRow To lastRow
With ws
If Trim(.Cells(r, keyCol).Value) <> "" Then
.Cells(r, numCol).Value = seq
seq = seq + 1
Else
.Cells(r, numCol).ClearContents
End If
End With
Next r
End Sub
3. Guarde e feche o editor do VBA. Agora, sempre que adicionar, editar ou limpar conteúdo na coluna B, a coluna A será imediatamente renumerada, refletindo a presença (ou ausência) de dados. A sequência ajusta-se automaticamente para cima ou para baixo à medida que adicionar ou remover entradas na coluna B.
Notas e Precauções:Esta macro deve ser colocada especificamente na janela de código da folha de cálculo pretendida (e não num módulo nem em ThisWorkbook) para responder às edições de células. Além disso, certifique-se de que as macros estão ativadas nas definições do Excel, caso contrário o código não funcionará. Se o seu «Intervalo de Dados» estiver localizado noutras colunas que não A e B, atualize as referências em Set chk = Intersect(Target, Me.Columns("B")) e Call RenumberNonBlank(Me, "B", "A", 2) em conformidade.
Resolução de problemas: Se a numeração não for atualizada, verifique se está a editar a folha de cálculo correta e se o código foi inserido na respetiva janela de código da folha. Confirme também que guardou o livro como um ficheiro com macros ativadas (.xlsm). Em caso de erros inesperados, certifique-se de que não alterou a estrutura da sua folha de cálculo — por exemplo, com células mescladas ou dados nas linhas de cabeçalho.
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos