Ir ao conteúdo
  • Cadastre-se

Edson Luiz Branco

Membro Pleno
  • Posts

    844
  • Cadastrado em

  • Última visita

Tópicos solucionados

  1. O post de Edson Luiz Branco em VBA - Inserir/somar valores dentro de celular foi marcado como solução   
    x = 100 With ActiveSheet.Range("C5") .Formula = .Formula & "+" & x End With  
  2. O post de Edson Luiz Branco em Como criar arquivos independentes em PDF, gerados por mala direta do Word foi marcado como solução   
    Bom dia, @André Rache
     
    Não estou seguro que no recurso de Mala Direta o Word tenha essa funcionalidade disponível. De qualquer forma, segue uma solução via macro.
    Mescle os registros todos num Documento só (guia Correspondências > grupo Concluir > botão Concluir e Mesclar > Editar Documentos Individuais... > opção mesclar Todos os registros)
    Abra o editor do VBA nesse documento (Alt F11) e num novo módulo Standard cole o seguinte código e adapte apontando a constante Caminho para uma pasta onde você quer salvar os arquivos individuais e execute o código.
    Sub SalvaPDFsIndividuais() Const Caminho = "C:\Users\SeuNomeUsuário\Desktop\PDFs\" Dim i As Long For i = 1 To ThisDocument.Range.Information(wdNumberOfPagesInDocument) ThisDocument.ExportAsFixedFormat OutputFileName:=Caminho & "Arquivo " & i, _ ExportFormat:=wdExportFormatPDF, _ Range:=wdExportFromTo, From:=i, To:=i Next i End Sub Obs.: estou supondo que você tenha o Office 2016 ou superior.
  3. O post de Edson Luiz Branco em cont.ses com variavel de =hoje foi marcado como solução   
    Boa tarde, @lauvirjr
    "<" & TEXTO(HOJE()-1;"AAAA-MM-DD hh:mm:ss") & ".0000" Esteja prevenido que sua fórmula traz como resultado os itens que atendem ao critério de comparação ( < ) entre texto-e-texto e não entre data-e-data, pois os dados da coluna D não são números seriais de Data/Hora e sim textos (o separador decimal dos segundos é  um ponto e não uma vírgula).
  4. O post de Edson Luiz Branco em Problemas com a função "=Filtro" no Excel 2019 foi marcado como solução   
    Olá, @PedroHPSantos
     
    Conforme descrito no Help da função (FILTRO (Função FILTRO)), infelizmente essa função e as outras funcionalidades referentes às Matrizes Dinâmicas (Despejo, funções Único, Classificar, ProcX, etc.) só estão disponíveis no Office 365 e aos participantes do Office Insider por enquanto.
    Sei que é frustrante, mas mantenha a esperança. A dica é manter sempre seu Office com as mais recentes atualizações (Arquivo > Conta > Atualizações do Office). Vai que uma hora eles liberam.
  5. O post de Edson Luiz Branco em Exibir somente uma palavra desejada foi marcado como solução   
    Bem vindo, @brenohuff
     
    Uma dica: como sua dúvida já foi respondida em outro fórum e você deu-se por satisfeito com a solução proposta (Exibir somente uma palavra desejada dentro da mesma linha [Resolvido]), teria sido importante no mesmo instante ter postado aqui a solução ou pelo menos não ter deixado este tópico em aberto.
    Assim, quem se dispõe a ajudar neste fórum poderá investir seu tempo se concentrando em outros tópicos ainda sem solução. 😉
  6. O post de Edson Luiz Branco em quebra de linhas dentro vba foi marcado como solução   
    Bem vindo, @djacy.neto
     
    Tente assim:
    .Introduction = "Bom dia!" & vbCrLf & "Segue Teste de envio por macro parte 1."  
  7. O post de Edson Luiz Branco em extrair para outra aba com criterio foi marcado como solução   
    Bom dia, @Leandro Cavalari
     
    Pelo que entendi, a Plan10 será o resumo das Plan1 a Plan9, correto?
    Estou supondo ainda que na coluna A da Plan10 estarão as sequências da Plan1, na B as da Plan2, e assim por diante.
    Se for isso, na Plan10 você poderia usar a seguinte fórmula na célula A1 e arrastar pra direita e depois pra baixo:
     
    =INDIRETO("Plan" & (COL(B:B)-COL($A:$A)) & "!D" & (20*(QUOCIENTE(LIN(1:1)-LIN($1:$1);4))+MOD(LIN(1:1)-LIN($1:$1);4)+15)) Se não for isso, anexe um modelo detalhando exatamente sua necessidade.
  8. O post de Edson Luiz Branco em Problemas no preenchimento de formulários no Word foi marcado como solução   
    Boa tarde, @João Prioli, bem vindo ao fórum.
     
    O problema é que seu documento está com a Restrição de Edição configurada como "Sem alteração (somente leitura)"  (ProtectionType do objeto Document está como wdAllowOnlyReading) e não como "Preenchendo Formulários" (wdOnlyFormFields) que seria a correta para essa finalidade (guia Desenvolvedor > Restringir Edição).
     
    Agora isso que você citou abaixo acho meio improvável...
     
    Então ou você recebeu um arquivo diferente dos demais ou essas outras pessoas estão marcadas como usuários nas "Exceções", com permissões especiais, mas não vejo muito sentido nisso quando se trata de um simples formulário de preenchimento desses.
     
    As macros que estão no documento só servem para popular as Caixas de Combinação e seriam até mesmo desnecessárias se fosse usada a propriedade do próprio controle. Isso significa que não há nenhuma macro bloqueando sua edição.
     
    Verifique com quem criou o Formulário para alterar essa restrição que voltará a funcionar.
  9. O post de Edson Luiz Branco em Mudar variável VBA conforme a linha de cálculo foi marcado como solução   
    Bom dia, @Carolina Nemeth
     
    Em primeiro lugar, no início da UDF, use Application.Volatile para que sua function responda imediatamente  quando os valores forem alterados na coluna F.
    E finalmente, para atribuir à variável n o valor da coluna F da mesma linha, pode ser usado o seguinte:
    Function calculaB(dp As Single, ip As Single, qp As Single) As Variant Application.Volatile ... ... With Application.ThisCell n = .Worksheet.Range("F" & .Row).Value End With ... ... End Function  
  10. O post de Edson Luiz Branco em Como colocar SOMA e SUBTRAÇÃO na mesma fórmula? foi marcado como solução   
    Várias possibilidades, @lcscabral
     
    =SOMA(F7:H7)-SOMA(I7:J7) ou simplesmente:
     
    =F7 + G7 + H7 - I7 - J7  
  11. O post de Edson Luiz Branco em Macro para mostrar planilha ocultas sem reexibir foi marcado como solução   
    Bom dia, @Paloma Brito
     
    Na verdade seu Dashboard não precisaria ser feito com VBA, daria pra usar fórmulas tranquilamente, e sem necessidade de ter uma dash por mês... Maaaas, como você já possui as planilhas mensais e como eu já estava com a mão na massa, analise o anexo.
    Detalhe: considerei que a opção "Executar" seja a da Dashboard central. Também que, ao escolher um mês que não tem Dash, volte à Dash central.
    DASHBOARD DE RECRUTAMENTO.zip
  12. O post de Edson Luiz Branco em Excel tocar música ao abrir planilha foi marcado como solução   
    Bom dia, @diego_janjao!
     
    Ficaram faltando duas coisas naquela linha: qualificação do objeto e atribuição correta da propriedade Url. Substitua
     
    WindowsMediaPlayer1.URL (ThisWorkbook.Path & "\music.aac")
     
    Por
     
    Plan1.WindowsMediaPlayer1.URL = (ThisWorkbook.Path & "\music.aac")
     
    Faça um teste...
  13. O post de Edson Luiz Branco em VBA - Criando Array Dinamico e Eliminando Posições com valor igual foi marcado como solução   
    Redimensione a matriz em tempo de execução. Use Preserve para manter os valores já inseridos (senão a cada ReDim os valores serão apagados):
    Dim FolArray() As String, i As Long For i = 1 To 5 ReDim Preserve FolArray(1 To i) FolArray(i) = "Qualquer coisa " & i Next i Para não haver repetição, a cada inclusão você teria que fazer um loop pelos elementos para checar se ele já existe. Se forem muitos itens ou muito frequente o uso, muito melhor seria usar um Dictionary (da biblioteca Microsoft Scripting Runtime) pois ele tem uma propriedade .Exists que lhe permite checar se um elemento já está na coleção.
  14. O post de Edson Luiz Branco em Como arredondar para final 0 ou 5 no excel números com finais específicos foi marcado como solução   
    Bem vinda, @Kamila Petzold
     
    Acho que o mestre @Patropi pensou numa função e acabou escrevendo outra, afinal ele não costuma errar esse tipo de coisa... ... A função que mais se enquadraria nesse seu caso específico penso que seria a MARRED. Em G6:
    =MARRED(SOMA(C6:F6);5)  
  15. O post de Edson Luiz Branco em Hiperlink que siga uma célula foi marcado como solução   
    Bom dia, @Igor Pinheirode Medeiros
     
    Nomeie a célula a ser "perseguida" antes: estando com ela selecionada, digite um nome válido na Caixa de Nomes (canto superior esquerdo, acima dos cabeçalhos de coluna) ou na guia Fórmulas > grupo Nomes Definidos > Definir Nome; Supondo que o nome escolhido tenha sido CélulaAlvo, é só usar a fórmula HIPERLINK, algo como: =HIPERLINK("#CélulaAlvo";"Perseguir a célula") Agora, mesmo movendo a célula o Excel a acompanha; Também daria pra usar a função INDIRETO junto com HIPERLINK, mas penso ser uma complicação a mais, desnecessária portanto, além do que é uma função volátil e em planilhas maiores causa lentidão.
  16. O post de Edson Luiz Branco em macro localizar e substituir foi marcado como solução   
    Boa tarde, @Muca Costa
     
    Tente assim:
    Sub Substituir() Dim arrayPalavras As Variant, i As Integer arrayPalavras = Array("RTSum ", "RTord ", "RTAlç ", "ET ", "Caixa", "Condenação", "Rural", _ "Causa", "Econômico", "^g", "Ocupacional", "Indireta", "Trabalho", _ "Horas Extras", "Dano Moral", "Rescisória", "Acidentária", "Periculosidade", _ "Reavaliação", "Alimentação", "Ilegalidade", "Relação de Emprego", "CLT", _ "Recolhimento", "Retificação", "Estabilidade", "Terceirização", "Dono da Obra", _ "Material", "Insalubridade", "Norma Coletiva", "Coletiva", "Processos - Minutar sentença", _ "Processo", "Pendente", "desde", "Reintegração") With ThisDocument.Content.Find .ClearFormatting .Replacement.ClearFormatting .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False For i = 0 To UBound(arrayPalavras) .Text = arrayPalavras(i) .Replacement.Text = "" .Execute Replace:=wdReplaceAll Next i End With MsgBox "Substituições finalizadas" End Sub  
  17. O post de Edson Luiz Branco em mala direta: problema com mergefield foi marcado como solução   
    Bom dia, @lHenrique_10
     
    Quando você dá um Visualizar impressão fica correto?
     
    Certifique-se que a opção em Arquivo>Opções do Word>Avançado> sob "Mostrar o conteúdo do documento"  > "Mostrar códigos de campo em vez de seus valores" esteja desmarcada.
     
  18. O post de Edson Luiz Branco em Como inserir PROCV (ou outra fórmula) com mais de uma condição? foi marcado como solução   
    olá, colega @lhenrique_10
     
    enquanto não surge uma ideia com uma fórmula mais enxuta, por enquanto veja se essa matricial é suficiente ao propósito.
    insira na d2: =se(soma(1*((ext.texto(substituir(c2;",";"");lin($1:$6);1))="1"))=1;$g$3&caract(10);"") & se(soma(1*((ext.texto(substituir(c2;",";"");lin($1:$6);1))="2"))=1;$g$4&caract(10);"") & se(soma(1*((ext.texto(substituir(c2;",";"");lin($1:$6);1))="3"))=1;$g$5&caract(10);"") & se(soma(1*((ext.texto(substituir(c2;",";"");lin($1:$6);1))="4"))=1;$g$6&caract(10);"") & se(soma(1*((ext.texto(substituir(c2;",";"");lin($1:$6);1))="5"))=1;$g$7&caract(10);"") & se(soma(1*((ext.texto(substituir(c2;",";"");lin($1:$6);1))="6"))=1;$g$8&caract(10);"") finalize com ctrl+shift+enter depois arraste não esqueça de formatar a célula para quebrar texto automaticamente  
     
    teste - cdh (1).xlsx
  19. O post de Edson Luiz Branco em EXCEL, Mudar Fonte de cor com macro. foi marcado como solução   
    Reprodução da resposta a esta pergunta dada na Comunidade do Hardware, tópico, Como mudar a cor da fonte de apenas 1 palavra
    Sub FormataNúms() Dim rg As Range, c As Range, m As Object Set rg = Application.InputBox(Prompt:="Selecione as células", Title:="Formatar Números", Type:=8) With CreateObject("VBScript.Regexp") .Pattern = "\d+": .Global = True For Each c In rg For Each m In .Execute(c.Value) With c.Characters(Start:=m.FirstIndex + 1, Length:=m.Length) .Font.Color = vbRed: .Font.Bold = True End With Next m Next c End With End Sub
  20. O post de Edson Luiz Branco em Escolher menor número, que nunca foi usado foi marcado como solução   
    Mais uma fórmula, também matricial (CTRL+SHIFT+ENTER para finalizá-la):
     
    =MÍNIMO(SE(NÃO(CONT.SE(E1:E7;G1:G7));G1:G7;""))  
  21. O post de Edson Luiz Branco em Separar dados de uma coluna foi marcado como solução   
    Boa noite, @BernardorValle
     
    Use essas fórmulas nas células em:
     
    H5:  =ÍNDICE($B$4:$B$15;3*(LIN($B4)-LIN($B$4)) +1 ;1)
     I5 :  =ÍNDICE($B$4:$B$15;3*(LIN($B4)-LIN($B$4)) +2 ;1)
     J5:   =ÍNDICE($B$4:$B$15;3*(LIN($B4)-LIN($B$4)) +3 ;1)
     
    Depois clique e arraste cada fórmula para baixo.
     
    Também dá pra fazer usando uma só fórmula para uma linha de dados, mas na forma matricial. Faça o seguinte:
     
    1) Se seu Excel for mais novo (2013, 2016) em H5 insira a fórmula:
        =ÍNDICE($B$4:$B$15;3*(LIN($B4)-LIN($B$4)) + {1\2\3} ;1)
    Se for mais antigo, use:
       =ÍNDICE($B$4:$B$15;3*(LIN($B4)-LIN($B$4)) + {1.2.3} ;1)
    2) Selecione o intervalo H5:J5
    3) Pressione a tecla de função F2
    4) Finalize com CTRL+SHIFT+ENTER (tudo junto).
    5) Arraste para baixo.
     
    No anexo estão exemplificadas as duas formas.
    Ex Duvida.xlsx
  22. O post de Edson Luiz Branco em Parcela mensal vencendo dia 29 foi marcado como solução   
    Bem vindo, @rafaelmarta
     
    Talvez você não tenha percebido, mas isso não aconteceu somente nas parcelas de fevereiro/março mas em outras também: veja entre as parcelas 9 e 10 (outubro/novembro de 2018) e  entre 16 e 17 (julho/agosto de 2019) que também ocorre esse problema ou seja, sempre que o dia útil do vencimento anterior cai no início do mês seguinte e não no final do mês anterior.
    Penso que melhor seria você propagar as demais parcelas com base sempre na data inicial e não na data de vencimento imediatamente anterior.
    Sugestão: em insira em B4 e depois arraste:
    =DIATRABALHO((DATAM($B$3;LINS($B$3:B3))+(DIA(FIMMÊS($B$3;LINS($B$3:B3)))=28))-1;1)  
  23. O post de Edson Luiz Branco em Criar fórmula no excel com células dependentes uma da outra foi marcado como solução   
    Bem vindo ao fórum, @Jukafrr
     
    Não dá pra fazer por fórmula pelo simples fato de que uma das fórmulas teria que ser sacrificada para dar lugar ao valor inserido pelo usuário.
    Mas dá pra fazer por VBA. Por exemplo, clique com o botão direito da "orelha" da Plan1, escolha "Exibir Código" e cole as seguintes linhas no editor:
    Private Sub Worksheet_Change(ByVal Target As Range) Dim x As Variant: x = Target.Value If Not IsNumeric(x) Then Exit Sub Application.EnableEvents = False Select Case Target.Address(False, False) Case "A1" [A2].Value = 1.2 * x Case "A2" [A1].Value = x / 1.2 End Select Application.EnableEvents = True End Sub Teste agora com valores nas células A1 e A2.
  24. O post de Edson Luiz Branco em VBA - Somases no VBA foi marcado como solução   
    Dois problemas, @diego_janjao
     
    1) Como você não qualificou o Range no SumIf, o intervalo E7:E9006 e o M7:M9006 será o da planilha ativa, que quando chega nesse trecho de código é a planilha "Log", que nesses intervalos E e M não tem nada para somar. Então ou qualifique o intervalo todo antes ou ative a planilha certa antes de usar o SumIf.
    2) Teu SumIf está invertido: a coluna com os critérios é a E mas você usou a M e a dos valores a somar é a M mas você usou a E.
     
    O trecho poderia ficar assim então:
     
    Private Sub codigo_Change()
      Dim est  As Double
      Sheets("Registro de Recebimento 2019").Activate
      est = Application.SumIf(Range("E7:E9006"), Me.codigo, Range("M7:M9006"))
    ...
    ...
  25. O post de Edson Luiz Branco em VBA - Abrir outra planilha como "Somente Leitura" foi marcado como solução   
    Tente isso:
    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 Application.ScreenUpdating = False 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 '..... '..... '..... '..... Wb.Close SaveChanges:=False arqTemp.Delete True End With Set arqTemp = Nothing: Set EmpFound = Nothing: Set Wb = Nothing End Sub  

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!