Notifications
Clear all

Macro p/ transferir uma linha inteira para outra guia

5 Posts
4 Usuários
0 Reactions
925 Visualizações
(@raffa-el)
Posts: 12
Active Member
Topic starter
 

Olá pessoal,

Procurei em diversos fóruns e não consegui achar uma fórmula que permita que eu transfira uma linha inteira para outra guia.

Por exemplo,

Na planilha "Base de fornecedores", caso o status do fornecedor seja inativo, então transferir a linha inteira para a guia "Fornecedores Inativos", e fazer isso com o resto da Base.

Me ajudem por favor

 
Postado : 25/06/2015 6:34 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Seria isso?

SubSub AleVBA_16376()
'Condirendo que os dados estão na coluna D
    Dim i As Range
    Application.ScreenUpdating = 0
        For Each i In Range("D1:D1000")
            If i.Value = "Inativo" Then
                i.Select
                ActiveCell.Rows("1:1").EntireRow.Select
                Selection.Copy
                Sheets("Fornecedores Inativos").Range("A65000").End(xlUp).Offset(1, 0).PasteSpecial
            End If
        Next i
    Application.ScreenUpdating = 1
End Sub

Att

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

 
Postado : 25/06/2015 12:44 pm
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Olá novamente!

Vou propor um código baseado na planilha que montei no post de fórmulas (http://www.planilhando.com.br/forum/viewtopic.php?f=20&t=16374).

Neste caso, você não vai usar a última coluna de apoio, portanto, apague ela e apague os fornecedores da planilha inativos e mantenha somente o cabeçalho.

Use o seguinte código:

Sub inativos()
    
    Dim cell As Excel.Range
'Laço de repetição para varrer a coluna onde laça o status Inativo e copiar e jogar para planilha Inativos
    For Each cell In Excel.Range("Tab_Fornecedores[Situação]")
        If cell.Value = "Inativo" Then
            cell.EntireRow.Copy
            Sheets("Inativos").Select
            Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Activate
           Selection.PasteSpecial Paste:=xlPasteValues
        End If
    Next cell
    
'Laço de repetição para apagar as linhas dos fornecedores inativos
    For Each cell In Excel.Range("Tab_Fornecedores[Situação]")
        If cell.Value = "Inativo" Then
            cell.EntireRow.Delete Shift:=xlUp
        End If
    Next cell
    
End Sub

Você pode associar esse código a um botão, ou se desejar alterar para um evento do tipo change ou outro da sua planilha.

Abraços!

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 25/06/2015 1:00 pm
Trindade
(@trindade)
Posts: 278
Reputable Member
 

Boa noite, Srs.

Essa mesma rotina tem a possibilidade de quando eu clicar na linha ela passar somente a linha clicada e não todas novamente ?

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 26/06/2015 10:13 pm
(@raffa-el)
Posts: 12
Active Member
Topic starter
 

Cara, pra esse mesmo caso, mas em fórmulas (como vc já tinha me ajudado),

Além da ponderação de fornecedores ativos ou inativos, eu abri uma outra guia para fornecedores ativos automotivos. Me baseei na condicional usada para o caso "Inativos", com uma coluna na planilha matriz com a fórmula "ContSe" e na guia "Automotivos" usei a mesma condicional "SEERRO" para puxar os valores, porém puxou tbm os automotivos inativos, para não puxá-los eu fiz: =SE(A6="Inativo";A7;SE(E6="Automotiva";CONT.SE($E$5:E6;"Automotiva");"")). Nessa fórmula quando já identifica o inativo ela pula para próxima linha, mas na planilha destino (Automotivos) aparece as linhas puladas.

É possível fazer uma fórmula com a qual não pule as linhas na planilha destino ??

Espero que eu tenha conseguido passar minha dificuldade depois dessa confusão rs

abraço

 
Postado : 01/07/2015 6:24 am