Jump to content

Recommended Posts

Posted

Bom dia!

Worksheets("Folheto_Imprimir").Activate

For linha = 1 To 5000

    If Cells(linha, 1) <> "" Then

        yy = yy + 1

       

  End If

 

Next linha

End If

valor = Cells(yy, 1) + valor

Cells(yy, 1) = valor

Tenho este código

Tenho este código que me verifica quais as células preenchidas e escreve um valor na próxima célula vazia.

Até aqui tudo bem. Mas eu preciso que para além disso a macro me leia o valor da última célula preenchida e para somar outro valor definido.

Não estou a conseguir isto escreve sempre o mesmo valor.

Desde já agradeço a ajuda. Obrigado!

Posted
    Dim TotalLinhas As Long
    'Verifica quantas linhas tem a coluna para dar tanto para o 2007 como anteriores
    'substitui A:A pela coluna que te interessa
    TotalLinhas = Range("A:A").Count

    'Vai buscar o valor da ultima celula
    Dim valorUltimaCelula As Variant 'Ou outro se souberes que tipo sao os valores
    Range("A" + CStr(TotalLinhas)).End(xlUp).Select

    'Coloca o valor por baixo da ultima celula
    valorUltimaCelula = ActiveCell.Value
    ActiveCell.Offset(1, 0).Value = valor

   

Esta forma é melhor do que a que tens a percorrer todas as celulas.

Básicamente Selecciona a ultima celula da coluna e vai buscar a 1ª celula para cima que se encontra preenchida. Depois vai buscar o seu valor e por fim desloca-se para baixo de forma a colocar o valor que pretendes.

cumprimentos

  • 2 weeks later...
Posted

Excelente código...

Esta é uma daquelas soluções a que chamo "a solução inteligente".

Faço macros por curiosidade e para ajudar em alguns ficheiros no âmbito profissional e, por isso mesmo,  não conheço todos os atributos das fórmulas..

Fazia isto com 2 ciclos for...

Parabéns e obrigado.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.