excel macro com critérios de coluna para copiar duas linhas em uma folha para outra

0

Eu preciso de uma macro que pesquise uma string em uma coluna; ao encontrar essa string, copia a linha na qual essa string é encontrada, bem como a linha acima.

Por exemplo:

Procure por "menino" na coluna 5; se encontrado na linha 6, copie a linha 6 e a linha 5; então procure pelo próximo "boy" na coluna 5.

Como posso fazer isso?

    
por Kisembo O Julius 05.09.2013 / 09:59

1 resposta

0

aqui está sua macro

Sub Findining()

    Dim Col As Range
    Dim fs As Worksheet
    Dim s As String
    Dim ws As Worksheet
    Dim r As Range

    Set fs = Sheets(ActiveSheet)
    Set Col = Application.InputBox("Select Column to Look Through", Type:=8)
    If Col.Columns.Count > 1 Then
      Do Until Col.Columns.Count = 1
        MsgBox "You can only select 1 column"
        Set Col = Application.InputBox("Select Column to Compare", Type:=8)
      Loop
    End If

    s = InputBox("Enter string to search for:", "Enter String")
    Set ws = Sheets(fs.Index + 1)
    c = Split(Col.Address, "$")(1)

    For i = 1 To fs.Range(c & Rows.Count).End(xlUp).Row
        Set r = fs.Range(c & i)
        If StrComp(r, s, vbTextCompare) = 0 Then
            fs.Rows(r.Row & ":" & r.Row).Copy
            ws.Activate
            ws.Rows(ws.Range(c & Rows.Count).End(xlUp).Row + 1 & ":" & ws.Range(c & Rows.Count).End(xlUp).Row + 1). _
                PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End If
        Set r = Nothing
        fs.Activate
    Next i

End Sub
    
por 05.09.2013 / 13:24