Notifications
Clear all

Como Unificar e formatar para ter dados consolidados

4 Posts
2 Usuários
0 Reactions
710 Visualizações
 CR1S
(@cr1s)
Posts: 2
New Member
Topic starter
 

Boa noite colegas !

Tenho "trabalhado" muito e me propus um desafio este ano que nada mais é buscar maior conhecimento no excel-vba-access para fazer o sistema trabalhar pra mim e não o contrario. :D

Preciso da ajuda dos colegas com a seguinte tarefa...pelo que li é possível realiza-la totalmente via vba mas como ainda estou aprendendo não consigo juntar os exemplos e fazer funcionar. Pra mim a parte mais difícil é a vba para criar a tabela imagem003 a partir dos formulários de cotação.

1-Imagem001: Tenho uma pasta no drive s: onde recebo ate 12 arquivos todos extensão .xlsx referentes a cotações de fornecedores.
;

2-Imagem002: Montei um exemplo de como penso que seria o mais produtivo pra mim mas estou aberto a outras sugestões. Na imagem mostro um arquivo onde uma planilha com macro é nomeada "Proposta Unificada Tabelada" a macro desta planilha deve unificar todos arquivos de cotação da imagem001 neste único arquivo "cada arquivo cotação seria mais uma planilha deste arquivo). Na imagem grifei a proposta (2) onde quero mostrar o layout do formulário de cotação com as células a serem analisadas preenchidas com coordenadas coluna+linha que detalharei na imagem003;

3-Imagem003: Nesta imagem mostro a planilha Proposta Unificada preenchida com as coordenadas relacionada (apenas para ajudar na ilustração) com as células do formulário de cotação que precisa ter seu layout criado através de vba para que possa ser analisado de forma unificada conforme imagem003. Nesta tabela na coluna B cada linha deverá ser preenchida automaticamente com a vba: Primeiro com o título do arquivo do fornecedor e depois os valores das células do formulário de cotação.

Resumindo: Preciso de um script vba para um arquivo xlsx que realize: 1º Unificar todos arquivos (pode acontecer de ser de 1 até 12) de cotação (imagem001) num único arquivo (sem apagar arquivos de origem) e 2º Unificar os dados dos formulários de cotação de cada planilha em uma única planilha-tabela conforme imagem003.
Desde já agradeço a boa vontade de quem puder ajudar ;) me perdoem o texo longo.

 
Postado : 23/01/2018 9:38 pm
(@klarc28)
Posts: 971
Prominent Member
 

Só respondo quando a pessoa apresenta algum código, anexa o arquivo e explica qual parte não está conseguindo.

O mínimo que você deve fazer é, pelo menos, uma parte do código.

 
Postado : 24/01/2018 1:22 am
 CR1S
(@cr1s)
Posts: 2
New Member
Topic starter
 

Olá klar28 agradeço sua atenção com a minha questão...vamos lá...infelizmente não tenho nenhum conhecimento com VBA estou começando ter contato agora, por isso não consigo entenderler os códigos e modifica-los para o que preciso.

Eu achei este código na Net que atende a primeira parte do que preciso que é puxar para um único arquivo .xlsx em planilhas até 12 arquivos de cotação em .xlsx que estão em uma pasta. Este foi fácil, pois foi só colocar o endereço que estão os arquivos e ele ja funcionou:

Sub GetSheets()
Path = "C:UsersDocumentsMeus Arquivos Recebidos"
Filename = Dir(Path & "*.xls")
  Do While Filename <> ""
  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
     For Each Sheet In ActiveWorkbook.Sheets
     Sheet.Copy After:=ThisWorkbook.Sheets(1)
  Next Sheet
     Workbooks(Filename).Close
     Filename = Dir()
  Loop
End Sub

Esta segunda parte do que preciso esta relacionada ao item 2-Imagem002 onde as cotações já estão como "abasplanilhas" neste arquivo e uma outra aba (representada pela imagem003) deve ser onde algumas células de cada planilha de proposta são "copiadascoladas" para esta tabela consolidada para posterior análise. Para esta ação eu acredito que esta código abaixo faça o que preciso mas o problema é que não sei como mexer nele acho que ele tem ações que eu nem preciso se conseguir me ajudar lhe serei grato eternamente.

Percebo que ele lê valores num arquivo banco de dados e copia e cola em um outro arquivo nome1 conforme colunas nomeadas... percebo que preciso acrescentar também neste código uma ação para que ele leia não apenas uma mais todas as planilhas de propostas que estiverem no arquivo... como falo isso ?

Não sei se faz diferença na minha proposta as planilhas de propostas e a consolidada estão no mesmo arquivo mas se for mais difícil poderia ser diferente com a consolidada em outro. É mais difícil para o código elas juntas ?

Sub Trazerdados()
 
Dim i As Integer
Dim x As Integer
Dim c As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False
nome1 = ActiveWorkbook.Name
c = Workbooks(nome1).Worksheets("Contador").Cells(6, 2).Value
'Workbooks.Open Filename:= _
    "S:Banco de Dados 2018Banco de Dados 2018.xlsx"
Max = Workbooks(nome1).Worksheets("Configurações").Cells(2, 1).Value
maxBanco = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Config").Cells(2, 1).Value
For i = 0 To maxBanco
    For x = 0 To Max + 1
        If Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 1).Value = Workbooks(nome1).Worksheets("Usinagem").Cells(3 + x, 1).Value Then
            'workbooks(nome1).worksheets("Usinagem").cells(3+x,25).value = workbooks("COTACAO.xlsx").worksheets("xxxx").cells(2+i,10).value
            GoTo prox
        Else
        End If
    Next
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 1).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 1).Value ' Numero Solict
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 2).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 5).Value 'Data
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 3).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 2).Value ' Solicitante
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 4).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 4).Value ' Ramal
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 5).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 3).Value ' SETOR
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 6).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 9).Value ' Categoria
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 7).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 10).Value ' Tipo de serviço
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 8).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 11).Value ' Prazo Solicitado
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 9).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 17).Value ' Projeto 
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 10).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 18).Value ' Nome do Projeto 
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 11).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 8).Value ' Tipo de debito
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 12).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 6).Value  ' Local de debito
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 13).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 7).Value ' Numero debito
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 14).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 13).Value ' Numero Proposta
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 15).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 14).Value ' Data proposta
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 16).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 12).Value ' Descrição
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 17).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 15).Value ' Sim nao
Workbooks(nome1).Worksheets("Usinagem").Cells(3 + c, 18).Value = Workbooks("Banco de Dados 2018.xlsx").Worksheets("Custo").Cells(2 + i, 16).Value ' Telefone
 c = c + 1
prox:
Next
Workbooks("Banco de Dados 2018.xlsx").Close
'Run "EscreverGBs"
 'Run "Alarme"
End Sub

Só respondo quando a pessoa apresenta algum código, anexa o arquivo e explica qual parte não está conseguindo.

O mínimo que você deve fazer é, pelo menos, uma parte do código.

 
Postado : 27/01/2018 8:39 pm
(@klarc28)
Posts: 971
Prominent Member