quinta-feira, 4 de dezembro de 2014

VBA - última linha não vazia [Todas as versões]


Entre as versões 2003 e 2007, o número de linhas que pode atingirexcel evoluiu consideravelmente. 

Os códigos VBA: 

- versões < 2007 :
Dim DernLigne As Long 
Ultimalinha = Range("A65536").End(xlUp).Row

- a partir de 2007 :
Dim DernLigne As Long 
Ultimalinha = Range("A1048576").End(xlUp).Row

Impossível portabilizar seu classificador de uma versão para outra. 
Em todos os casos, convém, a partir de agora, escrever : 
[todas as versões] 
Dim Ultimalinha As Long 
Ultimalinha = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row

ou : 
Dim Ultimalinha As Long 
Ultimalinha = Range("A" & Rows.Count).End(xlUp).Row

Você se confrontará com o mesmo problema no que concerne as colunas... Neste caso, você poderá utilizar este código (dado aqui à título de exemplo, existem outros) : 
Dim Ultimalinha As Integer 
Ultimacoluna = Cells(1, Cells.Columns.Count).End(xlToLeft).Column


Os códigos informados, concernem a ultima linha não vazia da coluna A (Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row , Range("A" & Rows.Count).End(xlUp).Row) e a ultima coluna cuja primeira linha é não vazia (Cells(1, Cells.Columns.Count).End(xlToLeft).Column). Você pode, é claro, adaptá-los modificando o elemento identificado em negrito. 

Tradução feita por Ana Spadarivia kioskea.
Anterior
Proxima

Postador

0 comentários:

Os comentários serão moderados antes de publicar! respondo todos, obrigado por comentar.