Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Extrair dados de Relatório

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Adonias
Manda bem
Manda bem
Mensagens: 167
Registrado em: Sáb Jun 02, 2012 12:55 pm

Extrair dados de Relatório

Mensagem por Adonias »

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
Anexos
IMAGEM DE UMA PLANILHA
IMAGEM DE UMA PLANILHA
QUADRO.jpg (60 KiB) Exibido 4680 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Adonias
Manda bem
Manda bem
Mensagens: 167
Registrado em: Sáb Jun 02, 2012 12:55 pm

Re: Extrair dados de Relatório

Mensagem por Adonias »

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


Adonias
Manda bem
Manda bem
Mensagens: 167
Registrado em: Sáb Jun 02, 2012 12:55 pm

Re: Extrair dados de Relatório

Mensagem por Adonias »

Ninguém tem alguma ideia de como fazer isso?


Adonias
Manda bem
Manda bem
Mensagens: 167
Registrado em: Sáb Jun 02, 2012 12:55 pm

Re: Extrair dados de Relatório(NÃO RESOLVIDO)

Mensagem por Adonias »

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


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Adonias
Manda bem
Manda bem
Mensagens: 167
Registrado em: Sáb Jun 02, 2012 12:55 pm

Re: Extrair dados de Relatório(NAO RESOLVIDO)

Mensagem por Adonias »

pESSOAL Nnguém conhece alguma forma de conseguir isto?


Adonias
Manda bem
Manda bem
Mensagens: 167
Registrado em: Sáb Jun 02, 2012 12:55 pm

Re: Extrair dados de Relatório

Mensagem por Adonias »

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


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder