Notifications
Clear all

MACRO PARA COPIAR O VALOR DA COLUNA

12 Posts
2 Usuários
0 Reactions
1,395 Visualizações
(@marciobin)
Posts: 0
New Member
Topic starter
 

Senhores ,
boa tarde ,
mais uma vez aqui para pedir ajuda .

1- Utilizo duas colunas que os valores sao iguais .

ex: coLuna B , É O VALOR PROGRAMADO , E A COLUNA C É O VALOR REAL .

precisava de uma macro que faria o seguinte , ao digitar na coluna B , repetisse na coluna C , mas porém com o auto reverse da mesma , se eu apagar o valor da coluna b, o valor da coluna c, apagasse tambem .

PARA MELHOR ENTENDIMENTO , COLOQUEI COMENTARIO NO TITULO DA CÉLULA

segue exemplo :

 
Postado : 25/07/2015 10:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Marcio, é só utilizar a mesma rotina que te passei neste tópico : viewtopic.php?f=10&t=16688 - é só fazer os ajustes dos ranges e colunas:

If Intersect(Target, Range("B3:B14")) Is Nothing Then Exit Sub

If Target <> "" Then
Cells(Target.Row, 3).Value = Target.value
Else
Cells(Target.Row, 3).Value = ""

Se a dica foi útil, clique na mãozinha agradecendo.

[]s

 
Postado : 25/07/2015 1:15 pm
(@marciobin)
Posts: 0
New Member
Topic starter
 

Boa noite,

Mauro , isso mesmo , desse modelo , mas porém não to conseguindo fazer isso instataneo , pra macro rodar , eu to tendo de clicar em cima da celula da coluna C
, mas é isso ai mesmo , tirando isso td , bem .

pra vcss é café pequeno isso ai eu creio .

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("B3:B14")) Is Nothing Then Exit Sub

If Target <> "" Then
Cells(Target.Row, 3).Value = Target.Value
Else
Cells(Target.Row, 3).Value = ""
End If
End Sub

 
Postado : 25/07/2015 5:08 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

marcio, é que você está utilizando as instruções no Evento SelectionChange, onde as instruções executam sempre que uma celula é Selecionada, para o que pretende tem de utilizar o Evento Change, altere o evento para :

Private Sub Worksheet_Change(ByVal Target As Range)

[]s

 
Postado : 26/07/2015 9:04 am
(@marciobin)
Posts: 0
New Member
Topic starter
 

bom dia ,
Mauro , deu certo agora , tudo ok , exatamente isso .

OBS: JA ESTOU ATE COM VERGONHA , POIS ERA A ULTIMA COISA QUE FALTAVA PRA TERMINAR O PROJETO , MAS PORÉM AGORA DEPOIS DE TUDO PRONTO , ESTA MACRO ESTA ENTRANDO EM CONFLITO COM A MACRO DE ADICONAR A LINHA . TA DANDO ERRO 13 . E A MACRO DA LINHA ESTA APAGANDO A FORMULA .

TERIA COMO DA UMA OLHADA?
SEGUE EXEMPLO .

 
Postado : 27/07/2015 4:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

marcio, primeiro, não escreva mais em letras maiusculas, segundo não tem do que se envergonhar e terceiro, lembre-se de clicar na mãozinha agradecendo aqueles que dedicam parte de seu tempo para ajudar.

Assim que possivel dou uma olhada em seu arquivo.

[]s

 
Postado : 27/07/2015 5:31 am
(@marciobin)
Posts: 0
New Member
Topic starter
 

Bom dia ,
Mauro , td, bem , a questao de eu ter escrevido em caixa alta , eu tenho de mim educar , pois acostumei tanto que a hora que vejo ja foi , pode te observar que começo em caixa baixa , mais dai a hora que vejo coloco caixa alta .

E a questao da maozinha , fiquei em duvida , pois se eu clicar na maozinha , podem finalizar .
mais vou fazer o possivel , para ta corrigindo , pois eu sei o quanto é gratificante reconhecer a ajuda dos amigos .

DUVIDA: depois do topico fechado nao tem como mais fazer perguntas ???

 
Postado : 27/07/2015 6:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

marcio, a "mãozinha" que está ao lado do botão "Citar" é somente para expressar o agradecimento por ajuda, mesmo que ainda não tenha solucionado o tópico, e qualquer tópico setado como Resolvido e estiver Trancado, pode ser solicitado a sua reabertura pelo autor do Tópico por mensagem PVT a qualquer moderador do forum.
Você colocou este tópico como "Resolvido" pois deve ter clicado na opção que tem um "V" em verde com a mensagem "aceite esta resposta", isto torna o tópico como Resolvido indicando que a resposta que lhe foi dada solucionou a questão, então para agradecer a qualquer ajuda mesmo sem estar solucionado é clicar na mãozinha.

 
Postado : 27/07/2015 6:56 am
(@marciobin)
Posts: 0
New Member
Topic starter
 

