Notifications
Clear all

Criar macro para colunas

15 Posts
3 Usuários
0 Reactions
1,948 Visualizações
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Eu tenho Plan1 e Plan2

Na plan1 tenho a coluna A3 e plan2 A3

preciso que quando um valor for aplicado a ambas

Ex: se eu aplicar uma valor a Plan2 na coluna A, que a plan1 na coluna A, reconheça

 
Postado : 29/06/2014 8:29 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!
:? :? :?
Seja mais claro, dê exemplos!!

Att

 
Postado : 29/06/2014 8:37 am
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Bom dia!!
:? :? :?
Seja mais claro, dê exemplos!!

Att

Se eu digitar uma valo na Plan1 na coluna e linha A1 que esse mesmo valor seja copiado para Plan1 na coluna e linha A1

e assim Vice-versa

e se possível uma macro automatica

desde ja agradeço...

 
Postado : 29/06/2014 8:43 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Essa rotina relação com sua dúvida, tente aproveita-la, faz o que deseja, mas não foi feito todos os testes.

Sub TenteAdaptar()


    Dim currCell, pasteCell As Range
    
    Set currCell = ActiveCell
    
    'MsgBox currCell.Address
    
    If currCell.Value = Sheet2.Cells(currCell.Row, currCell.Column) Then
        Sheet2.Cells(currCell.Row, currCell.Column + 1).Value = "2"
        
    Else
        currCell.Copy
        Sheet2.Activate
        
        Sheet2.Cells(currCell.Row, currCell.Column).PasteSpecial (xlPasteAll)
        'Sheet2.Cells(currCell.Row, currCell.Column + 1).Value = "1"
        
    End If
    Application.CutCopyMode = False
End Sub

Att

 
Postado : 29/06/2014 8:58 am
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

ErrO: If currCell.Value = Sheet2.Cells(currCell.Row, currCell.Column) Then

 
Postado : 29/06/2014 9:19 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Mude o nome Sheet para Plan

Ficando assim.

If currCell.Value = Plan2.Cells(currCell.Row, currCell.Column) Then

Att

 
Postado : 29/06/2014 9:22 am
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Bom dia!!

Mude o nome Sheet para Plan

Ficando assim.

If currCell.Value = Plan2.Cells(currCell.Row, currCell.Column) Then

Att

Pesquisando aqui consegui montar esse código, só que não sei como finalizar

Private Sub Worksheet_Change(ByVal Target As Range)


Sheets("sheet1").Select
Range("C1:C70").Select
Selection.Copy
Sheets("sheet2").Select
ActiveSheet.Range("C1:C70").Select


Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub

preciso que copy do sheet2 para o sheet1

se tiver outro código agradeço

 
Postado : 29/06/2014 1:16 pm
(@edcronos)
Posts: 1006
Noble Member
 

ola,

eu tinha pensado nessa possibilidade ,
mas como o alexandre respondeu eu acabei descartando

Mas tem que ser a coluna toda?
com event Change vai deixar a planilha bem pesada

Até

 
Postado : 29/06/2014 1:25 pm
(@edcronos)
Posts: 1006
Noble Member
 

Bem por range

mas é fácil mudar

Att

 
Postado : 29/06/2014 1:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Faça os teste com a opção dada pelo Edcrono, caso contrário volte a posta.

Obs: Em minha 1º postagem eu pedi detalhes e na sua postagem você não disse que precisava de forma automática!

Eu tenho Plan1 e Plan2

Na plan1 tenho a coluna A3 e plan2 A3

preciso que quando um valor for aplicado a ambas

Ex: se eu aplicar uma valor a Plan2 na coluna A, que a plan1 na coluna A, reconheça

Att

 
Postado : 29/06/2014 3:20 pm
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Bem por range

mas é fácil mudar

Att

Tentando formatar o codigo aki pra modifica em ambas Plan1 e plan2

Ex: se eu alterar o plan1 modifica na plan2 e se modificar na plan2 modifica plan1

no seu exemplo só ta mudando da plan1 para plan2

mas ta perfeito vou ficar tentando aki...

 
Postado : 29/06/2014 5:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Você tentou com o arquivo do Edcronos??

Att

 
Postado : 29/06/2014 5:32 pm
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Tentei, só que, só alterar da plan1 para plan2

 
Postado : 29/06/2014 5:41 pm
(@victorsam)
Posts: 110
Estimable Member
Topic starter
 

Deu Certo!

valew obg, faltava um detalhe

Dim rando1
 
Postado : 29/06/2014 5:51 pm
(@edcronos)
Posts: 1006
Noble Member
 

Desculpa,
não me atentei para esse fator
não sou muito preocupado em declarar variáveis de uso simples

uso muitas variáveis em minha planilha, uma grande parte declarada como global
não vi muita diferença de velocidade entre declarar e não declarar variáveis

e a não ser em projetos grandes e cheias de nomes de variáveis grandes e para uso especifico acho que faça sentido.

em loops grandes vi sim grande diferenças de performance
e nesse ponto até o tamanho da variável faz diferença AnB no lugar de Ana_Banana

Aí declarar todas as variáveis antes de entrar no loop
Long no lugar de byte e de intenge para variáveis simples
O vba não divide endereço de memoria com varias variáveis
a não ser para ARRAY
Se a quantidade de valores forem grandes, armazenar os dados em uma array trás enormes ganhos de performance
Com array trabalhar com os dados dá mais trabalho,
mas pelo fato do vba ter acesso direto aos dados na memoria entre outros fatores pode ficar 30X "VEZES" mais rápido

o pessoal fala que declarar variaveis evita problemas de conflitos e facilita administrar mais facilmente

Eu tenho péssima memoria cada vez que vou escrever uma macro ou formula tenho que ficar procurando como se escreve os comandos "por isso minhas macros são simples", e praticamente todas são a base de variáveis
e apesar disso ainda não tive problemas com elas

bem, para simplificar...
se não for para uso em loops grandes, macros complexas ou uso global para troca de valores entre macros
nunca declaro as variáveis " bem, as vezes sim, quando estou com preguiça de escrever o resto da macro :P "

E por isso te passei esse trabalho :D

Até.

 
Postado : 30/06/2014 2:10 am