Notifications
Clear all

Gerar Relatório

3 Posts
2 Usuários
0 Reactions
958 Visualizações
(@drbeil)
Posts: 0
New Member
Topic starter
 

Boas pra todos.

Primeiro vou explicar como fazia.
Tinha um formulário que lançava linha por linha a cada click em "Adicionar Item". Era salvo na "ABA TESTE" item abaixo de item. Para gerar o relatório criei uma macro que consigo separar por cliente na "ABA RELACAO DE CLIENTES".

Eu quis mudar porque os NÙMEROS DE OS que gera automatico, quando coloco mais de um item no mesmo Número de OS o proximo não segue a sequencia.
viewtopic.php?f=10&t=15014

Agora vamos pra minha questão.

Criei um novo formulário que única maneira que consegui para ter a sequencia da Numeracao de OS(Automatica) foi colocar em uma linha única, conforme "ABA DADOS1".

Porém para gerar um relatorio por cliente eu não imagino como faço uma macro. Para ler os 7 itens de cada pedido na linha. E fique linha por linha na "Relação de Clientes"

Exemplo na ABA Dados1:
- Pedido Numero 3312
- Tem o nome da Empresa / Data / Pedido / Solicitante
- E os 07 itens estão prenchido com informações: 1 item) Quant.: 02 / Código: 131 // 2 item) Quant.: 05 / Códio: 131..... e assim até o item 07.

Quero que fique no relatorio:

dados que irão repetir dados que depederá ser foi ou não preenchido
|-------------------------------------------------------------| |----------|
3312 ; nome da empresa ; data ; pedido ; solicitante ; 02 ; 131 (item 1)
3312 ; nome da empresa ; data ; pedido ; solicitante ; 05 ; 131 (item 2)
.
.
.
.

MAs tem pedido que não vão usar os sete itens. Vai usar um, dois, quatro...

Não posso fazer um loop básico porque ele vai duplicar os dados que se repetem e ficará em branco os dados dos sete item que não tiverem preenchidos.

Esse arquivo fui usando formulas de todos tipos, tudo buscando no google / forúm. Não sou experiente, apenas fuço.

Aguardo pra alguém me ajudar.

 
Postado : 18/09/2015 11:48 pm
(@messiasmbm)
Posts: 0
New Member
 

Sobre seu outro tópico ...http://www.planilhando.com.br/forum/viewtopic.php?f=10&t=15014&p=88175#p88175

 
Postado : 19/09/2015 2:40 am
(@drbeil)
Posts: 0
New Member
Topic starter
 

Apenas para finalizar o tópico, com a ajuda do Messias.

Segue abaixo o macro:

Sub extrairnovo()
Dim i As Integer, j As Byte
Dim ultimalinha

j = 12

Plan3.[a12].ClearContents
Plan3.[h12].ClearContents

With Plan8

For i = 2 To .Range("a" & Rows.Count).End(xlUp).Row
If .Range("b" & i) = Plan3.Range("c6") Then
Plan3.Range("a" & j) = .Range("a" & i)
Plan3.Range("b" & j) = .Range("f" & i)
Plan3.Range("C" & j) = .Range("g" & i)
Plan3.Range("D" & j) = .Range("h" & i)
Plan3.Range("e" & j) = .Range("i" & i)
Plan3.Range("f" & j) = .Range("j" & i)
Plan3.Range("h" & j) = .Range("k" & i)

j = j + 1
End If

'A PARTIR DAQUI EU PRECISAVA DE ALGUMA INFORMAÇÃO DIZENDO CASO A COLUNA P
'ESTIVER EM BRANCO NAO FAÇA MAIS NADA, PULE PARA PROXIMA LINHA.

ultimalinha = Sheets("Dados1").Range("A1000000").End(xlUp).Row
'

If .Range("b" & i) = Plan3.Range("c6") Then
If Sheets("Dados1").Range("P" & ultimalinha).Value <> "" Then
Plan3.Range("a" & j) = .Range("a" & i)
Plan3.Range("b" & j) = .Range("f" & i)
Plan3.Range("C" & j) = .Range("g" & i)
Plan3.Range("D" & j) = .Range("h" & i)
Plan3.Range("e" & j) = .Range("p" & i) '
Plan3.Range("f" & j) = .Range("q" & i)
Plan3.Range("h" & j) = .Range("r" & i)
j = j + 1

End If
End If

If .Range("b" & i) = Plan3.Range("c6") Then
If Sheets("Dados1").Range("W" & ultimalinha).Value <> "" Then
Plan3.Range("a" & j) = .Range("a" & i)
Plan3.Range("b" & j) = .Range("f" & i)
Plan3.Range("C" & j) = .Range("g" & i)
Plan3.Range("D" & j) = .Range("h" & i)
Plan3.Range("e" & j) = .Range("w" & i)
Plan3.Range("f" & j) = .Range("x" & i)
Plan3.Range("h" & j) = .Range("y" & i)
j = j + 1

End If
End If

If .Range("b" & i) = Plan3.Range("c6") Then
If Sheets("Dados1").Range("AD" & ultimalinha).Value <> "" Then
Plan3.Range("a" & j) = .Range("a" & i)
Plan3.Range("b" & j) = .Range("f" & i)
Plan3.Range("C" & j) = .Range("g" & i)
Plan3.Range("D" & j) = .Range("h" & i)
Plan3.Range("e" & j) = .Range("ad" & i)
Plan3.Range("f" & j) = .Range("ae" & i)
Plan3.Range("h" & j) = .Range("af" & i)
j = j + 1

End If
End If

If .Range("b" & i) = Plan3.Range("c6") Then
If Sheets("Dados1").Range("AK" & ultimalinha).Value <> "" Then
Plan3.Range("a" & j) = .Range("a" & i)
Plan3.Range("b" & j) = .Range("f" & i)
Plan3.Range("C" & j) = .Range("g" & i)
Plan3.Range("D" & j) = .Range("h" & i)
Plan3.Range("e" & j) = .Range("ak" & i)
Plan3.Range("f" & j) = .Range("al" & i)
Plan3.Range("h" & j) = .Range("am" & i)
j = j + 1

End If
End If

If .Range("b" & i) = Plan3.Range("c6") Then
If Sheets("Dados1").Range("AR" & ultimalinha).Value <> "" Then
Plan3.Range("a" & j) = .Range("a" & i)
Plan3.Range("b" & j) = .Range("f" & i)
Plan3.Range("C" & j) = .Range("g" & i)
Plan3.Range("D" & j) = .Range("h" & i)
Plan3.Range("e" & j) = .Range("ar" & i)
Plan3.Range("f" & j) = .Range("as" & i)
Plan3.Range("h" & j) = .Range("at" & i)
j = j + 1

End If
End If

If .Range("b" & i) = Plan3.Range("c6") Then
If Sheets("Dados1").Range("AY" & ultimalinha).Value <> "" Then
Plan3.Range("a" & j) = .Range("a" & i)
Plan3.Range("b" & j) = .Range("f" & i)
Plan3.Range("C" & j) = .Range("g" & i)
Plan3.Range("D" & j) = .Range("h" & i)
Plan3.Range("e" & j) = .Range("ay" & i)
Plan3.Range("f" & j) = .Range("az" & i)
Plan3.Range("h" & j) = .Range("ba" & i)
j = j + 1

End If
End If

Next i

End With
End Sub

Agradecido pela atenção e o retorno.

 
Postado : 21/09/2015 12:27 am