Notifications
Clear all

Ajuda em codigo VBA

21 Posts
3 Usuários
0 Reactions
3,941 Visualizações
(@coiote_25)
Posts: 42
Trusted Member
Topic starter
 

Boa tarde, caros amigos...

Espero que me consigam ajudar e quero agradecer a todos a vossa colaboração com os mais leigos nesta matéria.

Já expus o meu "problema" num outro fórum mas ainda não obtive nenhuma resposta.

"Tenho uma folha de cálculo, do genero de uma base de dados, onde foram registadas cerca de 18.000 peças. Porém uma vez que cerca de metade dessas peças já não existem no nosso stock (Porque foram fundidas/Vendidas ou se encontram em exposição), pretendemos re-catalogar as caixas com as peças existentes e re-numerar as peças que se encontram nessas caixas.

De forma a que este trabalho fosse cumprido no timing estipulado/imposto, pelos nossos superiores, a nossa chefe solicitou a ajuda de 4 colaboradores para esta tarefa, sendo atribuidas cerca de 25 caixas por pessoa. Até aqui tudo bem, o problema é que estes não tiveram a preocupação de levarem uma numeração com sequência e agora isto está uma confusão!

Suponhamos que numa determinada caixa nº X continha n peças, com a respetiva numeração anterior 1005;1006;1007;1008;1009;1010...n

A pessoa que re-numerou esta caixa atribuiu por exemplo a seguinte numeração:

Nova numeração --------Numeração anterior
peça nº 25----------------1007
peça nº 26----------------1010
peça nº 27----------------1005
peça nº 28----------------1008

Ou seja não teve o cuidado de dar a cara com a careta e não pegou nas peças de uma forma sequencial, isto é:

Nova numeração --------Numeração anterior
peça nº 25-- -------------1005
peça nº 26----------------1006
peça nº 27----------------1007
peça nº 28----------------1008

Este deveria ter sido o método de trabalho, certo?

Bom como isso não aconteceu, agora resta-me tentar corrigir essa falha e colmatar a lacuna cometida aqui na folha de cálculo, pois só tenho até ao final da semana para colocar todos os registos efetuados pelos meus colegas.

Para isso estou a utilizar o PROCV o problema está no facto de serem quase 18000 peças, o que torna o PROCV muito lento e inclusivé o excel e o próprio windows deixa mesmo de responder e eu tenho que reiniciar o computador.

Vou enviar o arquivo com as respetivas fórmulas o que ajuda a compreender o que eu pretendia que o VBA fizesse,

Reparem no ficheiro em anexo (*.pdf) que não existe uma sequência lógica na numeração. Esta ia sendo feita aleatóriamente à medida em que pegavam nas peças. Os números impressos são a numeração atual, e os manuscritos dizem respeito à numeração anterior.

http://www.4shared.com/rar/KRKOkvAK/Ficheiros.html

Obrigado por tudo e espero que compreendam o que é pretendido.

Cumprimentos

 
Postado : 07/12/2012 12:39 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

É sempre bom mostrar a postagem cruzada..

http://profwillianexcel.forumeiros.com/ ... ina-em-vba

Em outros foruns isso é regra.
Att

 
Postado : 07/12/2012 12:45 pm
(@wilmarleal)
Posts: 186
Estimable Member
 

anexa, parte da planilha, fica mais facil pra obter resposta, abrç

 
Postado : 07/12/2012 12:48 pm
(@coiote_25)
Posts: 42
Trusted Member
Topic starter
 

Obrigado williwam, para a proxima vou estar mais atento. Eu julgo que anexei a folha de calculo e o respetivo pdf, certo? Fico a aguardar as vossas sugestões e entretanto vou fazendo isto de uma forma pouco eficaz...

Obrigado a todos.

Noel

 
Postado : 07/12/2012 1:40 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Foi vc que me mandou um email, se foi veja
http://www.sendspace.com/file/31k0sb

Att

 
Postado : 07/12/2012 1:45 pm
(@coiote_25)
Posts: 42
Trusted Member
Topic starter
 

Boas, pessoal da barra!!!

Quero agradecer-lhe imenso a sua ajuda na resolução deste meu problema. Era mesmo isto que eu estava a precisar.

