locked
Como copiar celulas abaixo de um valor pré definido até o proximo valor. RRS feed

  • Pergunta

  • Boa tarde pessoal.

    Preciso de uma formula para copiar tudo que estiver logo abaixo de um valor até o proximo valor igual.

    O caso é que eu preciso calcular quanto cada cobrador tem agendado para os proximos dias, porem o relatorio que tiro atraves de um sistema da empresa que trabalho sai da seguinte forma:

     

      a b c d
    1 Cobrador: Amanda      
    2 »»»»Status: aguardando pagamento      
    3 contrato parcela valor vencimento
    4 7926  18 a 18 740,09  22/02/2011
    5 8447  11 a 11 275,19  22/02/2011
    6 8843  21 a 22 596,25  23/02/2011
    7 6386  42 a 42 177,09  22/02/2011
    8 7549  24 a 24 199,43  23/02/2011
    9 8957  6 a 6 187,53  22/02/2011
    10 8867  7 a 7 353,98  22/02/2011
    11 8174  15 a 15 260,41  24/02/2011
    12 6835  33 a 35 518,27  23/02/2011
    13 8020  15 a 17 993,89  22/02/2011
    14 Cobrador: Amaury      
    15 »»»»Status: aguardando pagamento      
    16 contrato parcela valor vencimento
    17 8457  3 a 3 382,40  22/02/2011
    18 8743  28 a 28 172,07  22/02/2011
    19 6186  2 a 2 191,81  23/02/2011
    20 7649  31 a 31 176,19  22/02/2011
    21 8057  34 a 34 193,99  22/02/2011
    22 8167  6 a 6 197,85  22/02/2011

     

    O QUE PRECISO: Uma formula onde o excel copie AUTMATICAMENTE as celular abaixo de "cobrador: Amanda" até atingir o campo "cobrador: Amaury'. A quantidade de linhas que vem abaixo dos cobradores podem variar muito, sendo que o relatorio tem aproximadamente uns 80 cobradores, o que torna impossivel fazer manualmente.

    resumindo: Preciso vincular automaticamente o numero do contrato ao cobrador, porém ambos estao na mesma colula e podem variar de celula a cada novo relatorio tirado.

    COMO PENSEI EM FAZER: Em outra planilha, crio um banco de dados, onde vou colocar o nome "cobrador: Fulano de tal" e gostaria que automaticamente o excel copiasse somente os contratos que são dakele cobrador. para entao eu poder entrar com as outras formulas que ja sao de costume.

    se alguem puder me ajudar, mesmo que seja com uma forma diferente para fazer esse vinculo de contrato+cobrador, ficarei eternamente agradecido.

     

    Obrigado.

     

    terça-feira, 15 de março de 2011 19:29

Respostas

  • Ok, ja foi resolvido com a formula:

     

    =SE(ESQUERDA(AP8;12)="»»Operador: ";EXT.TEXTO(AP8;1;150);SE(AR8="TOTAL PERÍODO:";" ";AU7))

     

    Novamente muito obrigado pela ajuda.

    • Marcado como Resposta Felixx_sp quinta-feira, 31 de março de 2011 18:33
    quinta-feira, 31 de março de 2011 18:33

Todas as Respostas

  • Felix,

    Este rellatorio que foi gerado, pode facilmente gerar este calculo automaticamente.

    mas, se nao tiver esta possibilidade,

    basta uma a replicar o nome do colaborador ao lado dos valores e usar a função SOMASES.

    Ou entao usa esta sub que eu criei:

    Sub somar()
    Dim LastRow As Integer
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Dim soma As Double
    soma = 0
    Dim i As Integer
    i = 1
    Dim nome As String
    For n = 1 To LastRow
      If Left(Cells(n, 2), 8) = "Cobrador" Then
      nome = Cells(n, 2)
        n = n + 3
        Do While Left(Cells(n, 2), 8) <> "Cobrador" And n <= LastRow
          soma = soma + CDbl(Cells(n, 4))
          n = n + 1
        Loop
          'armazena
          i = i + 1
          Cells(i, 6) = nome
          Cells(i, 7) = soma
          nome = ""
          soma = 0
         n = n - 1
      End If
    Next
    End Sub
    
    

    Caio Vitullo
    quarta-feira, 16 de março de 2011 01:33
  • CAIO,

    Muito obrigado pela ajuda.

     EM relação a formula do somases nao posso usar pq alguns modelos de excel na empresa onde trabalho são antigos e nao aceitam essa formula.  Em relação a SUB, eu gostei muito, muito mesmo. Mas prefiro (se voce puder, é claro!) que a SUB "Copie" apartir do relatorio, o nome do cobrador ao lado das informações de contratos a pagar. 

    dessa forma:

      a b c d e f
    1 Cobrador: Amanda          
    2 »»»»Status: aguardando pagamento          
    3 contrato parcela valor vencimento Nome copiado  
    4 7926  18 a 18 740  22/02/2011 Amanda  
    5 8447   11 a 11 275  22/02/2011 Amanda  
    6 8843   21 a 22 596  23/02/2011 Amanda  
    7 6386   42 a 42 177  22/02/2011 Amanda  
    8 7549   24 a 24 199  23/02/2011 Amanda  
    9 8957   6 a 6 188  22/02/2011 Amanda  
    10 8867   7 a 7 354  22/02/2011 Amanda  
    11 8174   15 a 15 2220  24/02/2011 Amanda  
    12 6835   33 a 35 518  23/02/2011 Amanda  
    13 8020   15 a 17 994  22/02/2011 Amanda  
    14 5555   500  22/02/2012 Amanda  
    15 Cobrador: Amaury          
    16 »»»»Status: aguardando pagamento          
    17 contrato parcela valor vencimento    
    18 8457   3 a 3 382  22/02/2011 Amaury  
    19 8743   28 a 28 1100  22/02/2011 Amaury  
    20 6186   2 a 2 192  23/02/2011 Amaury  
    21 7649   31 a 31 176  22/02/2011 Amaury  
    22 8057   34 a 34 194  22/02/2011 Amaury  
    23 8167   6 a 6 198  22/02/2011 Amaury  
    24 Cobrador:JOAO          
    25 »»»»Status: aguardando pagamento          
    26 contrato parcela valor vencimento    
    27 8457   3 a 3 382  22/02/2011 JOAO  
    28 8743   28 a 28 172  22/02/2011 JOAO  
    29 6186   2 a 2 192  23/02/2011 JOAO  
    30 7649   31 a 31 176  22/02/2011 JOAO  
    31 8057   34 a 34 194  22/02/2011 JOAO  
    32 8167   6 a 6 198  22/02/2011 JOAO  

    Porque na verdade, é apartir desse relatorio base que eu retiro muitas informações, usando formulas comuns do excel. Por exemplo: valor de cada cobrador dia-a-dia. Entao, gostaria que ficasse da forma acima para que as outras formulas eu possa fazer usando formulas comuns do excel.

    Novamente obrigado , sua ajuda será de grande valia para mim.

     

    quarta-feira, 16 de março de 2011 04:15
  • Ok, ja foi resolvido com a formula:

     

    =SE(ESQUERDA(AP8;12)="»»Operador: ";EXT.TEXTO(AP8;1;150);SE(AR8="TOTAL PERÍODO:";" ";AU7))

     

    Novamente muito obrigado pela ajuda.

    • Marcado como Resposta Felixx_sp quinta-feira, 31 de março de 2011 18:33
    quinta-feira, 31 de março de 2011 18:33