Ir ao conteúdo
  • Cadastre-se

diego_janjao

Membro Pleno
  • Posts

    629
  • Cadastrado em

  • Última visita

Tudo que diego_janjao postou

  1. @Márcio Rodrigues Muito obrigado. Era exatamente o que eu precisava.
  2. @Márcio Rodrigues é exatamente isso. Muito obrigado pela ajuda. Mas infelizmente, lendo o seu código eu não consegui inseri-lo no meu form: eu gostaria que os números de análises que você fez listar na caixa da direita fossem para a combobox Nº Análises Disponíveis é possível?
  3. Pessoal, bom dia. Estou montando uma planilha para o departamento de Recebimento que também é responsável pelo controle de estoque. Como eles já gravam a quantidade recebida e a quantidade enviada para os setores, fica fácil estipular quanto tem em estoque (Recebido - Enviado). Só que o controle que eu quero fazer é por Número de Análise (número de recebimento, cada recebimento gera um número de análise). Então minha dúvida é, como eu poderia fazer para um formulário popular um combobox somente com os números de análises do produto que ele escolher? Por exemplo, no caso acima, se ele escolher no form "Caixa de Papel Cartão Grande" o combobox deveria listar 0001/19 e 0004/19. Se escolher "Fermento Biológico 500 G" o combobox deveria listar 0002/19 e 0003/19. Alguém pode me ajudar? rec2019.zip
  4. @Roberto Scalli Não sei se entendi bem Mas veja se é isso: Tabela Teste_diegojanjao.xlsx
  5. @Gleidson Passos kkkkkkkkkkk realmente eu escrevi errado! A fórmula não está sendo puxada por causa dos cifrões $, que é o carácter que é utilizado para "travar a fórmula ao ser arrastada". Tire os cifrões antes dos números (linhas) que ao arrastar dará certo: Está assim: =MAIOR('1BIM'!$I$5:$J$5;1) Deixe assim> =MAIOR('1BIM'!$I5:$J5;1) Veja que deixei os cifrões nas letras (colunas) então se você arrastar para os lados, as letras não mudarão.
  6. @Gleidson Passos Pelo o que entendi, a solução é simples. Basta usar o =maior(Aba!células;1). Veja se é isso mesmo: Notas_diegojanjao.xlsx Da forma que está, ele considerará a maior nota entre o TOTAL e RECUPERAÇÃO. se ele tirou 14 no total e 16 na recuperação, a nota geral será 16 se ele tirou 14 no total e 13 na recuperação, a nota geral será 14
  7. Pessoal, tenho o código abaixo, no qual ele copia um arquivo, abre esse arquivo, copia os dados, cola na planilha que estou usando, fecha o arquivo copiado e deleta ele. Como ainda não entendi muito bem como usar o Recurso On Error GoTo, gostaria de pedir essa ajuda: Quando acontecer quaisquer erros, gostaria que ele continuasse a parte de fechar o arquivo copiado e deleta-lo. Pois se não fizer isso, mesmo depois do aviso do erro, quando tentar rodar o código novamente vai dar erro porque o arquivo cópia já existe. Private Sub pesquisar_btn_Click() Const caminho = "\\ln008svr03\processos\Projeto BPF Bonsucesso\10_Recebimento\" Const arquivo = "RO.BN.05_002_Registro de Recebimento 2018.xlsb" Dim arqTemp As Object Dim EmpFound As Range Dim Wb As Workbook Dim copia As Range Application.ScreenUpdating = False On Error GoTo aviso With CreateObject("Scripting.FileSystemObject") If .FileExists(caminho & arquivo) Then .CopyFile Source:=caminho & arquivo, Destination:=caminho & arquivo & "(Cópia)", _ OverWriteFiles:=True Set arqTemp = .GetFile(caminho & arquivo & "(Cópia)") Else Exit Sub End If Set Wb = Workbooks.Open(arqTemp.Path) Wb.Sheets("Registro de Recebimento 2018").Activate With Range("AA8:AA9007") Set EmpFound = .Find(Me.analise_txt.Value) If EmpFound Is Nothing Then MsgBox "NÚMERO DE ANÁLISE NÃO ENCONTRADO", vbCritical, "Cadastro de Não Conformidades" Me.analise_txt.Value = "" Else With Range(EmpFound.Address) Me.codigo_txt = .Offset(0, -22) Me.produto_txt = .Offset(0, -21) Me.forn_txt = .Offset(0, -23) Me.lote_txt = .Offset(0, -20) Me.qtdrecebida_txt = Format(.Offset(0, -14), "#,##0.00") & " " & .Offset(0, -13) Me.qtdrec_txt = Format(.Offset(0, -14), "#,##0.00") Me.nota_txt = .Offset(0, -15) Me.recebimento_txt = .Offset(0, -24) Me.fabricacao_txt = .Offset(0, -18) Me.validade_txt = .Offset(0, -17) Me.undmedida_txt = .Offset(0, -13) Me.pedido_txt = .Offset(0, -11) Wb.Sheets("Fornecedores").Activate With Range("A3:A350") Set EmpFound = .Find(Me.forn_txt) With Range(EmpFound.Address) Me.cnpj_text = .Offset(0, 1) Me.telefone_txt = .Offset(0, 2) Me.contato_txt = .Offset(0, 4) Me.email_txt = .Offset(0, 3) End With End With End With On Error Resume Next On Error GoTo 0 End If Wb.Sheets("Fornecedores").Range("A3:E3").Select Range(Selection, Selection.End(xlDown)).Copy Windows("Gestão de Não Conformidade Externa.xlsb").Activate Sheets("Fornecedores").Select Range("A3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Wb.Activate Wb.Sheets("Fornecedores").Range("G3:S3").Select Range(Selection, Selection.End(xlDown)).Copy Windows("Gestão de Não Conformidade Externa.xlsb").Activate Sheets("Fornecedores").Select Range("F3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Application.DisplayAlerts = False Sheets("RO 14.6 _ 003").Select Wb.Close SaveChanges:=False arqTemp.Delete True End With Set arqTemp = Nothing: Set EmpFound = Nothing: Set Wb = Nothing End With Windows("Gestão de Não Conformidade Externa.xlsb").Activate Application.ScreenUpdating = True Exit Sub aviso: MsgBox "Houve um erro inesperado, favor informar ao responsável!", vbCritical, "Registro de Não Conformidade Externa" End Sub Como poderia arrumar a parte do arqTemp.Delete True?
  8. Para isso basta ajeitar a sua fórmula com um Se, mas fica difícil explicar certinho na sua fórmula pois você não a postou. Resumindo seria mais ou menos assim: =se(A1="NF";0;"") Nas fórmulas para não apontar erros de Excel, usamos o SE ERRO, que consiste em "se acontecer algum erro nessa fórmula, faça isso". SEERRO(se(A1="NF";0;"");"")
  9. @Francisco Moala Já tentou colocar em C1 a fórmula =concatenar("#";A1;"###") ?
  10. @CasaDoHardware funcionou perfeitamente. Obrigado.
  11. @Matheus Sanches Proença o PROCV tem um problema para quando se quer encontrar valores nesse tipo que você quer, ele sempre retornará a primeira resposta encontrada.
  12. eu preciso que seja no VBA apenas para preencher a célula. E não será necessário salvar o arquivo com este formato.
  13. @CasaDoHardware mas eu não estou falando em salvar o arquivo neste formato, o que eu quero é que a célula fique com este formato.
  14. Pessoal, bom dia. Tenho o seguinte problema: Tenho uma planilha de Registro de Não Conformidades Externas e elas são sequenciais mas com 3 dígitos seguidos de barra, ano e o carácter "E" que significa Externa, ou seja, seguem assim 001/18E, 002/18E, 003/18E e etc. No VBA eu estou usando o .Offset para pegar o último registro e adicionar +1 & "/18E", o problema é que ele não considera os 0s a esquerda e deixa no formato "8/18E" ao invés de "008/18E". Como posso contornar isso? Private Sub cadastrar_cb_Click() ActiveSheet.Range("$A$5:$B$350").AutoFilter Field:=1 Range("E4").End(xlDown).Offset(1, 0).Select ActiveCell.Offset(0, -1) = Format(Left(ActiveCell.Offset(-1, -1), 3) + 1, "000") & "/18E" ActiveCell = Date 'ok ActiveCell.Offset(0, 2) = Me.responsaveis_cb.Text ActiveCell.Offset(0, 3) = Me.cargo_txt ActiveCell.Offset(0, 4) = Me.analise_txt.Text ActiveCell.Offset(0, 5) = Me.contato_txt ActiveCell.Offset(0, 6) = Me.forn_txt ActiveCell.Offset(0, 7) = Me.cnpj_text ActiveCell.Offset(0, 8) = Me.telefone_txt ActiveCell.Offset(0, 9) = Me.email_txt ActiveCell.Offset(0, 10) = Me.produto_txt ActiveCell.Offset(0, 11) = Me.lote_txt ActiveCell.Offset(0, 12) = Me.fabricacao_txt ActiveCell.Offset(0, 13) = Me.validade_txt ActiveCell.Offset(0, 14) = Me.codigo_txt ActiveCell.Offset(0, 15) = Me.qtdNC_txt ActiveCell.Offset(0, 16) = Me.undmedida_txt ActiveCell.Offset(0, 17) = Me.recebimento_txt ActiveCell.Offset(0, 18) = Me.nota_txt ActiveCell.Offset(0, 19) = Format(Me.qtdrec_txt, "#,##0.00") ActiveCell.Offset(0, 20) = Me.pedido_txt ActiveCell.Offset(0, 21) = Format(Me.qtdNC_txt, "#,##0.00") ActiveCell.Offset(0, 22) = Me.categoria_cb ActiveCell.Offset(0, 23) = Me.disposicao_cb ActiveCell.Offset(0, 24) = Me.restricao_txt ActiveCell.Offset(0, 25) = Me.numero_cb ActiveCell.Offset(0, 26) = Me.reincidencia_txt ActiveCell.Offset(0, 27) = Me.perdas_txt.Value MsgBox "Cadastro efetuado com sucesso!", vbOKOnly, "Registro de Segregados" End Sub Eu tentei ActiveCell.Offset(0, -1) = Format(Left(ActiveCell.Offset(-1, -1), 3) + 1, "000") & "/18E" mas não funcionou.
  15. @Bruno Cássio Marra verifique se é isso que necessita: MODELO - VALOR GANHO diegojanjao.xlsx
  16. @Wilken Perez Filho O que dá para você fazer é exibir a planilha, rodar o seu evento, e no final colocar para ocultá-la novamente, aí para não mostrar o processo é só usar o Application.ScreenUpdating = False
  17. https://www.aprenderexcel.com.br/2013/planilhas/planilha-controle-de-estoque
  18. @Edson Luiz Branco funcionou perfeitamente! Muito obrigado pela ajuda!
  19. @Edson Luiz Branco bom dia. Quando ele está em outra máquina aberto funciona perfeitamente, pois o que ele faz é abrir o arquivo como somente leitura, pega os dados, fecha a planilha de recebimento sem salvar e tá tudo certo. Esqueci de mencionar que no fim do meu evento ele fecha o Wb mas enfim. Se eu estiver com o recebimento aberto sem modificações, ele considera o Workbook.Open já concluído, copia e fecha. Mas se tiver alguma modificação vai aparecer a mensagem conforme a imagem 1. Pensando agora, acho que fica difícil abrir como somente leitura de já estiver aberto porque já terá um arquivo (editável que eles usam) aberto para lançar os recebimentos. Será se não dá pra, via VBA, eu criar uma cópia de Recebimento, abrir essa cópia, pegar os dados, fechar a cópia e apagar a cópia?
  20. Pessoal, boa noite. Eis que tenho a seguinte situação: Tenho uma planilha (Materiais Segregados) que busca os dados em outra (Registro de Recebimento), e para que não fique cheia de links externos eu uso um copiar colar por .Offset no VBA. O que acontece: As vezes o usuário que está usando a planilha de Recebimento também fará o uso da Planilha de Segregados mas quando isso ocorre, aparece a seguinte mensagem: Caso clique em sim, perderá tudo o que estava fazendo no Recebimento, caso clique em Não, acaba abrindo o depurador (Ainda não aprendi usar o On Error GoTo). A solução que eu tentei foi a seguinte: Usar o ReadOnly: = True no comando Workbooks.Open mas não funcionou: Private Sub pesquisar_btn_Click() Dim EmpFound As Range Dim Wb As Workbook Application.ScreenUpdating = False Set Wb = Excel.Application.Workbooks.Open("\\ln008svr03\processos\Projeto BPF Bonsucesso\10_Recebimento\RO.BN.05_002_Registro de Recebimento 2018.xlsb", ReadOnly:=True) Wb.Sheets("Registro de Recebimento 2018").Activate Alguém pode me ajudar a contornar isso?
  21. @João Paulo Rufino , copie e cole essa fórmula =SOMASES(Painel!$I:$I;Painel!$C:$C;$B6;Painel!$A:$A;">=" & C$3;Painel!$A:$A;"<="&C$4) Na célula C6 da aba de despesas e aperte enter, depois utilize o preenchimento para a direita, e depois para baixo.
  22. @Kadu Du tente dessa forma: =SE(E(B2>=3000;B2<>"");10;SE(E(B2>=2800;B2<3000);8;SE(E(B2>=2600;B2<2800);6;SE(E(B2>=2400;B2<2600);4;0))))
  23. Era exatamente isso, @Basole ! Mais uma vez, muito obrigado. Vou analisar o código VBA e ver como foi feito.
  24. boa noite, @Basole . Por algum motivo o arquivo quando está sendo salvo, não está copiando o intervalo das inputboxes. Está copiando todos os dados da planilha.
  25. @Basole , sim. Essa parte eu aprendi em uma outra ocasião a qual você mesmo me ajudou. O problema é que até onde eu sei, não consigo imaginar como fazer para copiar somente entre este período das inputboxes.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!