Posso perguntar (ou melhor, pedir) mais uma coisa? Tem como inserir um código VBA que permita fazer a pesquisa imediatamente a seguir ao valor digitado? Isto é, eu digito o valor (por ex: 1235) e depois de clicar em enter o código vai fazer a busca automática sem ter que clicar no botão que voçê atribuíu?

1001 Obrigados por tudo...

Continuem com o vosso bom trabalho e partilha de conhecimentos e de informação...

Carlos Noel

 
Postado : 08/12/2012 12:09 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Veja se vai dar certo!!!

Sub AutPROCV_AleVBA()
    Dim lr As Long
    With Sheets("NOVA.B.D")
        lr = .Cells(.Rows.Count, "B").End(xlUp).Row 
        With .Range("C2:H" & lr)
            .Formula = "=IF($B2<>"""",VLOOKUP($B2,BASE.DADOS.ANTIGA!$A$2:$G$16980,COLUMN()-1,0),"""")"
            .Value = .Value
        End With
    End With
End Sub

 
Postado : 08/12/2012 7:23 pm
(@coiote_25)
Posts: 42
Trusted Member
Topic starter
 

Bom dia Alexandre.

Obrigado pela sua disponibilidade e prontidão em ajudar-me.

Não consegui fazer com que este código. Copiei e colei num novo modulo, mas não funcionou. O que é que estou a fazer de errado?

Grato por tudo...

Noel

 
Postado : 09/12/2012 4:44 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Baie e veja se é isso, faça todos os teste possíveis.
http://www.sendspace.com/file/dcgp7i

Att

 
Postado : 09/12/2012 7:36 am
(@coiote_25)
Posts: 42
Trusted Member
Topic starter
 

Boa noite Alexandre...

Estive a testar a folha de cálculo e até ao momento está a funcionar muito bem. Era mesmo isto que eu pretendia.

Amanhã vou estar todo o dia a inserir dados e depois digo mais alguma coisa.

Mais uma vez obrigado por tudo, e muito sinceramente não sei como posso agradecer.

Cumprimentos,

Noel

 
Postado : 09/12/2012 6:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Eu fico grato pelo retorno, assim que finalizar os teste, lembre se de marcar sua postagem como Resolvido, obrigado!!

Att

 
Postado : 09/12/2012 6:22 pm
(@coiote_25)
Posts: 42
Trusted Member
Topic starter
 

Boa noite, ilustres gurus do excel (+VBA)

Se não for muito inconveniente, gostaria que me ajudassem, caso seja possível, numa possivel rotina que copie para uma nova folha determinado intervalo (registos) definido pelo usuário.

Imagino algo neste género: um botão que ao ser clicado faria o seguinte: 1º pergunta ao utilizador qual o intervalo de registo a copiar (o utilizador digita por exemplo o registo 8 até ao 16), a macro procura e selecciona as células (linhas) que contenham o registo [8;9;10;11;12:13;14;15;16], copia e cola numa nova folha, de forma a que eu possa definir a localização das peças catalogadas, nas respetivas caixas.

Observem por favor a folha "CAIXA 1" este é o layout final pretendido.

http://www.4shared.com/rar/DIp_KDsQ/PRO ... _Cpia.html

Alexandre um muito obrigado pela sua macro elaborada anteriormente, está a funcionar perfeitamente e já inseri cerca de 7000 registos.

Um grande louvor para voçês todos que fazem parte deste forum e que ajudam os que tem menos conhecimentos...

 
Postado : 11/12/2012 7:27 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Eu me lembro de ter postado algo muito próximo do que precisa, use a pesquisa do fórum!!

Att

 
Postado : 11/12/2012 7:37 pm
(@coiote_25)
Posts: 42
Trusted Member
Topic starter
 

Bom dia Alexandre,

estive a pesquisar no forum e não consegui encontrar o que eu pretendo.

Será que me consegue orientar?

Um muito obrigado...

 
Postado : 12/12/2012 4:22 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Cara eu não sei se vi é o suficiente...

Sub Copiar_InputBox()
'Na cixa de entrada deve ser posto o destino onde o mesmo
'deve ser do mesmo tamanho que o de origem, caso contrário haverá erro
Dim IB As String
IB = Application.InputBox("Entre com a célula ou intervalo de destino", "Copiar Células")
Selection.Copy Destination:=Range(IB)
End Sub

Att

 
Postado : 12/12/2012 6:30 am
Página 1 / 2