Notifications
Clear all

Macro de entrada de dados.

7 Posts
1 Usuários
0 Reactions
1,871 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Prezados,

sempre gravo uma macro para cadastrar dados. Algo como um formulário simples.
Como sei muito pouco sobre VBA, gravo da seguinte maneira:
1º copio os dados da planilha de imput (os dados que eu quero cadastrar na minha base) e colo como valores em uma célula qualquer (pois os dados são fórmulas)
2º copio os valores colados e insiro na minha base como nova linha.

Minha pergunta é: como posso inserir as células copiadas já como valores? ou seja, sem precisar colar como valores em outro lugar.

Ademais, como faço para deixar isso automático de 5 em 5 min? ou seja, quero que a macro funcione automaticamente nesse intervalo de tempo.

Por último: tem como a macro rodar sem que a planilha seja aberta?

Segue uma planilha simples de exemplo sobre o que disse acima.

Abs.

 
Postado : 26/01/2012 6:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!!

Como não posso baixar seu anexo ..segue

Para sua 1º pergunta você poderia fazer algo assim...

ActiveSheet.Range("A:X").Select
Selection.PasteSpecial xlPasteValues

Teste para ver se funciona.

Quanto a segunda ..

sub SuaMacro()
application.ontime now + timevalue ("00:00:05"), "SuaPlanilha"
end sub

Veja se vai dar certo, aproposito se necessario faça uma adaptação!!

 
Postado : 26/01/2012 9:47 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Alexandre,

não consegui implementar suas dicas.
na primeira, montei assim:
Sub Registrar()
'
' Registrar Macro
'
' Atalho do teclado: Ctrl+r
'
Range("K2").Select
Selection.ClearContents
Range("A2:D2").Select
Selection.Copy
ActiveSheet.Range("A:D").Select
Selection.PasteSpecial xlPasteValues
Sheets("Plan1").Select
Range("A2").Select
End Sub

e deu erro aki Selection.PasteSpecial xlPasteValues
Além disso, creio que essa forma apenas colaria como valores. Eu queria uma rotina que inserisse as células copiadas já como valores.

No segundo tópico, quando vc diz "sua planilha"
eu substituo pelo o q?

 
Postado : 26/01/2012 11:40 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Se me permitem, uma opção

use
Sub Registrar()

Range("A2:D2").Select
Selection.Copy
Sheets("Plan2").Select
Range("A3").Select
Selection.Insert Shift:=xlDown
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Plan1").Select
Range("A2").Select

End Sub

 
Postado : 26/01/2012 12:22 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo,
Muito obrigado.

Era exatamente o que eu precisava.

fico no aguardo pra acertar a questão da automatização da macro com o tempo.

abs

 
Postado : 26/01/2012 12:39 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Desculpe, não havia lido o post completo.
Pessoalmente, não gosto muito dessa "automação" por tempo, mas Veja este post em ozgrid.com:

http://www.ozgrid.com/Excel/run-macro-on-time.htm

Anexo seu exemplo como poderá ficar

 
Postado : 26/01/2012 2:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo,

muito obrigado. Ajudou demais mesmo.

valeu xapa

abs

 
Postado : 29/01/2012 8:36 am