Notifications
Clear all

Retirar Dados de Um Periodo

8 Posts
2 Usuários
0 Reactions
1,619 Visualizações
(@chook)
Posts: 197
Reputable Member
Topic starter
 

Boa tarde pessoal,
depois de me bater muito, volto a recorrer aos gurus aqui para me auxiliar no problema abaixo.

Tenho os valores abaixo na planilha e preciso extrair apenas o valor que está após o texto Base INSS:

Base INSS: 1.712,00 (Aliq.: 9%) Base FGTS: 1.712,00 (Valor: 136,96) Base IRRF Folha: 1.557,92
Base INSS: 721,62 (Aliq.: 8%) Base FGTS: 721,62 (Valor: 57,73) Base IRRF Folha: 663,89
Base INSS: 725,46 (Aliq.: 8%) Base FGTS: 725,46 (Valor: 58,04) Base IRRF Folha: 667,42

Utilizei o código abaixo mais apresenta erro e não consegui identificar... :o :o :o

Sheets("Folha").Range("I" & z).Value = Trim(Mid(Sheets("FolhaCTB").Range("A" & i + 8).Value, 10, 9)) * -1

Resultado previsto na primeira linha -1.712,00

Qual a solução Mister M?

 
Postado : 30/09/2013 2:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


= CDbl(Mid(Sheets("FolhaCTB").Range("A" & i + 8), 12, Application.WorksheetFunction.Search("(", Sheets("FolhaCTB").Range("A" & i + 8), 1) - 13)) * (-1)

 
Postado : 30/09/2013 6:42 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Chook, veja se seria isto.

Adaptei uma das Functions referente a função "SPLIT" no site abaixo :

"The Versatile Split Function"
http://spreadsheetpage.com/index.php/ti ... _function/

Adoro esta função por ela ser bem Versátil mesmo.

Originalmente é para ser utilizada como Função, então fiz a adaptação para retornar o Valor para outra aba em vez de utiliza-la como Função.

Função SPLIT - Retornando somente um Valor de um determinado Texto

Qualquer coisa retorne.

[]s

 
Postado : 30/09/2013 6:47 pm
(@chook)
Posts: 197
Reputable Member
Topic starter
 


= CDbl(Mid(Sheets("FolhaCTB").Range("A" & i + 8), 12, Application.WorksheetFunction.Search("(", Sheets("FolhaCTB").Range("A" & i + 8), 1) - 13)) * (-1)

Amigo Edson, agradeço a atenção no problema mas o desafio está justamente no erro que sua solução também apresentou. Observe que em uma sequencia de dados não foi possível trazer todos os resultados, devido a variação de tamanho da informação. Continuo investigando. Vou tentar aplicar a solução do Mauro na rotina. Valeu!

-1712
-721,62

-678

-2000

-678

-2000
-2000

-800

-2000

 
Postado : 30/09/2013 8:15 pm
(@chook)
Posts: 197
Reputable Member
Topic starter
 

Chook, veja se seria isto.

Adaptei uma das Functions referente a função "SPLIT" no site abaixo :

"The Versatile Split Function"
http://spreadsheetpage.com/index.php/ti ... _function/

Adoro esta função por ela ser bem Versátil mesmo.

Originalmente é para ser utilizada como Função, então fiz a adaptação para retornar o Valor para outra aba em vez de utiliza-la como Função.

Função SPLIT - Retornando somente um Valor de um determinado Texto

Qualquer coisa retorne.

[]s

Mauro Amigo estou sofrendo para adaptar no código. O trecho que retorna os valores está destacado em vermelho.

Private Sub IRPF()
Sheets("FolhaCTB").Select
Dim UltimaLinha, UltimaLinha2, i, ii, z As Integer
UltimaLinha = Sheets("FolhaCTB").Cells(Cells.Rows.Count, 1).End(xlUp).Row
UltimaLinha2 = Sheets("Folha").Cells(Cells.Rows.Count, 1).End(xlUp).Row
Sheets("FolhaCTB").Range("A1").Select
z = UltimaLinha2 + 1
For i = 1 To UltimaLinha * 2
    If Left(Sheets("FolhaCTB").Range("A" & i).Value, 1) = "0" Then
            Sheets("Folha").Range("A" & z).Value = "Pagamento"
            Sheets("Folha").Range("B" & z).Value = "Normal"
            Sheets("Folha").Range("C" & z).Value = "Não"
            Sheets("Folha").Range("D" & z).Value = Trim(Mid(Sheets("FolhaCTB").Range("A6").Value, 27, 11))
            Sheets("Folha").Range("O" & z).Value = Trim(Mid(Sheets("FolhaCTB").Range("A6").Value, 27, 11))
            Sheets("Folha").Range("Q" & z).Value = Trim(Mid(Sheets("FolhaCTB").Range("A6").Value, 27, 11))
            Sheets("Folha").Range("E" & z).Value = ""
            Sheets("Folha").Range("F" & z).Value = Trim(Mid(Sheets("FolhaCTB").Range("A" & i).Value, 10, 55)) 'Colaborador
            Sheets("Folha").Range("K" & z).Value = "REF.PAGT.INSS " & Month(Trim(Mid(Sheets("FolhaCTB").Range("A6").Value, 27, 11))) & "/" & Year(Trim(Mid(Sheets("FolhaCTB").Range("A6").Value, 27, 11)))
            Sheets("Folha").Range("G" & z).Value = "DESPESA COM PESSOAL:1575-INSS"
            Sheets("Folha").Range("P" & z).Value = "UTILIZADO IMPORTAÇÃO"
