Notifications
Clear all

Ajuda para criar macro VBA

10 Posts
2 Usuários
0 Reactions
2,112 Visualizações
(@daniel-fernandesss)
Posts: 16
Eminent Member
Topic starter
 

amigos, saudações,
preciso de ajuda para criar um vba, para quando eu escrever "." na coluna "A"
a macro apague as celulas da coluna B C D E, somente os dados, que não exclua a linha
entendem? hehe obrigado por me ajudarem!

 
Postado : 08/12/2011 7:47 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

use:

    Private Sub Worksheet_Change(ByVal Target As Range)
    
        If Target.Column = 1 And Target.Text = "." Then
        
            Range("B" & Target.Row & ":" & "E" & Target.Row).ClearContents
        
        End If
        
    End Sub

[]s

 
Postado : 08/12/2011 11:06 pm
(@daniel-fernandesss)
Posts: 16
Eminent Member
Topic starter
 

use:

    Private Sub Worksheet_Change(ByVal Target As Range)
    
        If Target.Column = 1 And Target.Text = "." Then
        
            Range("B" & Target.Row & ":" & "E" & Target.Row).ClearContents
        
        End If
        
    End Sub

[]s

isso mesmo! é isso mesmo! haha
so queria que não apagasse a coluna "B", lá eu tenho uma formula hehe =D
podes me mostrar como eu faço para excluir a coluna A C D E? (sim, quero que apague a coluna "A", a que eu vou inserir o ponto)

 
Postado : 09/12/2011 8:22 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tenta assim:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 And Target.Text = "." Then

Range("C" & Target.Row & ":" & "E" & Target.Row).ClearContents
Range("A" & Target.Row).ClearContents

End If

End Sub

Qualquer dúvida retorne.

 
Postado : 09/12/2011 9:42 am
(@daniel-fernandesss)
Posts: 16
Eminent Member
Topic starter
 

nossa amigo, foi de graaande ajuda!! muito obrigado!
deu certissimo!
Deus te Abençoe!

 
Postado : 09/12/2011 11:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

De nada, mas os méritos não são meus, e sim do Mauro Coutinho, que postou o Código. Só alterei o mesmo (nem sei se logicamente correto...rsrs).

Mas de qualquer forma se precisar tamu ai... ;)

 
Postado : 09/12/2011 12:24 pm
(@daniel-fernandesss)
Posts: 16
Eminent Member
Topic starter
 

so faltou uma coisinha, como faço para quando eu der enter, a celula ir para o lado? eu sei que isso aqui eh pra ir pro lado a celula
Application.MoveAfterReturnDirection = xlRight

so nao sei inserir..

 
Postado : 09/12/2011 6:41 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

De nada, mas os méritos não são meus, e sim do Mauro Coutinho, que postou o Código. Só alterei o mesmo (nem sei se logicamente correto...rsrs).

Mas de qualquer forma se precisar tamu ai... ;)

Eastwood, grato pela consideração, mas prefiro deixar os meritos ao fator globalização, é a palavra que mais ouço ultimamente, ou seja são de todos que se utilizam da internet para comparilhar, aprender, ajudar, etc.

A alteração que sugeriu é funcional, mas podemos deixa-la em um instruçãosómente, ficando assim :

Private Sub Worksheet_Change(ByVal Target As Range)
       
    If Target.Column = 1 And Target.Text = "." Then
    
        Range("A" & Target.Row & "," & "C" & Target.Row & ":" & "E" & Target.Row).ClearContents
    
    End If
End Sub

[]s

 
Postado : 09/12/2011 8:27 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

so faltou uma coisinha, como faço para quando eu der enter, a celula ir para o lado? eu sei que isso aqui eh pra ir pro lado a celula
Application.MoveAfterReturnDirection = xlRight

so nao sei inserir..

Daniel, nesta questão, prevendo que mais adiante resolva limitar o movimento do cursor até uma determinada coluna e depois retornar a coluna A, segue a instrução para este tipo de ação : O movimento vai p/ Direita até a Col. "E" depois retorna para Col. "A"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static LastRng As Range
    
    'Definimos as colunas a percorrer
    Set sCols = Intersect(Target, Columns("A:F"))
    
    If sCols Is Nothing Then
        Application.MoveAfterReturnDirection = xlDown 'Reconfiguramos a opção Para Baixo
        
    Else
    
        Application.MoveAfterReturnDirection = xlToRight 'Se verdadeiro move o cursor p direita
    
        If Not LastRng Is Nothing Then
            
            'Qunado chegar na Coluna E volta para Coluna A
            If Target.Column = 6 And LastRng.Column = 5 And Target.Row = LastRng.Row Then Target.Offset(1, -5).Activate
            End If
            
        End If
        
    Set LastRng = Target
    
End Sub

Agora, se não for este o caso, podemos utilizar os Eventos abaixo, lembrando que o movimento do cursor será sempre para a direita ao ativar a aba :
Ativamos o Movimento para a Direita ao Ativarmos a aba:

Private Sub Worksheet_Activate()
    Application.MoveAfterReturnDirection = xlToRight
End Sub

Desativamos o Movimento para a Direita e devolvemos para Baixo ao desativarmos a aba, ou seja selecionarmos outra aba:

Private Sub Worksheet_Deactivate()
    Application.MoveAfterReturnDirection = xlDown
End Sub

Faça os testes e qualquer duvida, retorne.

[]s

 
Postado : 09/12/2011 8:36 pm
(@daniel-fernandesss)
Posts: 16
Eminent Member
Topic starter
 

amigo, graaande obrigado! é isso mesmo que eu queria, pra falar a verdade isso é mais do que eu queria!
MUITISSIMO OBRIGADO MESMO!
Deus lhe Abençoe!

 
Postado : 10/12/2011 6:00 pm