Td bem ,

depois se tiver um tempo se puder mim ajudar nessaquestao que expressei fico , grato .

 
Postado : 27/07/2015 7:06 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Marciobin

A título de esclarecimento:

A mãozinha só serve para agradecer e não tranca o tópico.
Mesmo em tópicos de outros usuários, quando você encontrar uma resposta que foi útil para você, deve clicar na mãozinha para incentivar os colaboradores a continuarem ajudando, afinal, fazem isso de forma gratuita.

Quanto ao V (vezinho Verde), faça testes antes de clicar no vezinho, pois quando clicar, a moderação irá trancar o tópico.
Se por acaso, mesmo assim for necessário reabrir o tópico, basta enviar uma mensagem privada para um dos moderadores.

[]s

 
Postado : 27/07/2015 7:08 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

marcio, como as alterações na rotina serão simples não vou anexar o modelo novamente, é só acrescentar uma instrução, mas vou colocar as rotinas já com a alteração, procure acompanhar e faça conforme indicado abaixo :

Acrescentei somente a instrução - Application.EnableEvents, ela deve ser utilizado com cautela, pois a mesma desativa eventos ou impede a continuação de outras rotinas, ela é do tipo Boolean ou seja True / False.

1º ) Na aba JAN, troque por esta

'MACRO PARA COPIAR COLUNA , LEGAL
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("f8:f10000")) Is Nothing Then Exit Sub
        
'Impede que apos alterar a celula faça um loop
Application.EnableEvents = False
    
    If Target <> "" Then
        Cells(Target.Row, 7).Value = Target.Value
    Else
        Cells(Target.Row, 7).Value = ""
    End If
    
Application.EnableEvents = True

End Sub

2º ) Formulário INSERIR_LINHA
Botão "SIM" - troque por esta:

Private Sub inserirlinha_Click()
    Dim sLinAtiva  As Long
    Dim sRowOrigem, sRowDestino As Long

    'Selecione a linha antes de executar
    ActiveSheet.Unprotect
    
    'Armazena a linha selecionada
    sLinAtiva = Selection.Row
    
    'Verifica se estamos na linha 6 que é a primeira apos os rotulos
    'Define as variaveis de acordo com a linha selecionada
    If sLinAtiva = 7 Then
        sRowOrigem = 1
        sRowDestino = 0
    Else
        sRowOrigem = -1
        sRowDestino = 0
    End If

    Application.EnableEvents = False

        With Selection.EntireRow
            .Insert
            Selection.Offset(sRowOrigem, 5).Copy Destination:=Selection.Offset(sRowDestino, 5)
             ' Selection.Offset(sRowOrigem, 5).Copy Destination:=Selection.Offset(sRowDestino, 8)
               'Selection.Offset(sRowOrigem, 3).Copy Destination:=Selection.Offset(sRowDestino, 5)
               'Se for a linha 6 copiamos e colamos o formato
                If sLinAtiva = 7 Then
                    'Selection.Offset(1, 0).Resize(RowSize:=1, ColumnSize:=1).Copy
                   ' Selection.PasteSpecial xlPasteFormats
                    Application.CutCopyMode = False
                End If
        
        End With

    Unload Me
    
    ActiveSheet.Protect
    
    Application.EnableEvents = True
    
End Sub

3º ) Formulário confirmacaodeexclusaodelinhas
Botão "Confirmar Exclusão" - troque por esta:

Private Sub OK_Click()
    ActiveSheet.Unprotect
    
    If senha.Text = "" Then
        MsgBox "Digite Senha Correta Ou Cancele Operação", vbInformation, "Deus é Fiel !!!"
    ElseIf senha.Text = "123" Then
    
        MsgBox "Operação Realizada Com Sucesso !!!", vbInformation, "Planejamento Financeiro Mensal - Deus é Fiel !!! "
    
        Application.EnableEvents = False
        Selection.EntireRow.Delete
    
    'ocultar menus
    
    
        Unload Me
    ElseIf senha.Text <> "pfm2014" Then
        MsgBox "Senha Incorreta", vbInformation, "Deus é Fiel !!!"
        senha = ""
    
        Me.senha.SetFocus
    
    End If

    ActiveSheet.Protect
    
    Application.EnableEvents = True

End Sub

Faça os testes e veja se é isto.

[]s

 
Postado : 27/07/2015 12:22 pm
(@marciobin)
Posts: 0
New Member
Topic starter
 

Muito obrigado ,

exatamente isto , muito bom . que Deus possa conceder mais e mais sabedoria .

boa tarde .
obrigado !

 
Postado : 27/07/2015 12:50 pm