Notifications
Clear all

Localizar copiar e colar

4 Posts
2 Usuários
0 Reactions
796 Visualizações
(@lecustodio)
Posts: 14
Active Member
Topic starter
 

Boa tarde galera,

Preciso de uma ajuda.
Tenho uma planilha que necessito que seja buscado um determinado codigo, e copie os codigos e mais mais algumas informações nas celulas ao lado e cole em outra sheet.

PROBLEMAS
* Não sei como buscar a ultima linha digitada pois existe um subtotal dos itens, criando assim uma area selecionável para busca
* A Lista suspensa da planilha RDO-01 está considerando as linhas em brancas, a idea de não limitar a seleção, é que há possibilidade, de ter mais itens no orçamento
* Ao localizar uma celula com o valor buscado, copiar (algumas) celulas ao lado ex. ao localizar o codigo 01, copiar para pasta 01. o nome do fornecedor entre outros.

Acho que não consegui explicar direitinho, mas talvez com o anexo, fique mais claro, pois consigo copiar o codigo !

Valeu !

 
Postado : 25/04/2013 9:36 am
(@lecustodio)
Posts: 14
Active Member
Topic starter
 

Galera é o seguinte, consegui pegar as informações das colunas ao lado, porem não consigo atualizar o numero referencia da linha dentro do loop. Segue o código:


Sub copia_cola()

'************** * *  *  *   *   *    *     *
'*                 PROBLEMAS
'* Não sei como buscar a ultima linha digitada pois existe um subtotal dos itens, criando assim uma area selecionável para busca
'* A Lista suspensa da planilha RDO-01 está considerando as linhas em brancas, a idea de não limitar a seleção, é que há possibilidade,
' de ter mais itens no orçamento
'* Ao localizar uma celula com o valor buscado, copiar (algumas) celulas ao lado ex. ao localizar o codigo 01, copiar para pasta 01. o nome do fornecedor entre outros
'*
'*************** * *  *  *   *   *    *     *



Dim LINHA, COLUNA, linhaCl As Integer
Dim lResult, cResult As Long

LINHA = 11
COLUNA = 2
linhaCl = 10


busca = ThisWorkbook.Sheets("01.").Cells(LINHA, 9) 'valor a ser procurado
busca2 = Right(busca, 5) 'Caso tenha mais de 5 caracteres

With Worksheets("RDO-01").Range("B6:B500") 'aqui não teria precisão da quantidade de linhas, pois o usuário poderia inserir linhas
    Set c = .Find(busca2, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        resultado = Right(c, 5)
        cResult = c.Column
        lResult = c.Row
        Do
            ThisWorkbook.Sheets("01.").Cells(linhaCl, 1) = resultado ' atribui o valor buscado na planilha "01."
            ThisWorkbook.Sheets("01.").Cells(linhaCl, 2) = ThisWorkbook.Sheets("RDO-01").Cells(lResult, cResult + 4)
            Set c = .FindNext(c)
            linhaCl = linhaCl + 1
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

End Sub


Abçs

 
Postado : 25/04/2013 10:31 am
(@lecustodio)
Posts: 14
Active Member
Topic starter
 

Notei que o numero da linha pesquisada pela find não é na ordem, teria algum filtro para a pesquisa seguir uma ordem, tipo, inicia pela linha 6 e termina na linha 500 por excemplo ??

inseri uma msgBox para confirmar conforme abaixo:

...
            ThisWorkbook.Sheets("01.").Cells(linhaRl, 4) = ThisWorkbook.Sheets("RDO-01").Cells(lResult, cResult + 5)
            MsgBox "Numero da linha é: " & lResult
            Set c = .FindNext(c)
....
 
Postado : 25/04/2013 11:02 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não tenho como baixar o arquivo, mas não entendi direit sua rotina, na primeira você tem a Declaração linhaCl, depois definiu uma outra Variavel LINHA = 11 mas utiliza a Variavel linhaC1 na rotina, talvez com o seu arquivo eu identificaria de onde está vindo e carregada esta variavel.

Quanto a quetão de definir o inicio, de um olhada no link abaixo :
http://www.ozgrid.com/VBA/find-method.htm

Nesta adaptação é iniciado a Localização a partir de A6 :

Sub Find_Bold_Cat()
    Dim lCount As Long
    Dim rFoundCell As Range
    
    Set rFoundCell = Range("A6")

        For lCount = 2 To WorksheetFunction.CountIf(Columns(1), "Cat")

            Set rFoundCell = Columns(1).Find(What:="Cat", After:=rFoundCell, _
                LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, MatchCase:=False)

             With rFoundCell

                 .AddComment Text:="Cat lives here"

             End With

        Next lCount

End Sub

[]s

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

 
Postado : 25/04/2013 11:20 am