Notifications
Clear all

Macro para copiar linha com condição SE

8 Posts
2 Usuários
0 Reactions
3,442 Visualizações
(@daniel-fernandesss)
Posts: 16
Active Member
Topic starter
 

olá amigos.
após ver o forum, agora vou ser cliente daqui hehe, muito bom os topicos, eu olhava outro.. mais não tão bom! =)
então, meu problema é o seguinte, minha planilha é de cobrança de valores.. queria que quando eu escolhece a opção "Sim" ela recortasse a linha e jogasse na planilha 2.. assim tendo uma planilha de pessoas que Devem, e outra planilha de pessoas que ja Pagaram. entenderam? obg!
planilha segue abaixo!

http://www.4shared.com/file/xc-Vjb8d/cobranaPT.html

Obrigadãoaoaoao!

 
Postado : 30/11/2011 9:07 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia,

Veja se este código de exemplo pode ser adaptado à sua necessidade:

Sub CopiarSe()
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    
    'Ativa a Plan1
    Sheets("Plan1").Activate
    
    'Variáveis para controlar as quantidade de linhas de cada planilha
    i = 2
    j = 2
    k = 2
    
    'laço para percorrer as linhas não vazias da Plan1
    While Sheets("Plan1").Cells(i, "E").Value <> ""
        
        'Caso a célula da coluna E seja "SIM" copia para a Plan2
        If UCase(Sheets("Plan1").Cells(i, "E").Value) = "SIM" Then
            Sheets("Plan1").Range(Cells(i, "A"), Cells(i, "E")).Copy Sheets("Plan2").Cells(k, 1)
            k = k + 1
        Else
        
            'Caso a célula da coluna E seja "NÃO" copia para a Plan3
            Sheets("Plan1").Range(Cells(i, "A"), Cells(i, "E")).Copy Sheets("Plan3").Cells(j, 1)
            j = j + 1
        End If
        i = i + 1
    Wend
End Sub

No momento não tenho acesso ao site onde você disponibilizou a sua planilha.

Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/12/2011 5:46 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

daniel, no serviço não temos acesso ao 4shared, então não sei qual o layout do seu exemplo, mas acredito que se resolva com AutoFiltro, que tambem pode ser realizado sem macros, utilizando opção para Filtrar em outra Aba, mas tambem tem alguns exemplos com macros que filtram tanto para outra Aba como outro arquivo, se achar que é válido a ideia, de uma olhada nos tópicos abaixo :

viewtopic.php?f=10&t=2522&p=11076&hilit=filtro#p11076

viewtopic.php?f=10&t=2633&p=11574&hilit=filtro#p11574

viewtopic.php?f=10&t=2065&st=0&sk=t&sd=a

Se realizar Busca por Filtro encontrará varios outros exemplos

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/12/2011 5:47 am
(@daniel-fernandesss)
Posts: 16
Active Member
Topic starter
 

bom, obg pelas respostas pessoal, então.. a vba que me mandastes, vou tentar montar aqui agora pra ver se funciona pra oque eu desejo! tenho outro problema junto à esse! hehe
E queria que quando eu escrevesse na planilha "Só Pagou" algum valor, é porque o cliente pagou menos do que devia, ou seja, ele insira uma copia da linha atual, e no valor, a diferença entre o valor que ele deveria pagar, e o valor que pagou!
se não entenderem, me falem qual gerenciador de arquivos voces usam que eu irei postar!

Foi Pago? Data Cliente Valor P/C Falta Pagar
01/12/2011 Paulinho R$ 1.100,00 R$ 1.100,00
01/12/2011 Borges R$ 465,00 R$ 465,00
01/12/2011 Olavo R$ 378,00 R$ 378,00
01/12/2011 Gugu R$ 9.320,00 R$ 9.320,00

 
Postado : 01/12/2011 4:31 pm
(@daniel-fernandesss)
Posts: 16
Active Member
Topic starter
 

Bom dia,

Veja se este código de exemplo pode ser adaptado à sua necessidade:

Sub CopiarSe()
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    
    'Ativa a Plan1
    Sheets("Plan1").Activate
    
    'Variáveis para controlar as quantidade de linhas de cada planilha
    i = 2
    j = 2
    k = 2
    
    'laço para percorrer as linhas não vazias da Plan1
    While Sheets("Plan1").Cells(i, "E").Value <> ""
        
        'Caso a célula da coluna E seja "SIM" copia para a Plan2
        If UCase(Sheets("Plan1").Cells(i, "E").Value) = "SIM" Then
            Sheets("Plan1").Range(Cells(i, "A"), Cells(i, "E")).Copy Sheets("Plan2").Cells(k, 1)
            k = k + 1
        Else
        
            'Caso a célula da coluna E seja "NÃO" copia para a Plan3
            Sheets("Plan1").Range(Cells(i, "A"), Cells(i, "E")).Copy Sheets("Plan3").Cells(j, 1)
            j = j + 1
        End If
        i = i + 1
    Wend
End Sub

No momento não tenho acesso ao site onde você disponibilizou a sua planilha.

Abraço

quase deu certo hehe.. precisaria que ele RECORTASSE a linha e jogasse na outra planilha só de pagos entende? hehe, tentei aqui.. mais não deu muuito certo!
ele está copiando, eu queria que ele sumisse da tela de Cobrança.. se possivel me fala o gerenciador que eu possa postar para voce ver a planilha

 
Postado : 01/12/2011 4:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Fernandes, para anexar um exemplo diretamente no Forum, quando for postar uma resposta, role a tela para Baixo e encontrara a Opção "Adicionar um Anexo", depois Clique em "Selecionar Arquivo", e na tela que aparecer selecione seu modelo, de OK e depois clique no Botão "Adicionar Anexo".

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/12/2011 5:32 pm
(@daniel-fernandesss)
Posts: 16
Active Member
Topic starter
 

Fernandes, para anexar um exemplo diretamente no Forum, quando for postar uma resposta, role a tela para Baixo e encontrara a Opção "Adicionar um Anexo", depois Clique em "Selecionar Arquivo", e na tela que aparecer selecione seu modelo, de OK e depois clique no Botão "Adicionar Anexo".

[]s

Desculpe-me a minha ignorancia! nao tinha visto que voces postavam assim.. hehe

 
Postado : 01/12/2011 6:30 pm
(@daniel-fernandesss)
Posts: 16
Active Member
Topic starter
 

Up!

 
Postado : 03/12/2011 1:18 pm