Notifications
Clear all

Como executar uma macro através dos valores de uma célula

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

Pessoal tenho a seguinte dúvida:

Peguei esta macro na net e a adaptei para minha pasta de trabalho.
Ela copia os dados que estão no intervalo da Planilha PLAN1, D5:F5 e os cola na planilha
PLAN2 no mesmo intervalo (D5:F5).

Sub TransferirDados()
'
' Macro para Transferir Dados
'

Sheets("PLAN1").Select
Range("D5").Select
Range("D5:F5").Select
Selection.Copy
Sheets("PLAN2").Select
Range("D5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("D5").Select
End Sub

Porém eu gostaria que essa macro fosse executada automaticamente sempre que fosse
inserido na célula E5 da PLAN1 as palavras "PMV" ou "Câmera", e que os dados copiados para a
PLAN2 ficassem um embaixo do outro, tipo:

Primeiros dados em: D5:F5
Próximos dados em: D6:F6
Próximos dados em: D7:F7
.....
.....

Alguém ^^' ???..

 
Postado : 06/10/2010 6:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Amigoo tenta isso!..

' aqui é o evento change da plan1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Plan1.Range("E5").Value = "PMV" Then
'faz a sua macro que copiar colar
ElseIf Plan1.Range("E5").Value = "Câmera" Then
'faz a sua macro que copiar colar
Else
End If
End Sub

isso ai vai fazer executar a macro toda vez que o critério for digitado

Agora para fica um registro em baixo do outro vc precisa colocar o código abaixo na sua macro quando vc for colar.

Sheets("Plan2").Select
Range("D5").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste

'ele selecionar a D5 ( digamos que já tenha conteudo nela) vai até a ultima célula preenchida, desce +1 célula e cola.

Fuii!

 
Postado : 06/10/2010 4:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Fala Caio !!.. E aí tudo bem !!?..

Então mano.., ficaram algumas dúvidas, porque não soube direito o que fazer com os dados
que vc me passou !!.. aí vão elas:

1º Eu tenho que criar um módulo para a macro de copiar e colar e depois chamá-la com o
comando "Call TransferirDados" onde vc escreveu "'faz a sua macro que copiar colar", ou já digito o código diretamente lá !!??..

2º Como ficaria o código da macro copiar e colar adicionando as linhas de código que vc me passou !!??.. assim !!??

Sub TransferirDados()
'
' Macro para Transferir Dados
'

Sheets("PLAN1").Select
Range("D5").Select
Range("D5:F5").Select
Selection.Copy
Sheets("PLAN2").Select
Range("D5").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("D5").Select
End Sub

Porque eu fiz assim e não deu certo cara !!..

 
Postado : 07/10/2010 12:42 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ninguém por ae pra solucionar essa dúvida galera !!?? ^^'

 
Postado : 20/10/2010 7:45 am