Fórum Excel Bácico, Avançado e Vba

Este fórum é destina a usuário de Excel, que queiram compartilhar informações a básicas, avançadas e programação em VBA...
 
InícioInício  FAQFAQ  BuscarBuscar  MembrosMembros  GruposGrupos  Registrar-seRegistrar-se  Login  

Compartilhe | 
 

 Pedido de auxilio

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
alen



Mensagens : 1
Data de inscrição : 19/10/2012

MensagemAssunto: Pedido de auxilio   Sex Out 19, 2012 7:52 pm

Boa tarde a todos os foristas.

Em primeiro lugar quero apresentar-me, sou Português e não sou informático, embora tenha muito gosto por aprender.

É a minha primeira vez coloco um pedido de auxilio, pois as minhas duvidas anteriores consegui resolve-las somente através da leitura.

Não consegui esclarecer esta duvidai, certamente por falta de habilidade minha na pesquisa do assunto. Por isso peço as minhas desculpas.

Nem sequer sei se estou na Seção correcta, caso não esteja, autorizo os Administradores a moverem o meu post para a seção correcta.

Tenho um ficheiro em Excel, com 3 folhas.

Duas folhas vão importar dados externos a dois ficheiros de texto que foram previamente criados.

A terceira folha reune uma seria de informações e efectua uma serie de tratamento de dados.

Mas estou a ter uma enorme dificuldade na construção desta uma folha, vou passar a explicar.

Imaginemos que na folha Excel 1 tenho um conjunto de dados relativamente às vendas de uma equipe comercial, e cada registo tem os seguintes campos (codigo de cliente, codigo do documento emitido e numero do documento);
Na folha de Excel 2 tenho as vendas efectuadas por outra equipe comercial e cada registo tem os mesmo campos. Cada linha de Excel diz respeito a uma venda.
Por exemplo:
Folha 1
1,s01,11
5,s10,10
30,s10,11
31,s01,12
32,s01,13
50,s10,12

Folha 2
2,e01,13
3,e01,14
10,e10,12
29,e10,13
30,e01,15
50,e10,14

Na folha de Excel eu pretendo que seja efectuada a reunião das duas folhas de Excel, ou seja interessa-me saber a quem foram efectuados documentos, o que quer dizer que deveria aparecer assim

1,s01
2,e01
3,e01
5,s10
10,e10
29,e10
30,s10,e01
31,s01
32,s01
50,s10,e10

Aqui os campo encontram-se separados pelas virgulas, e representam as colunas no Excel. Espero que esteja percetivel.

Ao fim ao cabo o que pretendo é efectuar a reunião dos dois conjunto de codigos de cliente de forma a que todos os clientes que se encontram nos dois conjuntos fiquem representados e perfeitamente ordenados e que não existam duplicações.

Obrigado pela vossa colaboração.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
McJota



Mensagens : 16
Data de inscrição : 26/10/2012
Idade : 41

MensagemAssunto: Pedido de auxilio   Sab Out 27, 2012 2:36 am

Olá, boa noite!
Insira o seguinte código em um módulo:

Sub Agrupar()
Dim y As String
Dim j As String
Dim t As String
Sheets("Folha1").Activate
Range("A1").Select
Range(ActiveCell.End(xlDown), ActiveCell.End(xlToRight)).Select
Selection.Copy
Sheets("Folha3").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("c1").Select
Selection.EntireColumn = Delete
t = 1
Sheets("Folha2").Activate
Range("a1").Select
While ActiveCell <> ""
Sheets("Folha2").Activate
Range("A" & t).Select
y = ActiveCell.Value
j = ActiveCell.Offset(0, 1).Value
Sheets("Folha3").Activate
With Sheets("Folha3").Range("A:A")
Set c = .Find(y, LOOKAT:=xlWhole)
If Not c Is Nothing Then
c.Select
ActiveCell.Offset(0, 2).Value = j
Else
Range("a1").Select
Do
If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Value = y
ActiveCell.Offset(0, 1).Value = j
End If
End With
t = t + 1
Wend
Application.CutCopyMode = False
Columns("A:C").Select
ActiveWorkbook.Worksheets("Folha3").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Folha3").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Folha3").Sort
.SetRange Range("A:C")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
End Sub

Na Folha3, insira um botão e atribua essa macro a ele.

Abraço....
Voltar ao Topo Ir em baixo
Ver perfil do usuário
 
Pedido de auxilio
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» [PEDIDO]Spirit Level para Wave 533
» [Pedido] Engine de jogo de luta 2D
» [Pedido] trocar a arma em jogo de tiro 2D
» [Pedido]Avatar e Sign
» [Pedido Urgente] Pokemon

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Fórum Excel Bácico, Avançado e Vba :: Avançado/VBA :: Excel Avançado/VBA-
Ir para: