Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Extrair dados de Relatório
Extrair dados de Relatório
Amigos, tenho um planilha com os seguintes dados
Quadro1
Quero um código em um button que após clicar faça o seguinte
Criar na plan2 quadro nos seguintes moldes (ver quadro 2)
Repare que as linha que contém a palavra usuário com o respectivo nome está tudo dentro de uma única célula e o código deve identificar no relatório, no momento da busca na 1ª coluna da planilha, cada linha que aparecer a palavra usuário e extrair apenas o primeiro nome do usuário e lançar no quadro da plan2 informando a soma das saídas por data.
Resumindo:
O código deverá fazer a varredura em toda a coluna1
Encontrar quantas vezes aparece a palavra usuário
Identificar os nomes iguais
Extrair o primeiro nome
Lancar na plan2
Somar as “Saídas” de cada nome em cada atividade e lança nas datas respectivas nos respectivos nomes conforme quadro 2
Quadro1
Quero um código em um button que após clicar faça o seguinte
Criar na plan2 quadro nos seguintes moldes (ver quadro 2)
Repare que as linha que contém a palavra usuário com o respectivo nome está tudo dentro de uma única célula e o código deve identificar no relatório, no momento da busca na 1ª coluna da planilha, cada linha que aparecer a palavra usuário e extrair apenas o primeiro nome do usuário e lançar no quadro da plan2 informando a soma das saídas por data.
Resumindo:
O código deverá fazer a varredura em toda a coluna1
Encontrar quantas vezes aparece a palavra usuário
Identificar os nomes iguais
Extrair o primeiro nome
Lancar na plan2
Somar as “Saídas” de cada nome em cada atividade e lança nas datas respectivas nos respectivos nomes conforme quadro 2
- Anexos
-
- IMAGEM DE UMA PLANILHA
- QUADRO.jpg (60 KiB) Exibido 4680 vezes
Re: Extrair dados de Relatório
Pessoal, facilitando as coisas:
a cada 6 ou 3 linhas a partir de A1 tenho o seguinte texto
Usuário: Romão Gustavo
+ 6 linhas
Usuário: Fernanda Brito
+ 3 linhas
Usuário: Neto Batista
O texto todo está na célula da coluna1
Quero um código que encontre a palavra usuário na primeira coluna e
recorte o primeiro nome após a palavra Usuário: e cole na célula a frete
Ex:
Usuário: Romão Gustavo (clico no botão e
A1 B1
Usuário: Romão Gustavo Romão
a cada 6 ou 3 linhas a partir de A1 tenho o seguinte texto
Usuário: Romão Gustavo
+ 6 linhas
Usuário: Fernanda Brito
+ 3 linhas
Usuário: Neto Batista
O texto todo está na célula da coluna1
Quero um código que encontre a palavra usuário na primeira coluna e
recorte o primeiro nome após a palavra Usuário: e cole na célula a frete
Ex:
Usuário: Romão Gustavo (clico no botão e
A1 B1
Usuário: Romão Gustavo Romão
Re: Extrair dados de Relatório(NÃO RESOLVIDO)
Pessoal, esse código separa a palavra usuário e o dois pontos e os coloca
na célula a frente
como acrescentaria algo que selecionasse (tipo, dois clicques sobra a palavra)
selecionando a próxima palavra depois de usuário: ?
Range("A2").Select
Dim j As String
Dim k As String
Range("A1").Select
While ActiveCell <> "" 'Enquanto a Célula ativa não estiver vazia
j = Left(ActiveCell.Text, 8) 'Seja "j" o texto da célula ativa da esquerda até 8 caracteres
ActiveCell.Offset(0, 1).Value = j 'e o valor da célula a frete seja "j"
j = Len(ActiveCell.Text)
k = Right(ActiveCell.Text, j - 0)
ActiveCell.Value = k
ActiveCell.Offset(1, 0).Select
Wend
End Sub
na célula a frente
como acrescentaria algo que selecionasse (tipo, dois clicques sobra a palavra)
selecionando a próxima palavra depois de usuário: ?
Range("A2").Select
Dim j As String
Dim k As String
Range("A1").Select
While ActiveCell <> "" 'Enquanto a Célula ativa não estiver vazia
j = Left(ActiveCell.Text, 8) 'Seja "j" o texto da célula ativa da esquerda até 8 caracteres
ActiveCell.Offset(0, 1).Value = j 'e o valor da célula a frete seja "j"
j = Len(ActiveCell.Text)
k = Right(ActiveCell.Text, j - 0)
ActiveCell.Value = k
ActiveCell.Offset(1, 0).Select
Wend
End Sub
Re: Extrair dados de Relatório(NAO RESOLVIDO)
pESSOAL Nnguém conhece alguma forma de conseguir isto?
Re: Extrair dados de Relatório
Pessoal, consegui separar apenas o primeiro nome como queria.
depois somar as saidas de cada pessoa.
Resta agora lançar todas as datasdo formulário, uma abaixo da outra, na primeira coluna da Plan2.
Alguém tem uma dica?
Esse é o código que separa o primeiro nome e coloca numa só linha na plan2
Dim aArray As Variant
Dim lastResultRow As Long
Dim ultLin As Long, x As Integer
' Verifica qual a ultima célula preenchida
ultLin = Plan1.Cells(Rows.Count, 1).End(xlUp).Row
' Apaga valores anteriores em Plan2
Plan2.Range("A2:B65536").ClearContents
lastResultRow = 2 'linha resultado
For x = 2 To ultLin
If Plan1.Cells(x, 1).Value >= "Usuário:" Then
aArray = Split(Plan1.Cells(x, 1), ": ")
aArray = (Split(aArray(1), " "))
'Plan1.Cells(x, "C") = aArray(0)
Plan2.Cells(2, lastResultRow) = aArray(0)
lastResultRow = lastResultRow + 1
End If
Next
depois somar as saidas de cada pessoa.
Resta agora lançar todas as datasdo formulário, uma abaixo da outra, na primeira coluna da Plan2.
Alguém tem uma dica?
Esse é o código que separa o primeiro nome e coloca numa só linha na plan2
Dim aArray As Variant
Dim lastResultRow As Long
Dim ultLin As Long, x As Integer
' Verifica qual a ultima célula preenchida
ultLin = Plan1.Cells(Rows.Count, 1).End(xlUp).Row
' Apaga valores anteriores em Plan2
Plan2.Range("A2:B65536").ClearContents
lastResultRow = 2 'linha resultado
For x = 2 To ultLin
If Plan1.Cells(x, 1).Value >= "Usuário:" Then
aArray = Split(Plan1.Cells(x, 1), ": ")
aArray = (Split(aArray(1), " "))
'Plan1.Cells(x, "C") = aArray(0)
Plan2.Cells(2, lastResultRow) = aArray(0)
lastResultRow = lastResultRow + 1
End If
Next