Pergunte aqui
0

Macro para colocar dados de uma planilha em outra [fechado]

perguntadas 2017-03-10 15:43:13 +0200

imagem do gravatar de André Gabriel

updated 2017-05-24 18:43:10 +0200

imagem do gravatar de Grafeno

Bom dia, vou tenho uma planilha de duas colunas, uma coluna nome e outra com um código, gostaria de uma macro que pegasse a informação da célula a1 por exemplo e procurasse essa informação na coluna código, e enviasse todas as incidências para outra planilha, de maneira que fosse montada uma planilha com a coluna nome somente das que tinham o código informado. Estou tentanto fazer com Procv mas ele me limita a somente a primeira incidência, e montando com matriz {} fica linhas em branco. Acredito que macro seria a solução mas não estou conseguindo montar. Muito obrigado

bom dia Obrigado pelo feedback

O que preciso é o seguinte, vou tentar escrever visto que não consigo colocar imagens aqui ainda:

Plan1 Tenho uma coluna A código funcionário e B numero do treinamento, serão inseridos valores mensalmente nessas colunas.

A B

funcionário treinamento

1 1

2 1

3 1

1 2

3 2

1 3

2 3

1 4

3 4

Plan2 Em outra ou na mesma planilha , que dai ajusto a impressão, na célula A1 (ou outra) coloco o codigo do funcionário, exemplo 1. Então gostaria que a partir dessa informação ele mostrasse na linhas seguinte:

A B

1

1

2

3

4

Ou seja, fizesse uma busca em quais treinamentos o funcionário participou. Se puderem me ajudar agradeço!!! Obrigado

editar alterar tag assinalar como ofensivo reabrir mesclar Excluir

Fechado pelo seguinte motivo A pergunta foi respondida, a resposta certa foi aceita por Olivier
data do fechamento 2017-03-21 19:35:59.613366

Comentários

Bem-vindo! Você precisar dar mais detalhes para que possam ajudar. Além da coluna código há mais colunas que você deseja levar para a outra planilha? Os nomes e as posições dos campos (colunas) é importante para construção da macro. Atte, Grafeno

imagem do gravatar de GrafenoGrafeno ( 2017-03-11 15:19:06 +0200 )editar

Na verdade vocẽ quer um relatório de uma consulta a sua tabela para todas as ocorrências do código indicado.

imagem do gravatar de OlivierOlivier ( 2017-03-12 13:16:08 +0200 )editar

Tente com Tabela Dinâmica.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2017-03-13 19:23:52 +0200 )editar

Eu fiz com a tabela dinâmica, obrigado pela dica! muito interessante esse recurso, mas o resultado não ficou muito amigável, deve ser meu nível de conhecimento nessa ferramenta. Se alguém me conseguisse uma macro eu agradeceria. Obrigdo

imagem do gravatar de André GabrielAndré Gabriel ( 2017-03-13 21:03:28 +0200 )editar

1 Resposta

1

respondidas 2017-03-13 20:51:00 +0200

imagem do gravatar de Grafeno

Boa tarde,

Agora com os dados é possível estruturar a macro:

Sub Main
Dim oDoc As Object
Dim oPlan1 As Object
Dim oPlan2 As Object
Dim sFuncionario As String
Dim oCel As Object 
Dim i As Integer
Dim l As Integer

   oDoc = ThisComponent
   oPlan1 = oDoc.Sheets.getByName("Planilha1")
   oPlan2 = oDoc.Sheets.getByName("Planilha2")

   'Limpar valores e texto'
   oPlan2.getCellRangeByName("A2:A100").clearContents( 5 )

   sFuncionario = oPlan2.getCellRangeByName("A1").String

   i = 0
   l = 0
   Do
      oCel = oPlan1.getCellByPosition(0,i)      
      If oCel.String = sFuncionario Then
        l = l + 1
        oPlan2.getCellByPosition(0,l).Value = oPlan1.getCellByPosition(1,i).Value        
      End If       
      i = i + 1
   Loop Until oCel.String = ""
End Sub

Anexo:
Exemplo.ods

Atte,

editar assinalar como ofensivo Excluir Link mais

Comentários

Perfeito! Muito Obrigado Mesmo! É exatamente o que tentei fazer, assim consigo trabalhar no "layout" para impressão.

imagem do gravatar de André GabrielAndré Gabriel ( 2017-03-13 21:36:14 +0200 )editar

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2017-03-10 15:43:13 +0200

Lidas: 473 vezes

Última atualização: Mar 13 '17