Ir ao conteúdo

bigbossbr

Membro Pleno
  • Posts

    47
  • Cadastrado em

  • Última visita

Tudo que bigbossbr postou

  1. Conseguir resolver. Podem fechar o tópico
  2. Olá pessoal, Estou precisando criar uma função para executar um som sempre que algo ocorrer, este algo vai depender do que eu definir, tipo, uma atualização, um alerta na tela, algo assim. Comecei a criar a função, mais não esta funcionando. function soundAlert(typeSound) { var typeSoundAlert = null; var typeSoundSuccess = null; var typeSoundError = null; if (typeSound == typeSoundAlert) { typeSound = 'https://assets.mixkit.co/sfx/preview/mixkit-software-interface-start-2574.mp3'; } else if (typeSound == typeSoundSuccess) { typeSound = 'https://assets.mixkit.co/sfx/preview/mixkit-alert-quick-chime-766.mp3'; } else if (typeSound == typeSoundError) { typeSound = 'https://assets.mixkit.co/sfx/preview/mixkit-game-show-wrong-answer-buzz-950.mp3'; } var audio = $("<audio />", { id: 'notificacao', preload: 'auto', }); $("body").append(audio); $('#notificacao').html('<source src="' + typeSound + '">'); $('#notificacao').trigger('play'); }; Se eu utilizar somente esta parte do código direto onde quero que execute o som, funciona certinho, mais ai não consigo reaproveitar o código, tenho que ficar copiando e colocando, algo que não acho produtivo. var audio = $("<audio />", { id: 'notificacao', preload: 'auto', }); $("body").append(audio); $('#notificacao').html('<source src="' + typeSound + '">'); $('#notificacao').trigger('play'); Também se eu chamar a função soundAlert() direto no console, ele executa o primeiro if, só que se eu usar soundAlert(typeSoundError) por exemplo, ai informa que typeSoundError is not defined Alguma sugestão dos universitários? Abraços e obrigado
  3. @Rui Guilherme Cincordo contigo, deve ter ficado uma gambiarra, eu já tinha colocado tudo dentro do ready como você falou, mais também penso que dá pra mudar trazendo os ícones todos no json e depois só trabalhar eles na página, vou ajusta isto depois. Mais hoje está assim: Tenho uma página onde estão todos os ícones, aí no php eu dou um include no local onde quero que estes ícones apareçam, aí vem o jquery para manipular está parte da busca, mais mudando está parte que falamos, colocando os ícones todos no js, não vou nem precisar mais desta página com os ícones, já que quem vai fazer tudo isso é o já. Vou dar uma olhada no react, estou me enrolando para estudar ele a um tempo já.
  4. Achei o erro @Rui Guilherme, Criei um constante fora para armazenar o arrary e somente depois chamar ele novamente dentro do filter. Valeu pela ajuda, ainda me perco com o javascript.
  5. @Rui Guilherme Olá Rui, nossa esta me ajudando muito. Assim, montei tudo conforme você indicou, ele filtra na busca, porém quando eu limpo o campo ele não esta me retornando o icones novamente. Pelo que notei, se os valores estiverem fixos no array iconesDisponiveis funciona, mais dinâmico como fiz, ele se perde, ele limpa o array conforme vai sendo digitado. Lembrando que me array traz mais de 1000 icones, 1036 para ser exato. //Monto o array com o icones que já tenho na pagina function pegarIcones() { var array = []; var elemento = $(".add-icon-page"); $.each(elemento, function (index, value) { var icon_name = value.id; var tratar = icon_name.replace("ni ni-", ""); var icones = { nome: tratar, iconHTML: value.id, } array.push(icones); }); return array; } $('.input-search').keyup((eventData) => { const filtroInput = eventData.target.value //Trago os ícones de forma dinamica const iconesDisponiveis = pegarIcones(); const result = iconesDisponiveis.filter(ico => ico.nome.toLowerCase().indexOf(filtroInput.toLowerCase()) !== -1) // aqui ele limpa os filhos de icones $(".view-icons").empty() result.map(props => { const { iconHTML, nome } = props //mesmo código que tenho na pagina com os ícones, ele filtra, mais se eu limpar o campo ele não retorna os icones $(".view-icons").append(`<div class="custom-control custom-control-md mb-2 fs-20px div-icon-page"><label for="${iconHTML}"><input type="radio" name="add-icon-page" class="add-icon-page" value="${iconHTML}" id="${iconHTML}" /><em id="${iconHTML}" class="select-icon ${iconHTML}"></em></label></div>`) }) })
  6. @Rui Guilherme opa Rui, obrigado pela resposta. Fazer a busca desta forma com ele trazendo um texto na tela de certo, estou me batendo para ele continuar a montar a tela com os ícones como eu já tenho ela, dentro das divs organizadas. Eu coloco na div para estiliza melhor e com um input checkbox oculto no formulário para poder pegar o value e cadastrar no banco, porém como tem mais de 1000 ícones, achei que um filtro facilita mais a vida do usuário hehehe.
  7. Olá pessoal, Estou tentando criar um sistema de busca por Jquery, mais empaquei em uma parte e não vai. Tenho lista de icones em minha pagina neste modelo (total de 1036 icones) <div class="custom-control custom-control-md mb-2 fs-20px div-icon-page"><label for="ni ni-centos"><input type="radio" name="add-icon-page" class="add-icon-page" value="ni ni-centos" id="ni ni-centos" /><em id="ni ni-centos" class="select-icon ni ni-centos"></em></label></div> <div class="custom-control custom-control-md mb-2 fs-20px div-icon-page"><label for="ni ni-covid"><input type="radio" name="add-icon-page" class="add-icon-page" value="ni ni-covid" id="ni ni-covid" /><em id="ni ni-covid" class="select-icon ni ni-covid"></em></label></div> <div class="custom-control custom-control-md mb-2 fs-20px div-icon-page"><label for="ni ni-fedora"><input type="radio" name="add-icon-page" class="add-icon-page" value="ni ni-fedora" id="ni ni-fedora" /><em id="ni ni-fedora" class="select-icon ni ni-fedora"></em></label></div> O que quero é que quando o usuário ir digitando por exemplo covid, a busca filtre e deixe aparecendo somente o icone que ele esta buscando, ou similares pela busca, o código abaixo até traz um arrary no console, mais não estou sabendo como manipular esta informação para filtrar e fazer os ícones que não estão no filtro serem ocultados (no caso dar um display: none na div div-icon-page) e caso o filtro seja retirado as div ocultadas voltem a aparecer. Inclusive notei que independente do que eu digite ele sempre retorna o mesmo resultado, logo ele não esta usando o valor digitado para filtrar. $('.input-search').keyup(function () { var texto = $(this).val(); var array = Array(); var elemento = $(".add-icon-page"); $.each(elemento, function (index, value) { var valor = value.id; var id = index; array.push(id, valor); }); console.log(array) })
  8. @DiF verdade, não pensei nesta hipótese, de enviar na modal o form , boa dica, obrigado. Vou testar amanhã. Inclusive estou com outra treta no momento, mais vou colocar um novo post para não misturar os assuntos, até porque agora a treta é crud com php e MySQL.
  9. @Marcelo Calazans Então, da forma que estou fazendo no momento, não limpo o formulário, somente as variáveis que foram preenchidas no primeiro submit, somente se ele clicar em cancelar, mais vou continuar tentando debugar e achar um forma mais funcional, achando posto sim.
  10. @Marcelo Calazans Olá amigo, obrigado por responder. O que você colocou foi exatamente o que fiquei pensando, ele não pode submeter o formulário se não foi confirmado, mais pelo que notei, o jquery está criando um cachê dos dados que foram tentado enviar no primeiro submit, ai quando o usuário cancela na modal, corrige algum dados, a modal abre e ele confirma, o jquery por algum motivo está enviando 2x os dados, um com valores do primeiro submit e outro com o segundo com dados corrigido. Achei uma forma de corrigir, não sei se foi a melhor, mais o que fiz foi Aqui em vez de atualizar a página, foi limpar todas as variaveis caso o usuário clique em cancelar, assim quando ele corrigir e submeter novamente as variáveis iniciam vazias.
  11. Estou enviando um formulário via jquery ajax e php através de uma modal. A modal por sua vez é com confirmação, ou seja, a primeira modal mostra ao usuário uma previa das informações que ele esta enviando, ele pode cancelar ou confirmar o envio. O problema esta quando ele cancela, ao cancelar para corrigir algum dado e depois enviar, os dados estão sendo cadastrados 2x no banco de dados, se o usuário cancelar mais de 1x, tipo 3x, é feito 3 cadastro no banco, alguém sabe o porque disto ocorrer? Detalhe, quando ele envia mais de uma vez, ele envia com dados diferentes, manda o primeiro formulário e o segundo, terceiro, etc, cada um com as informações que foram corrigidas. Código jquery //########################################################## // CADASTRO DE OPERAÇÕES //########################################################## $('#formCadOper').submit(function (event) { event.preventDefault(); var idUser = $('#id_user').val(); var dataOper = $('#data').val(); var tipoOperacao = $('#tipo_operacao').val(); var corretora = $('#corretora').val(); var ladoOperacao = $('#lado_operacao').val(); var setupOper = $('#setup').val(); var ativoOper = $('#ativo').val(); var nCtrs = $('#n_contratos').val(); var detalhes = $('#detalhes').val(); var emocional = $('#emocional').val(); var precoE = $('#preco_entrada').val(); var precoS = $('#preco_saida').val(); var precoECalculo = precoE.replace(',', '.'); precoECalculo = precoECalculo.replace('.', ''); var precoSCalculo = precoS.replace(',', '.'); precoSCalculo = precoSCalculo.replace('.', ''); var text_Status = ''; var vlrInicial = (precoECalculo * nCtrs); var vlrFinal = (precoSCalculo * nCtrs); var vlrTotal = (vlrFinal - vlrInicial); var vlrBruto = (vlrFinal - vlrInicial); if (tipoOperacao == "Swing Trade") { pontosOper = 0; } else { if (ativoOper == "MINI ÍNDICE" || ativoOper == "MINI DÓLAR" || ativoOper == "ÍNDICE CHEIO" || ativoOper == "DÓLAR CHEIO") { if (ladoOperacao == "Venda") { pontosOper = (precoECalculo - precoSCalculo); } else { pontosOper = (precoSCalculo - precoECalculo); } } else { vlrInicial = (precoECalculo * nCtrs); vlrFinal = (precoSCalculo * nCtrs); vlrBruto = (vlrFinal - vlrInicial); pontosOper = ((vlrBruto / (precoECalculo * nCtrs)) * 100); } } if (ativoOper == "MINI ÍNDICE" || ativoOper == "MINI DÓLAR" || ativoOper == "ÍNDICE CHEIO" || ativoOper == "DÓLAR CHEIO") { if (pontosOper == 0) { statusOper = "0x0"; text_Status = "text-primary"; } else if (pontosOper > 0) { statusOper = "GAIN"; text_Status = "text-success"; } else { statusOper = "LOSS"; text_Status = "text-danger"; } } if (vlrTotal == 0) { statusOper = "0x0"; text_Status = "text-primary"; } else if (vlrTotal > 0) { statusOper = "GAIN"; text_Status = "text-success"; } else { statusOper = "LOSS"; text_Status = "text-danger"; } var info = "<div class=\"card card-warning\">"; info += "<div class=\"card-header\">"; info += "<div class=\"alert alert-warning alert-dismissible\">"; info += "<h5><i class=\"icon faz fa-exclamation-triangle\"></i> Confira os dados de sua operação</h5>"; info += "</div>"; info += "</div>"; info += "<table class=\"table table-sm\">"; info += "<tr>"; info += "<th>DATA</th>"; info += "<td>" + dataOper + "</td>"; info += "</tr>"; info += "<tr>"; info += "<th>TIPO</th>"; info += "<td>" + tipoOperacao + "</td>"; info += "</tr>"; info += "<tr>"; info += "<th>LADO OPERAÇÃO</th>"; info += "<td>" + ladoOperacao + "</td>"; info += "</tr>"; info += "<tr>"; info += "<th>CORRETORA</th>"; info += "<td>" + corretora + "</td>"; info += "</tr>"; info += "<tr>"; info += "<th>SETUP</th>"; info += "<td>" + setupOper + "</td>"; info += "</tr>"; info += "<tr>"; info += "<th>ATIVO</th>"; info += "<td>" + ativoOper + "</td>"; info += "</tr>"; info += "<tr>"; info += "<th>Nº CONTRATOS</th>"; info += "<td>" + nCtrs + "</td>"; info += "</tr>"; info += "<tr>"; info += "<th>EMOCIONAL</th>"; info += "<td><img src=assets/img/icons_emocional/" + emocional + "></td>"; info += "</tr>"; info += "<tr>"; info += "<th>PREÇO ENTRADA</th>"; info += "<td>"; if (ativoOper == "MINI ÍNDICE" || ativoOper == "ÍNDICE CHEIO") { info += precoE; } else { info += "R$ " + precoE; } info += "</td>"; info += "</tr>"; info += "<tr>"; info += "<th>PREÇO SAÍDA</th>"; info += "<td>"; if (ativoOper == "MINI ÍNDICE" || ativoOper == "ÍNDICE CHEIO") { info += precoS; } else { info += "R$ " + precoS } info += "</td>"; info += "</tr>"; info += "<tr>"; info += "</tbody>"; info += "</table>"; info += "<h3 class=\"text-center bg-primary text-light\"\>RESULTADO DA OPERAÇÃO</h3>"; //Resultado da operação info += "<table class=\"table table-sm\">"; info += "<thead class=\"bg-dark\">"; info += "<tr align=\"center\">"; info += "<th>PONTOS/RENT.(%)</th>"; info += "<th>STATUS</th>"; info += "<th>RESULTADO BRUTO</th>"; info += "</tr>"; info += "</thead>"; info += "<tbody class=" + text_Status + ">"; info += "<tr align=\"center\">"; info += "<td>" + pontosOper + "</td>"; info += "<td>" + statusOper + "</td>"; info += "<td>R$ " + vlrBruto.toFixed(2) + "</td>"; info += "</tr>"; info += "<tr>"; info += "</tbody>"; info += "</table>"; info += "</div>"; $("#mostraDados").modal('show'); //Ativa mover da modal $('.modal-dialog').draggable({ handle: ".modal-header" }); $('.modal-header').css('cursor', 'move') $(".modal-body").html(info); //####################################################### //SÓ DEVE ENTRAR AQUI SE O BOTÃO DE CONFIRMAR FOI CLICADO //####################################################### $('button[data-confirm]').click(function (event) { event.preventDefault(); $.ajax ({ //Configurações type: 'POST', dataType: 'html', url: 'insert.php?ins=cadOp&confirm=1', beforeSend: function () { $("#mostraDados").html("<div class=\"spinner-border text-danger\" role=\"status\"><span class=\"sr-only\"></span></div><br>Carregando..."); }, //Dados para consulta data: { idUser: idUser, dataOper: dataOper, tipoOperacao: tipoOperacao, corretora: corretora, ladoOperacao: ladoOperacao, setupOper: setupOper, ativoOper: ativoOper, nCtrs: nCtrs, precoE: precoE, precoS: precoS, detalhes: detalhes, emocional: emocional }, success: function (msg) { $('#confirmaAddOperacao').modal('hide'); $('#infoSucessoAddOperacao').modal('show'); $("#infoSucessoAddOperacao .modal-body").html(msg); $('#infoSucessoAddOperacao').click(function () { location.reload(); }) } }); }) }); Também tentei usar o envio assim //########################################################## // CADASTRO DE OPERAÇÕES //########################################################## $('#formCadOper').submit(function (event) { event.preventDefault(); var idUser = $('#id_user').val(); var dataOper = $('#data').val(); var tipoOperacao = $('#tipo_operacao').val(); var corretora = $('#corretora').val(); var ladoOperacao = $('#lado_operacao').val(); var setupOper = $('#setup').val(); var ativoOper = $('#ativo').val(); var nCtrs = $('#n_contratos').val(); var detalhes = $('#detalhes').val(); var emocional = $('#emocional').val(); var precoE = $('#preco_entrada').val(); var precoS = $('#preco_saida').val(); $.ajax ({ //Configurações type: 'POST', dataType: 'html', url: 'insert.php?ins=cadOp&confirm=0', beforeSend: function () { $("#mostraDados").html("<div class=\"spinner-border text-danger\" role=\"status\"><span class=\"sr-only\"></span></div><br>Carregando..."); }, //Dados para consulta data: { idUser: idUser, dataOper: dataOper, tipoOperacao: tipoOperacao, corretora: corretora, ladoOperacao: ladoOperacao, setupOper: setupOper, ativoOper: ativoOper, nCtrs: nCtrs, precoE: precoE, precoS: precoS, detalhes: detalhes, emocional: emocional }, success: function (msg) { $("#mostraDados").modal('show'); //Ativa mover da modal $('.modal-dialog').draggable({ handle: ".modal-header" }); $('.modal-header').css('cursor', 'move') $(".modal-body").html(msg); } }); //####################################################### //SÓ DEVE ENTRAR AQUI SE O BOTÃO DE CONFIRMAR FOI CLICADO //####################################################### $('button[data-confirm]').click(function (event) { event.preventDefault(); $.ajax ({ //Configurações type: 'POST', dataType: 'html', url: 'insert.php?ins=cadOp&confirm=1', beforeSend: function () { $("#mostraDados").html("<div class=\"spinner-border text-danger\" role=\"status\"><span class=\"sr-only\"></span></div><br>Carregando..."); }, //Dados para consulta data: { idUser: idUser, dataOper: dataOper, tipoOperacao: tipoOperacao, corretora: corretora, ladoOperacao: ladoOperacao, setupOper: setupOper, ativoOper: ativoOper, nCtrs: nCtrs, precoE: precoE, precoS: precoS, detalhes: detalhes, emocional: emocional }, success: function (msg) { $('#confirmaAddOperacao').modal('hide'); $('#infoSucessoAddOperacao').modal('show'); $("#infoSucessoAddOperacao .modal-body").html(msg); $('#infoSucessoAddOperacao').click(function () { location.reload(); }) } }); }) }); No momento por ainda não ter encontrado um solução, adicionei ao código um reload na pagina caso o usuário clique em cancelar, mais sei que não é a opção correta, pois o formulário fica todo em branco tendo o usuário que preencher tudo novamente. Código paelativo adicionado $('#cancelarAddOperacao').click(function () { location.reload(); })
  12. @GabrielSennaMs Olá, obrigado pela resposta, Não entendi onde esta o erro, você fala nesta linha? Se for mais tem o . (ponto) ali antes do php if (file_exists($FIRST_DIR . $URL[0] . '.php')) :
  13. Olá pessoal, Estou tendo problemas na hora de criar uma rota em meu localhost que será posteriormente colocada no servidor www, quando eu digito localhost/new_site/home ele sempre redireciona para o 404 (inicio/404.php) mesmo a pasta->pagina home/home.php existindo, segue configurações que estou usando arquivo .htaccess RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*) ?$1 <IfModule mime_module> AddHandler application/x-httpd-ea-php73 .php .php7 .phtml </IfModule> Arquivo index.php na raiz da pasta do site localhost/new_site $SERVER = ($_SERVER ?? null); $REQUEST_URI = filter_input(INPUT_SERVER, 'REQUEST_URI'); $INITE = strpos($REQUEST_URI, '?'); $DIR_BASE = 'new_site'; $FIRST_DIR = 'home/'; if ($INITE) : $REQUEST_URI = substr($REQUEST_URI, 0, $INITE); endif; $REQUEST_URI_PASTA = substr($REQUEST_URI, 1); $URL = explode('/', $REQUEST_URI_PASTA); $URL[0] = ($URL[0] != '' ? $URL[0] : 'home'); if (file_exists($FIRST_DIR . $URL[0] . 'php')) : require($FIRST_DIR . $URL[0] . 'php'); echo $URL[0]; elseif (is_dir($FIRST_DIR . $URL[0])) : if (isset($URL[1]) && file_exists($FIRST_DIR . $URL[0] . '/' . $URL[1]) . 'php') : require($FIRST_DIR . $URL[1] . 'php'); echo $URL[0]; endif; else : require($FIRST_DIR . '404.php'); echo $URL[0]; endif; estou usando uma estrutura de pastas assim (exemplo): -> localhost -> new_site -> inicio ->css ->style.css ->scripts ->scripts.js -> inicio.php -> prodtuo.php -> categorias.php -> admin ->css ->style.css ->scripts ->scripts.js -> inicio.php -> adm_produtos.php -> adm_categorias.php
  14. Consegui resolver, Se alguém precisar em algum momento algo neste sentido, fica ai o código que pode ajudar. Adicionei a ela uma verificação para tamanho de tela, para que a classe fixed-nav seja removida em casas de resoluções abaixo de 1366. Para funcionar, eu usei o próprio tamanho do $(this).scrollTop() para adicionar um classe top ao elemento, assim cada vez que a tela desce o top vai modificando e mantendo o formulário no mesmo lugar, quando a tela, sobe novamente e ultrapassa o elemento que marca o ponto, ele volta a subir junto com a tela. $(function () { var tela = window.screen.availWidth; if (tela >= 1366) { $(window).scroll(function () { var form = $('.span-form').height(); var inicioDiv = $('.intro').height(); var finalDiv = $('.diferenciais').height() + inicioDiv; var agora = (inicioDiv - $(this).scrollTop()) + 175; if ($(this).scrollTop() > (finalDiv - form)) { $('.span-form').css('top', agora + 'px'); } else { $('.span-form').css({ 'top': '75px', }); } }); } else { $('.span-form').removeClass('fixed-nav'); } });
  15. .fixed-nav{ position: fixed; z-index: 999; } .static-nav{ position: static; z-index: 999; }
  16. Olá @GabrielSennaMs, Primeiro obrigado pela resposta. O que ocorrer que que quando o elemento .span-form citado no código atinge o final da <section class="diferenciais">, ele some, em vez de somente parar e ficar ali até a pagina rolar para cima. Minha ideia é ele não subir e sim parar, quando o usuário voltar página acima do final da <section class="diferenciais">, a ele volta a subir junto a tela até o topo.
  17. Estou tentando fazer algo que deveria ser simples mais não estou conseguindo. Quero pegar um div que tem um formulário e fazer ela rolar com a pagina até um certo ponto da pagina, digamos o meio dela, parar ali mesmo que o usuário desça mais a pagina o formulário vai ficar ali parado, e só vai se movimentar novamente, no caso para cima se ele subir acima digamos do meio da tela, ou de um elemento que eu defini com ponto de parada, que no caso é minha o final da minha <section class="diferenciais"></section> (parar quando chegar aqui) . O meu código em vez de parar a div esta fazendo ela sumir e voltar quando volta ao ponto que parou. Alguma dica de como corrigir isto? Obrigado $(function () { $(window).scroll(function () { if ($(this).scrollTop() > $('.diferenciais').offset().top) { $('.span-form').removeClass('fixed-nav'); $('.span-form').addClass('static-nav'); } else { $('.span-form').removeClass('static-nav'); $('.span-form').addClass('fixed-nav'); } }); });
  18. Opa @Patropi, Olha eu me batendo aqui novamente hehehe Como viu minha planilha esta bloqueada (algumas células apenas), estou tentando criar um VBA que quando eu apagar o conteúdo das células desbloqueadas, ele apague também o conteúdo das células bloqueadas, porém sem danificar as fórmulas contidas nelas. Obs: Ele deve apagar somente o conteúdo da linha especifica que eu deletei. Exemplo: Apaguei o conteúdo da célula C135, ou 136, (qualquer uma das células desbloqueadas desta linha), logo ele só ira apagar o conteúdo das células bloqueadas da linha 135. Obrigado
  19. Fiz o que falou, na verdade eu já havia feito isto anteriormente, porém não havia resolvido. Veja o código em questão Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect If Target.Column = 4 Or Target.Column = 3 Then Cells(Target.Row, 2).Value = Date Cells(Target.Row, 5).Value = Time End If ActiveSheet.Protect End Sub Ele sempre da erro na linha Cells(Target.Row, 5).Value = Time, não consigo entender o porque ele não entende a informação. Obs.: O problema só ocorre quando a planilha esta bloqueada, se tirar esta linha mesmo ela estando bloqueada o erro some. adicionado 12 minutos depois Caro @Patropi Consegui resolver, somente modifiquei ActiveSheet.Unprotect e ActiveSheet.Protect para dentro do IF, agora vou ver se crio um código para limpar as células bloqueadas caso as desbloqueadas sejam apagadas
  20. Boa tarde @Patropi Muito obrigado, realmente não tinha tentado a função FREQUENCIA, nem me lembrei dela, já tinha tentado tantas coisas que já estava cansado hehehe. Obrigado. adicionado 26 minutos depois Boa tarde @Patropi Aproveitando o tópico, tenho uma situação que deixei de lado na planilha que é o seguinte. Na planilha OP DIARIA, no campo DATA e campo HI, eu tenho um auto-preenchimento feito em VB, porém se eu bloquear a planilha, não tem como usar estes recursos porque da uma erro que não achei o que seja, ai tenho que usar a planilha desbloqueada. Sabe o que pode ser este erro? Obs: Só bloquear a planilha OP DIARIA e modificar o campo ATIVO ou TIPO e vera o erro aparecer. Att
  21. Anexei um arquivo ZIP com a planilha. Tem 2 planilhas. OP DIARIA: Onde adiciono cada operação efetuada no dia. DIÁRIO AGRUPADO: Onde tenho um relatório com dados agrupados por mês. Adicionei uma coluna "DIAS OPERADO", que e onde pretendo colocar quantos dias de operação de fato tive no mês, sendo que um mesmo dia posso ter muitas operações, então tenho que agrumar por dia para ter a quantidade de dias correto. Obrigado Teste.zip
  22. Olá pessoal, Trabalho com Day Trade e tenho uma tabela onde cadastro várias informações diariamente das operações que realizo na bolsa, ou seja um mesmo dia pode ter vários registros, em outra planilha eu tenho um relatório usando formula CONT.SE E SOMASES trazendo dados agrupados para saber por mês itens como: – Quantas operações efetuei no mês; – Quanto tempo fiquei em operação no mês; – Quantos LOSS; – Quantos GAINS; E assim por diante. Estou tentando montar um fórmula que faça o seguinte. "Não” estou conseguindo trazer quantos dias (distintos) de fato foi operado dentro de um mês, não consigo agrupar dias iguais dentro do mês para gerar um contagem de dias distintos, já consegui fazer isto com tabela dinâmica, mais não com fórmula. Existe como fazer isto com fórmula? Tentei usar uma fórmula como esta mais retorna sempre 0 "ZERO": Desde já Obrigado pelo auxilio

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!