• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

milupax

Ajuda em capturar o valor de uma célula

6 mensagens neste tópico

Um bem haja para todos!  :D

Descobri hoje este forum enquanto procurava uma solução para um problema que talvez me possam ajudar pois infelizmente percebo muito pouco e se encontrasse solução facilitar-me-ía muito a vida.

Tenho aqui a seguinte macro que me serve no Excel para copiar um valor de uma célula A1 em série sucessiva pela coluna abaixo num registo histórico:

Sub Record_data()

'

' Record_data Macro

'

'

Application.ScreenUpdating = False

Sheets("Folha1").Select

Range("A1:A65536").Select

Selection.Copy

Range("A2").Select

ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _

IconFileName:=False

Application.ScreenUpdating = True

End Sub

Só que precisava de algo parecido com isto mas que fizesse em sentido contrário, isto é, em vez de colocar o novo valor na primeira célula, empurrando os anteriores para baixo como no código em cima, que me colocasse o novo valor na célula vazia seguinte deixando as células anteriores ocupadas pelos valores anteriores.  :D

Se alguém me puder ajudar fico imensamente grato.

Saudações a todos!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só que precisava de algo parecido com isto mas que fizesse em sentido contrário, isto é, em vez de colocar o novo valor na primeira célula, empurrando os anteriores para baixo como no código em cima, que me colocasse o novo valor na célula vazia seguinte deixando as células anteriores ocupadas pelos valores anteriores.  :D

Olá,

Podes explicar melhor isto ? Um exemplo dava jeito :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pelo feedback!

1) A célula A1 está ligada para fora do excel com um valor variável que está sempre a actualizar

2) Com este código, a macro quando é accionada copía de segundo a segundo o valor de A1 colocando em A2, o valor seguinte novamente em A2, empurrando o que estava em A2 para A3 e assim sucessiamente;

3) Aquilo que preciso é mais simples, é que copíe o valor para A2, depois para A3, depois para A4, e assim sucessivamente.

Saudações!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta fazeres ao contrario, ou seja, gravas os valores no ultimo número da letra A, é A35*** (trinta cinco mil e qualquer coisa) para A1. Quando ela estiver toda preenchia movi-a para a coluna B. Ou senão começa da última letra e último numero para o inicio da folha, quando estiver totalmente preenchia é só criares outra folha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Substitui o teu código por este e terás o que pretendes.

Application.ScreenUpdating = False
Sheets("Folha1").Select
Range("A1").Select
Selection.Copy

If (Range("A1").Offset(1, 0).Value = "") Then
    Range("A1").Offset(1, 0).Select
Else
    Range("A1").End(xlDown).Offset(1, 0).Select
End If
ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
Application.ScreenUpdating = True

cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Amigo MetalFatigue,

Funciona na perfeição!!! :cheesygrin:

Parte da célula A1 , procura a última célula cheia e pelo Offset (deslocamento) desce para a vazia de baixo.  :P

Obrigadíssimo! 

Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora