GERAÇÃO DE PLANILHA...
 
Notifications
Clear all

GERAÇÃO DE PLANILHA ATRAVÉS DE FILTRO DE OUTRA PLANILHA

11 Posts
3 Usuários
0 Reactions
2,236 Visualizações
(@ivany)
Posts: 24
Eminent Member
Topic starter
 

Boa tarde à todos!!!

Alguém pode me ajudar?

Tenho uma planilha principal, onde tenho que selecionar dados atraves de um determinado filtro da mesma.
Ao selecionar o filtro da Coluna "PALLET", preciso gerar outra planilha com determinadas colunas relacionadas a esse filtro"PALLET". Segue anexos, planilha principal e a planilha que deve ser gerada.
OBS: a Planilha gerada deve conter no máximo 40 linhas, quando os dados da Planilha principal for mais que 40 linhas, deve-se quebrar a pagina, tendo outra planilha com os demais dados.

Obrigado a todos!!!

 
Postado : 13/06/2017 10:01 am
(@gesus)
Posts: 44
Eminent Member
 

Boa tarde,

Não tinha visto que colocou a Principal, então fiz sem ela!
Espero que ajude blz

Qualquer coisa tenta adaptar a sua necessidade.

Blz

 
Postado : 13/06/2017 12:39 pm
(@ivany)
Posts: 24
Eminent Member
Topic starter
 

Bom dia meu caro colega Gesus!

Gostei muito de projeto. Me desculpa, mas pensando melhor, será que tem como criar um botão que possa gerar a Segunda planilha direto.
Já que eu posso filtrar antes meus dados necessário na planilha principal, então depois é só gerar a Segunda Planilha.???
Outra coisa, vc tem alguma dica e material para desenvolver planilhas através do VBA.
Deus abençoe.

 
Postado : 16/06/2017 4:51 am
(@osvaldomp)
Posts: 857
Prominent Member
 

Veja se o arquivo anexado atende.

Osvaldo

 
Postado : 16/06/2017 7:44 pm
(@ivany)
Posts: 24
Eminent Member
Topic starter
 

Muito bom seu conteudo. Me ajudou muitissimo. Só mais uma coisa, sei que pra vc é mole implementar qualquer planilha. Sou admirador e tenho como hobby estudar programação. Sou leigo em desenvolvimento VBA, tenho conhecimento básico de programação e alguma coisa sobre Excel. Agora preciso que a planilha gerada seja alterada seu cabeçalho na coluna "A1" PROBLEMA DE EXPEDIÇÃO - FILIAL SP", conforme informação lançada na coluna de nome "CLASSIFICAÇÃO" que eu inseri na planilha que lhe enviei. Outra coisa, pra me auxiliar a entender o código, tem como voce explicar o procedimento de cada linha. Deus abençoe. Segue planilha anexa.

 
Postado : 17/06/2017 4:06 pm
(@osvaldomp)
Posts: 857
Prominent Member
 

Agora preciso que a planilha gerada seja alterada seu cabeçalho
Claro, chefe. Já vou providenciar.

na coluna "A1"
Para se referir a colunas utilize a letra correspondente, assim: coluna A, coluna D, pois 'A1' é endereço de célula.

PROBLEMA DE EXPEDIÇÃO - FILIAL SP", conforme informação lançada na coluna de nome "CLASSIFICAÇÃO" que eu inseri na planilha que lhe enviei.
Na coluna "CLASSIFICAÇÃO", não verifiquei a coluna toda, mas vi que você colocou "Problema de avaria de Estoque" e também colocou "Problema de Expedição Matriz". Qual das duas você quer que seja colocada nas cópias da planilha "Matriz". Exatamente em que célula da planilha "Principal" estará esaa informação?
Ainda, essa nova coluna "CLASSIFICAÇÃO" você quer que seja incluída nas cópias? Se sim, acrescente a coluna na planilha "Matriz".

Osvaldo

 
Postado : 17/06/2017 6:46 pm
(@ivany)
Posts: 24
Eminent Member
Topic starter
 

Osvaldo, obrigado.

Então, na coluna de classificação "D1" da planilha principal tem várias informações, conforme o número do pallet. Eu preciso que o as planilhas cópias tenham no cabeçalho célula "A1" o nome da mesma classificação conforme seu pallet relacionado. Mais um detalhe, quando houver mais de uma planilha gerada de cada pallet, em vez de criar a segunda planilha em aba, tem como criar a segunda planilha duas linhas abaixo da primeira planilha??

 
Postado : 17/06/2017 9:11 pm
(@ivany)
Posts: 24
Eminent Member
Topic starter
 

segue anexo a planilha com coluna de classificação.

 
Postado : 17/06/2017 9:13 pm
(@osvaldomp)
Posts: 857
Prominent Member
 
Sub GeraPlanilha()
 Dim m As Long, k As Long, x As Long, t As Long, c As Long, r As Range, LR As Long
  Application.ScreenUpdating = False
  k = Range("A2:A" & Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeVisible).Count
  t = 2
   LR = Cells(Rows.Count, 1).End(3).Row
   Sheets("Matriz").[A1] = Range("A2:F" & LR).SpecialCells(xlCellTypeVisible)(1, 4).Value
   Sheets("Matriz").Copy after:=Sheets(Sheets.Count)
   For m = 1 To Application.RoundUp(k / 40, 0)
    If m > 1 Then Sheets("Matriz").Rows("1:48").Copy Rows(Cells(Rows.Count, 1).End(3).Row + 2)
     For Each r In Sheets("Principal").Range("A" & t & ":A" & Sheets("Principal").Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeVisible)
     c = c + 1
      If c = 40 Then
       c = 0: x = r.Row: Exit For
      End If
     x = r.Row
    Next r
     Sheets("Principal").Range("A" & t & ":C" & x).Copy
     ActiveSheet.Cells(Rows.Count, 1).End(3)(-40).PasteSpecial xlValues
     Sheets("Principal").Range("E" & t & ":E" & x).Copy
     ActiveSheet.Cells(Rows.Count, 1).End(3)(-40, 4).PasteSpecial xlValues
     t = x + 1
   Next m
  Application.ScreenUpdating = True
End Sub

Osvaldo

 
Postado : 18/06/2017 1:31 pm
(@ivany)
Posts: 24
Eminent Member
Topic starter
 

Osvaldo, obrigado amigo.

Pelo que entendi seu código pega a planilha Matriz e faz cópia da mesma lançando os dados da planilha principal na planilha Matriz "cópia" OK???

Então, com relação ao cabeçalho da planilha GERADA "cópia" na célula "A1", não tem como alterar a informação, conforme o tipo de classificação??

Assim:
1 - Se o Pallet 1 tiver como classificação = PROBLEMA DE EXPEDIÇÃO

Faça "A1" da Planilha Matriz (cópia) = PROBLEMA DE EXPEDIÇÃO que será uma célula váriável + "- FILIAL SP __/__/__" que sera informação fixa na planilha. Pelo que entendo, usaria a Célula "A1" contactenado com o texto "- FILIAL SP __/__/__".

2 - Faça "A5" da Planilha Matriz (cópia) = PALLET 1 que também será uma célula variável.

É isso amigo. As células '"A1" e "A5" varia de acordo com o número de PALLET e sua classificação.

 
Postado : 19/06/2017 9:50 am
(@osvaldomp)
Posts: 857
Prominent Member
 

substitua esta linha

 'Sheets("Matriz").[A1] = Range("A2:F" & LR).SpecialCells(xlCellTypeVisible)(1, 4).Value

por estas duas

Sheets("Matriz").[A1] = Range("A2:F" & LR).SpecialCells(xlCellTypeVisible)(1, 4).Value & " - FILIAL SP __/__/__"
 Sheets("Matriz").[A5] = "PALLET " & Range("A2:F" & LR).SpecialCells(xlCellTypeVisible)(1, 6).Value

Osvaldo

 
Postado : 19/06/2017 11:04 am