Ir ao conteúdo

Edson Luiz Branco

Membro Pleno
  • Posts

    838
  • Cadastrado em

  • Última visita

Tudo que Edson Luiz Branco postou

  1. É bem provável que seja problema de atualização de driver de vídeo que deve ter ocorrido após essas "mexidas". Para testar reverta ao driver anterior ou entre no Windows no modo de segurança com o mínimo de drivers carregado. Dentro do próprio Office, o modo mais simples de contornar o problema seria desabilitando a aceleração gráfica de hardware: no Excel está em Arquivo>Avançado> seção "Exibir" > marque a caixa "Desabilitar aceleração gráfica de hardware". Porém, como você não consegue ver os menus, tente via teclas de atalho na seguinte sequência dentro do Excel: ALT A, T, A, tecla TAB, W, tecla ENTER. Veja também se esse tópico não te dá uma luz:
  2. Bom dia, @Daniela.Dias Como você gostaria que fosse feita essa checagem? Ao Salvar a pasta, percorrer as linhas que estão incompletas e impedir o salvamento até completar? Ou ao iniciar o preenchimento de uma linha, em qualquer campo que seja, não permitir que outra linha seja iniciada até que a anterior esteja concluída? Quais dos campos são obrigatórios e quais são opcionais?
  3. Bem vindo ao fórum Office do Clube do Hardware, @Eduardo Fernandes Brandão Defina a permissão para usar filtro com True para a planilha ao protegê-la novamente: ActiveSheet.Protect "123abc", AllowFiltering:=True _____________________________________________________ Se me permite, uma sugestão: como seus dados estão num objeto tabela (ListObject para o VBA), utilize fórmulas com Referência Estruturada ao invés de Referências Relativas/Absolutas. Então, ao invés de: =SE(K5="";"";SE(SE(L5="";K5;M5)=HOJE();"VENCE HOJE"; SE(SE(L5="";K5;M5)<HOJE();"ATRASADO"; SE(L5="";K5;M5)-HOJE()&" DIA(S) PARA VENCER"))) Transforme para linguagem de tabela: =SE([@FINAL]="";""; SE(SE([@INICIAL2]="";[@FINAL];[@FINAL3])=HOJE();"VENCE HOJE"; SE(SE([@INICIAL2]="";[@FINAL];[@FINAL3])<HOJE();"ATRASADO"; SE([@INICIAL2]="";[@FINAL];[@FINAL3])-HOJE()&" DIA(S) PARA VENCER"))) Além de ser a forma mais correta de usar fórmulas quando se trata de tabelas, a inserção de novas linhas pelo VBA fica facilitada pois dispõe de um método específico que já aplica corretamente a fórmula às colunas onde for pertinente, inclusive com a formatação zebrada. A linha oculta onde você mantém a fórmula pra ser copiada/colada pode ser então eliminada, pois não é mais necessária. Seu código para o botão "Adicionar Linha" ficaria então assim: Sub Copiar2() ActiveSheet.Unprotect "123abc" ActiveSheet.ListObjects("Tabela1").ListRows.Add ActiveSheet.Protect Password:="123abc", AllowFiltering:=True End Sub
  4. Bom dia, colegas. Pra não precisar criar colunas auxiliares, dá pra usar as funções ÍNDICE e CORRESP ao invés da PROCV (vide anexo). Acessos Refeitório (EdsonBR).xlsx
  5. Bom dia, @beatrizcostacurta Essas fórmulas só dariam certo se você tivesse começado a tabela na coluna B e não na C e também na linha 1 e não na 2. Mova todo o conjunto para o intervalo correto e reaplique as fórmulas ou desloque as referências nas fórmulas para se ajustarem à nova disposição.
  6. Boa noite, @guicrissantos Nesse caso, você pode retornar diretamente o caminho em que sua pasta de trabalho Excel está através da propriedade ThisWorkbook.Path e usá-la, sem precisar ficar informando ao iniciar. Ex.: Sub ExportarHorasNormais() ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=ThisWorkbook.Path & "\" & Range("B31") & "_" & Format(Now, "yyyymmdd_hhmmss"), _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False MsgBox "Relatório de APONTAMENTO DE HORAS salvo com sucesso!", vbOKOnly End Sub
  7. Testei aqui importando seu CSV, onde essa data 01-01-2019 00:00:00 já aparece na primeira linha de dados (célula B2). Se usar a célula K2 pra fazer a subtração com a fórmula = B2 -3/24 o resultado já aparece corretamente como 31/12/18 21:00 Portanto teria que analisar qual fórmula você está usando que está trazendo esse erro.
  8. O colega @deejaywesley tem razão, @heliofernandesch. Para contornar esse problema, use um artifício na fórmula para converter o valor procurado a texto. Em F2 da "Orçam-1.Etapa" teste: =SEERRO(PROCV( "" & E2;Compos.Sinapi!$A$2:$E$10000;2;FALSO);"ERRO")
  9. O que seria, @paulotuca?
  10. Bem vindo ao nosso fórum, @Phernando Machado Só complementando... Uma constante matricial pode ser de uma só coluna ou vetor-coluna (ex: {"Número";8;2;4}), pode também ser de uma só linha, tal como um cabeçalho. Nesse caso é um vetor-linha (ex: {"Número" \ "Letra"\"Cor"}). E finalmente pode ser nas duas dimensões ou matriz (ex.: {"Número"\"Letra"\"Cor";8\"A"\"Azul";2\"B"\"Verde";4\"C"\"Branco"}) Então, respondendo à sua pergunta, a barra invertida delimita ou separa uma coluna de outra numa constante matricial, enquanto que o ponto-e-vírgula separa linhas. Para demonstrar, faça um pequeno teste: Numa planilha vazia, selecione o intervalo A1:C4 Com o intervalo ainda selecionado, insira a seguinte fórmula na célula A1: ={"Número"\"Letra"\"Cor";8\"A"\"Azul";2\"B"\"Verde";4\"C"\"Branco"} Não dê ENTER, mas CTRL SHIFT ENTER (se seu Excel ainda não tiver o recurso de "Despejo", disponível no 365 em diante) Observações: A barra invertida (" \ ") passou a ser usada como separador de coluna no Excel em português à partir do 2007 (ou foi no 2010). Antes era o ponto (" . "), embora um erro (bem antigo por sinal) de tradução do help do Excel afirmasse que deveria ser usada a vírgula (essa é só pro Excel norte-americano) . Já o ponto-e-vírgula como separador de linha é unanimidade tanto entre versões antigas/atuais como em versões locais/estrangeiras.
  11. Boa tarde, @Mark Streuber Qual o conteúdo de C2 e C3? São números inteiros? Se forem texto ou números de ponto flutuante a condição pode não se verificar, mesmo aparentemente atendendo à condição. Por exemplo: se em C2 você tivesse o valor 43,2 e em C3 o valor -43,1, caso você tentasse comparar o valor de C2 + C3 com o resultado 0,1 a comparação falharia (o resultado seria FALSO), pois internamente o resultado da operação estaria dando 0,100000000000001 (devido ao conhecido problema da aritmética de ponto flutuante).
  12. Bem vindo ao fórum Clube do Hardware, @Alexandre F. Possivelmente ninguém respondeu até o momento por não ter entendido seu problema e o que você espera obter. Para facilitar, anexe um modelo com sua dúvida e mostre com detalhes, manualmente mesmo, passo a passo qual a sequência de resultados e a resposta final que você espera obter dos seus dados. Lembre-se que apesar de termos algum conhecimento razoável do Excel, desconhecemos por completo a natureza de seu projeto (pelo menos de minha parte, não entendi o que você espera).
  13. Bem vindo ao fórum Clube do Hardware, @DennerSantos Infelizmente seu arquivo está severamente corrompido de forma que, pelo teste que fiz, nem a ferramenta de reparo nem salvá-lo como .xlsb resolveriam. Veja pela imagem abaixo que a estrutura de seu arquivo contém 5 Workbooks! É como se fossem 5 arquivos Excel dentro de um só, o que obviamente é absurdo por ser impossível. Penso que recriar seu projeto do zero seria a forma mais sensata para eliminar todos esses erros.
  14. Mais uma: Private Sub CommandButton1_Click() Dim rgPerfLam As Range, i As Long With Worksheets("Perfis lam. gerdau") Set rgPerfLam = .Range(.[A4], .[A4].End(xlDown)) End With With Worksheets("calculo") .Range(.[T6], .[T6].End(xlDown)).Resize(, 3).ClearContents Application.ScreenUpdating = False For i = 1 To rgPerfLam.Cells.Count .[H5] = rgPerfLam.Cells(i).Value .[T5].Offset(i, 0) = .[H5] .[T5].Offset(i, 1) = .[M13] .[T5].Offset(i, 2) = .[M5] Next i Application.ScreenUpdating = True End With End Sub
  15. Só uma observação: a função ÚNICO só está disponível à partir do Office 365. Se seu Office for de versões anteriores o erro #NOME? aparecerá na primeira atualização que as células sofrerem.
  16. Boa noite e bem vindo ao fórum do Clube do Hardware, @Lito8581 Manualmente: Selecione o intervalo todo B2:B24...; Tecle F5 > botão Especial ...(Ir Para Especial) ou vá na guia Página Inicial > grupo Edição, clique no botão Localizar e Selecionar e escolha Ir Para Especial... > e escolha a opção "Em branco"; Na célula que ficou ativa (B4), digite a fórmula = B3 (que é a célula acima); Não finalize com ENTER, mas com CTRL ENTER e está feito. Para eliminar as fórmulas que agora não serão mais necessárias, copie todo o intervalo para a Área de Transferência e cole em cima dele mesmo com a opção Colar Especial... > Colar Valores; Opcionalmente você poderia usar uma coluna ao lado, por exemplo "C" e em C3 poderia usar a fórmula =SE(B3="";B2;B3) e arrastar p/ baixo. Depois é só copiar e colar valores sobrepondo-os à coluna B. Feito isso é só eliminar a coluna "C" pois já não é mais necessária.
  17. Boa noite, @paulotuca .xlsm o robô do site não aceita. Mas você pode zipar antes de anexar que vai normalmente.
  18. Boa noite, @SkaterGirl você também pode usar a função SOMA ao invés da adição individual de parcelas. A vantagem é que a função SOMA não gera erro quando as células estão com texto como no seu caso (mesmo sendo uma sequência vazia, "" é considerada como texto: você pode checar isso através da função ÉTEXTO se desejar). Então, ao invés de: =SE(E(E6="";I6="");"";E6+I6) você poderia usar: =SE(E(E6="";I6="");"";SOMA(E6 ; I6)) Pode fazer isso com subtrações também, desde que use apropriadamente o sinal negativo (para o subtraendo, obviamente). Se seu objetivo é apenas não mostrar zero nas células em que o resultado for zero, pode usar formato de número personalizado ou de outra forma desmarcar a opção "Mostrar um zero nas células cujo valor é zero" para a Planilha1 (Arquivo > Opções > Avançado).
  19. Boa noite, @Ozorio Pureza Experimente o atalho de teclado CTRL F1.
  20. Podes formatar a saída da seguinte forma: UserForm2.num_saida2.Text = "NS" & Format(cont, "0000")
  21. em e4 depois arraste: =se(e(d4>=data(ano(d4);mês(d4);21);d4<=(fimmês(d4;0)+20));fimmês(d4;1)+5;fimmês(d4;0)+5) teste, depois dê retorno, ok? Obs.: o robô do Clube do Hardware arbitrariamente tem convertido o que escrevemos em maiúsculas, como as fórmulas do Excel, tudo pra minúsculas. Uma pena. Vai desculpando aí.
  22. Boa tarde, @Jovito Em seu exemplo, por qual motivo você concluiu que o dia de pagamento era dia 05 e não 25 ou outro dia qualquer? E qual o resultado se a data de recebimento não estiver entre o dia 21 de um mês e 20 do próximo? Sempre anexe um modelo com alguns dados preenchidos e já com as respostas desejadas, mesmo que de forma manual, para podermos melhor identificar o raciocínio por trás do problema.
  23. No seu primeiro código seria só alterar de LookAt:=xlWhole, para LookAt:=xlPart
  24. Boa noite, @deejaywesley Naquele trecho, substitua por: ... If Not Intervalo Is Nothing Then Application.Goto .Worksheet.Cells(Intervalo.Row, "J"), True End If ... Ou: ... If Not Intervalo Is Nothing Then .Worksheet.Cells(Intervalo.Row, "J").Select End If ...
  25. Bem vindo à sala Microsoft Office do fórum Clube do Hardware, @FReis Mas de onde vem essa informação? Ela muda o tempo todo variando o que? Dê mais exemplos e detalhes, de preferência anexe um arquivo demonstrando, mesmo que manualmente, desenhando se necessário, como você desejaria que fosse esse menu e qual seria a fonte das opções. Qual a versão do seu Excel?

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!