Notifications
Clear all

Planilha de controlo de stock (fase final) codigos com erro

22 Posts
2 Usuários
0 Reactions
4,985 Visualizações
(@ricardo_mcs)
Posts: 16
Active Member
Topic starter
 

Bom dia,

Precisava de uma ajuda no codigo VB da folha excel em que estou a trabalhar isto e um trabalho que ja ando a desenvolver a um mes para a empresa que trabalho .

Eu nao entendo mt de codigo VB, tinha uma pessoa amiga que me estava a ajudar mas entretanto começou a trabalhar e nao pode mais ajudar-me.

como podem ver na imagem o que eu preciso acho que sera bastante facil para voces "gurus do VB".

Qualquer informaçao extra que seja necessario por favor avisem

agradeço a vossa ajuda se poderem

Rsilva

 
Postado : 05/11/2012 5:40 am
(@ricardo_mcs)
Posts: 16
Active Member
Topic starter
 

Ca vai o ficheiro zipado.

Desculpem se é regra é para cumprir.

Rsilva

 
Postado : 20/11/2012 10:11 am
(@ricardo_mcs)
Posts: 16
Active Member
Topic starter
 

Ola a todos,

Mais um update, ja esta a começar a funcionar melhor

neste momento so o acabamnento funciona a 100% na pesquisa

se preenchermos algum valor nas restantes colunas da erro "type mismatch"

possivelmente tera que se fazer no codigo alguma alteraçao para que o resto nao de erro, e a pesquisa seja faita com todos os procedimento correctos.

quem poder que me de uma ajuda, ja esta quase a ficar pronto.

obrigado a todos pela ajuda

Rsilva

 
Postado : 21/11/2012 10:37 am
(@ricardo_mcs)
Posts: 16
Active Member
Topic starter
 

ola pessoal alguem me pode dar mais uma ajudita estou encravado no codigo.

Erro "type mismatch" ao procurar outros items se sem acabamento.

mt obrigado

rsilva

 
Postado : 26/11/2012 3:18 am
(@ricardo_mcs)
Posts: 16
Active Member
Topic starter
 

ola pessoal

So me falta por isto a funcionar
o codigo apenas pesquisa por "acabamento" os restantes da ero "Type mismatch"

Sub insertsearch(sh As Worksheet, y As Long, x As String, tipo As String, refprod As String, prod As String, cod As String, acab As String, cor As String, lote As String, loc As String, forn As String)
Dim fc As Range, lc As Long, op As Long, i As Long
With sh 'with the worksheet whose name is equal to the value selected in the machine combobox in cell a5
    'if the number of times that the value x (defined above based on cell filled in)
    'is found in the column y (defined above) more than 0 times then
    If WorksheetFunction.CountIf(.Columns(y), x) > 0 Then
        Set fc = .Cells(2, 1)   'set fc equal to cell in row 2, column y(defined above)
            Range("U7").Value = WorksheetFunction.CountIf(.Columns(y), x)
            'loop through LC from one to the number of time x (defined above) appears in column y(defined above)
            For lc = 1 To WorksheetFunction.CountIf(.Columns(y), x)
            
                'reset fc to the found cell in column y (defined above) whose value is equal to x (defined above)
                     Set fc = .Columns(y).Find(what:=x, After:=fc(1, 5), _
                                                LookIn:=xlValues, lookat:=xlPart, SearchOrder:=xlByRows, _
                                                SearchDirection:=xlNext, MatchCase:=False).Offset(, -y + 1)

                    'when a value is found provide a message box listing the record found to make sure it is the correct record
                    If UCase(fc(1, 1)) Like UCase(tipo) And UCase(fc(1, 2)) Like UCase(refprod) And UCase(fc(1, 3)) Like UCase(prod) And UCase(fc(1, 4)) Like UCase(cod) And UCase(fc(1, 5)) Like UCase(acab) And UCase(fc(1, 6)) Like UCase(cor) And UCase(fc(1, 7)) Like UCase(lote) And UCase(fc(1, 8)) Like UCase(loc) And UCase(fc(1, 9)) Like UCase(forn) Then
                            Cells(linhas, 1).Value = sh.Name
                        For i = 1 To 18 'loop through the variable i from numbers 1 To 18 (represents column numbers)
                            'distribute the found information accordingly to row 2 of the Stock worksheet
                            Cells(linhas, i + 1) = .Cells(fc.Row, i)
                        Next i  'move to next i in the i loop

                        linhas = linhas + 1
                    
                    End If
                    
            Next lc 'move to next lc in the loop
            Range("U5").Value = linhas
    ElseIf x = "nada" Then
            MsgBox "Preencha no minimo um campo para iniciar a pesquisa.", vbOKOnly, "Nada"  'if no value is found the msgbox part not available
        
    End If

End With

End Sub

agradeço a ajuda um abraço

rsilva

 
Postado : 28/11/2012 10:56 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

rsilve, o problema maior é estar procurando em varias abas por dados diversos em colunas diversas, é necessário algum tempo para ir analizando a rotina por parte.

Não sei como é feito os Lançamentos, mas uma sugestão e ficaria bem mais simples a rotina seria juntar todas as abas em uma só, e adicionar uma nova coluna referenciando os armazens.

Pense nisto.

Por hora é só ter paciencia.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 28/11/2012 5:50 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

ricardo, estive olhando o seu post no forum abaixo :

vbforums
http://www.vbforums.com/showthread.php? ... few-tweaks)

E em um teste, tocando a linha :

                'reset fc to the found cell in column y (defined above) whose value is equal to x (defined above)
                'Set fc = .Columns(y).Find(what:=x, After:=fc(1, 5), _
                                                LookIn:=xlValues, lookat:=xlPart, SearchOrder:=xlByRows, _
                                                SearchDirection:=xlNext, MatchCase:=False).Offset(, -y + 1)

Pela :

                'reset fc to the found cell in column y (defined above) whose value is equal to x (defined above)
                Set fc = .Columns(y).Find(what:=x, After:=fc, _
                                                LookIn:=xlValues, lookat:=xlPart, SearchOrder:=xlByRows, _
                                                SearchDirection:=xlNext, MatchCase:=False)

Eu adicionei nas outras abas dados iguais e selecionei :
TIPO DE PRODUTO - MATERIA PRIMA
REFERENCIA PRODUTO - CALCARIO
e ACABAMENTO - LEATHER

E a rotina listou todos referentes as abas que adicionei, não sei ao certo se é isto o que pretende, mas faça um teste alterando a linha acima.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 28/11/2012 6:23 pm
(@ricardo_mcs)
Posts: 16
Active Member
Topic starter
 

Ola Mauro

Ja testei o codigo acima e funciona, mas a um promenor que ainda nao funciona que é o seguinte,

se eu selecionar apenas um item do "acabamento" este sozinho nao funciona imagine que quero procurar apenas por leather e que o resultado seja apenas todos o stock que tenha leather

a idea seria fazer pesquisa livre em qualquer um dos campos, pesquisar por exemplo por tipo de produto e ele devolver esse stock do tipo de produto

ja estamos perto de finalizar

obrigado

eu ja ando a pesquisar em varios forums para ver se termino isto

http://www.excelforum.com/search.php?searchid=516953

http://www.vbforums.com/showthread.php?697283-Stock-control-working-with-vb-code-%28almost-done-just-a-few-tweaks%29

http://forums.codeguru.com/forumdisplay.php?4-Visual-Basic-6.0-Programming

http://www.xtremevbtalk.com/forumdisplay.php?f=78

 
Postado : 29/11/2012 3:15 am
Página 2 / 2