[color=#FF0000]            If Left(Sheets("FolhaCTB").Range("A" & i + 8).Value, 10) = "Base INSS:" Then
                Sheets("Folha").Range("I" & z).Value = CDbl(Mid(Sheets("FolhaCTB").Range("A" & i + 8), 12, Application.WorksheetFunction.Search("(", Sheets("FolhaCTB").Range("A" & i + 8), 1) - 13)) * (-1)
                Sheets("Folha").Range("M" & z).Value = CDbl(Mid(Sheets("FolhaCTB").Range("A" & i + 8), 12, Application.WorksheetFunction.Search("(", Sheets("FolhaCTB").Range("A" & i + 8), 1) - 13)) * (-1)
                Sheets("Folha").Range("U" & z).Value = CDbl(Mid(Sheets("FolhaCTB").Range("A" & i + 8), 12, Application.WorksheetFunction.Search("(", Sheets("FolhaCTB").Range("A" & i + 8), 1) - 13)) * (-1)
            End If
[/color]            z = z + 1
    End If
Next i
End Sub
 
Postado : 30/09/2013 8:34 pm
(@chook)
Posts: 197
Reputable Member
Topic starter
 

Show de Bolaaa!!!

Resolvi com o seguinte código!! Mauro meu amigo, você sempre me surpreende!! Abraços!!

            If Left(Sheets("FolhaCTB").Range("A" & i + 7).Value, 10) = "Base INSS:" Then
                Sheets("Folha").Range("I" & z).Value = ExtractElementX(Sheets("FolhaCTB").Range("A" & i + 7).Value, 3, " ") * (-1)
                Sheets("Folha").Range("M" & z).Value = ExtractElementX(Sheets("FolhaCTB").Range("A" & i + 7).Value, 3, " ") * (-1)
                Sheets("Folha").Range("U" & z).Value = ExtractElementX(Sheets("FolhaCTB").Range("A" & i + 7).Value, 3, " ") * (-1)
            End If
            If Left(Sheets("FolhaCTB").Range("A" & i + 8).Value, 10) = "Base INSS:" Then
                Sheets("Folha").Range("I" & z).Value = ExtractElementX(Sheets("FolhaCTB").Range("A" & i + 8).Value, 3, " ") * (-1)
                Sheets("Folha").Range("M" & z).Value = ExtractElementX(Sheets("FolhaCTB").Range("A" & i + 8).Value, 3, " ") * (-1)
                Sheets("Folha").Range("U" & z).Value = ExtractElementX(Sheets("FolhaCTB").Range("A" & i + 8).Value, 3, " ") * (-1)
            End If
            If Left(Sheets("FolhaCTB").Range("A" & i + 9).Value, 10) = "Base INSS:" Then
                Sheets("Folha").Range("I" & z).Value = ExtractElementX(Sheets("FolhaCTB").Range("A" & i + 9).Value, 3, " ") * (-1)
                Sheets("Folha").Range("M" & z).Value = ExtractElementX(Sheets("FolhaCTB").Range("A" & i + 9).Value, 3, " ") * (-1)
                Sheets("Folha").Range("U" & z).Value = ExtractElementX(Sheets("FolhaCTB").Range("A" & i + 9).Value, 3, " ") * (-1)
            End If
 
Postado : 30/09/2013 8:46 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Chok, veja que você iniciou o post com uma pergunta simples solicitando ajuda em uma linha de uma instrução, onde temos como base somente as frases que colocou, neste caso, tando a ajuda do Edson como a minha acredito que ajudou, veja que não temos a sua base de dados, estamos apenas supondo uma solução, então você diz que não resolveu e acrescenta uma rotina (Private Sub IRPF()) com uma infinidade de variáveis, definições e criterios, desta forma você há de convir comigo que fica um pouco dificil chegar a um resultado positivo, então antes de continuarmos, o ideal é anexar um modelo reduzido e compactado para uma analise mais justa.

[]s

 
Postado : 30/09/2013 8:57 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Chok, meus parabens, e por favor desconsidere o post acima, mas não a menção a questão que fiz, pois sempre devemos ter em mente que quem está pedindo ajuda, sabe o que quer como resultado e quem está do outro lado, quando a questão não está muito clara, só podemos supor ou dar alguma sugestão da forma que entendemos.

Desta forma, para este post não ficar meio vago, peço a gentileza que se for possível anexe um modelo reduzido com a resolução que encontrou, assim deixamos o Tópico e o Forum mais rico qdo temos um exemplo para ilustrar quando alguem utilizar o sistema de busca por questão parecida.

[]s

 
Postado : 30/09/2013 9:04 pm