Inquiridor
Macro em Excel

Pergunta
-
Olá, preciso tirar uma dúvida sobre como gravar uma macro.
É o seguinte:
Estou com uma planilha com várias Guias e preciso criar uma macro para inserir uma linha e nesta linha inserir em cada coluna valores e fórmulas.
Acontece que já tentei fazer a macro, deu certo até certo ponto, pois as guias não obececem o nº de linhas, ou seja, numa guia vou executar a macro na linha "A67" cujas formlulas pegam valores da linha A66, só que na outra Guia a linha onde vou executar a macro é a A87 por exemplo.
Como eu poderia gravar a macro para que ela entenda a celula que estou colocando?A Macro:Sub DecimoTerceiro()
'
' DecimoTerceiro Macro
' Macro gravada em 18/10/2009 por Admin
'
'
Range("A66:G66").Select
Selection.Copy
Range("A67").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A67").Select
ActiveCell.FormulaR1C1 = "13º Prp"
Range("B67").Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=R[-2]C/12*R[-66]C[13]"
Range("G68").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-62]C:R[-1]C)"
Range("A67").Select
End Sub
obs: O range das celulas são as mesmas colunas porém linhas diferentes, como posso fazer uma macro onde possa utilizar para todas as guiasdomingo, 18 de outubro de 2009 16:39
Todas as Respostas
-
Olá Rosa você consegue disponibilizar o seu arquivo na WEB, para poder te ajudar melhor?
Abraços,
Baldini Fabio- Sugerido como Resposta Baldini domingo, 23 de maio de 2010 04:56
domingo, 23 de maio de 2010 04:56 -
Olá amigos,
Estou com um problema similar e preferi não fazer uma nova pergunta...
é o seguinte.. tenho uma macro(abaixo) que seleciona algumas células e envia a infomação por e-mail.
Até aí tudo bem, gostaria de saber se ao invés de usar um valor fixo como ActiveSheet.Range("E15:M35").Select, deixar que o usuario selecione os campos desejados.
Alguém sabe como fazer algo similar a isso?
Desde já agradeço o help!
Sub Envio_Email()
Sheets("4- PROGRAMAÇÃO").Activate
ActiveSheet.Range("E15:M35").Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Material teste" & vbTab & Time
.Item.To = "meu-mail"
.Item.Subject = "Teste e-mail excel"
.Item.Send
End With
End Subsexta-feira, 28 de maio de 2010 21:47 -
Olá Rosa para aplicar em todas as planilhas segue o código abaixo
Sub DecimoTerceiro()
For Each Plans In ThisWorkBooks.Sheets
Plans.Activate
Range("A66:G66").Copy
Range("A67").Paste
Range("A67").FormulaR1C1 = "13º Prp"
Range("B67").ClearContents
Range("B67").FormulaR1C1 = "=R[-2]C/12*R[-66]C[13]"
Range("G68").FormulaR1C1 = "=SUM(R[-62]C:R[-1]C)"
Range("A67").Select
Next
End Sub
Baldini Fabio- Sugerido como Resposta Baldini sábado, 29 de maio de 2010 05:36
sábado, 29 de maio de 2010 04:27 -
Ola Rosa como vai
Esta faltando algumas informações no seu VBA, sobre deixar fixo o "ActiveSheet.Range("E15:M35").Select" apenas seleciona o intervalo desejado e mais nada, é necessário que o usuário digite em algum lugar da sua planilha os dados como email, Assunto e Corpo, ou em um Userform.
Abraços,
Baldini Fabio- Sugerido como Resposta Baldini sábado, 29 de maio de 2010 05:36
sábado, 29 de maio de 2010 04:30 -
Eu faria da seguinte forma:
Range(Selection, Selection.End(xlToLeft)).Select 'Seleciona a partir da coluna A até onde tiver números em sequência na linha (qq linha)
Selection.Copy 'Copia a seleção
Selection.Offset(1, 0).Select 'Desce uma linha
Selection.Paste 'ColaEspero ter ajudado de alguma forma.
- Sugerido como Resposta Domingos Junqueira domingo, 6 de junho de 2010 09:01
domingo, 6 de junho de 2010 09:01