Logo Hardware.com.br

Suítes de escritório

Sala destinada para questões, dúvidas e dicas envolvendo pacotes ou suítes de escritório destinados ao Windows: instalação, configuração, desempenho, implementações, suítes Office, Open Office, Libre Office etc.

0

Ajuda Excel - números não estão sendo reconhecidos como valores

Prezados, boa tarde, tudo bem?

Estou tentando fazer com que o Excel reconheça os valores da planilha em anexo como números, porém não consigo de jeito nenhum. Já utilizei a função valor, formatei, verifiquei se a coluna está em formato de texto, criei uma dinâmica para somar os valores, mas não vai. Poderiam me ajudar por favor? 

O Excel fica realizando a contagem dos números e nunca a soma.


Obrigado!
0

Fechar workbook após inatividade

LaerteB disse:
Boa tarde, Patricia Mielczarski

Obrigado você ; estamos aqui para ajudar.

Fiquei feliz que resolveu a sua questão .. e também agora sabemos que o erro era
ocasionado pelo formato da imagem (.ico) .

Opa seu Office é da versão de "1908", bem velhinho né rsrsrsrs...

LaerteB


‎ Olá.

este código dá muito jeito e eu já coloquei em uma folha de Excel mas não executa automaticamente. onde estarei a falhar? Obrigado
0

Comparar colunas de acordo com ID material e quantidade

Olá.

Tudo bem pessoal?


Estou com uma dificuldade em conseguir finalizar uma planilha que nomeei de COMPARADOR. A mesma compara materiais através dos códigos (id) existentes no bloco A com o bloco B e retorna o que consta e o que não consta nos dois blocos através de conjunto de ícones. Coloquei um macro só para apagar os dados de maneira rápida.

Estou com dificuldade porque além de comparar o id, preciso comparar a quantidade também, retornando se o que consta no bloco A e B está com a quantidade correta ou não. Claro se possível realizar através de funções e não VBA, assim a planilha não fica pesada.


Segue planilha para analise.


Caso alguém puder me ajudar, ficarei grato.
0

Separar algarismo de um número no excel

Rudney Estud... disse:
Boa tarde pessoal,
Preciso separar os algarismos de varios números no excel em colunas ou linhas, utilizei a função =EXT.TEXTO, mas ela retorna somente texto e não consigo converter em número, pois preciso aplicar a função =SOMAQUAD nos alagrismos separados. Alguma ideia?



Desculpem desenterrar... 

A formula funciona perfeito com números.
Mas em seguencias alfanuméricas ela deixa a célula vazia (onde deveria ter uma letra).

Alguma dica?!
0

Visualização de Seleção do Word

Oi, boa noite tudo bem? Eu escrevo em busca de uma solução de word.

Eu quero a partir de um comando visualizar somente a minha seleção do word.

Eu quero executar essa função para fins de revisar partes do texto em meus estudos.

Exemplo: Eu tenho um texto de várias páginas. Eu seleciono, ou grifo, ou ponho em negrito, ou adoto outra forma de destaque e;

Eu quero a partir de comando visualizar somente as partes que selecionei. 

Tomara que eu tenha conseguido explicar certinho, obrigada.
0

Impressão de lista no Excel.

Slugman disse:
Na verdade eu coloquei a visualização só pra saber se é assim msm...esqueci de falar que precisa trocar...

Abre a planilha, aperta Alt + F11. Clica em Modulo 1. Tem uma linha verde no final, é só apagar o ' e tbm apagar a linha de cima. Ficará assim:

For Each cell In ws1.Range("B4:B" & r)
    ws2.Range("B3").Value = cell
    ws2.Range("I3").Value = cell.Offset(, 1)
    ws2.PrintOut
Next


Saberia me informar se tem alguma maneira de imprimir toda a lista (num PDF, por exemplo), e não de um em um?
0

Trabalhando com datas (Excel)

Olá galerinha.

Estou precisando novamente da ajuda de vcs.

O problema dessa vez está relacionado com datas.
No questão atual é sobre o trabalho com reserva de veículo, e já tenho uma reserva para o período 10/09/2023 - 10/10/2023 para determinado carro, gostaria que ele ficasse indisponível se tentasse incluir nova informação se eu tentasse inserir uma reserva para o dia 01/10/2023 do mesmo veículo que aparecesse alguma notificação ou aviso que já tem reserva na data selecionada, por exemplo.

Normalmente as reservas são apenas para um único dia, mas por vezes ocorre necessidade de reserva por período, e nesses casos tenho tido mais dificuldade, principalmente quando outra pessoa fica encarregada dessa atividade.

Tanto pode ser feito numa planilha única (como é o caso do carro CCC3333 no modelo, que reserva começa e termina no mesmo dia) ou pode-se trabalhar com planilhas distintas (uma para reservas de data única e outra para reservas por período), contanto que se tentar inserir uma informação de carro que já tenha reserva OU seja impedido de inserir a informação OU receba algum tipo de notificação.

Montei uma planilha básica p servir de modelo, mas pode ser diversa desta.
0

Salvar automaticamente e-mails com anexos. Como corrigir falha que sobrescreve, pois recebo muitos e-mails com arquivo de mesmo nome?

Olá, será que alguém conseguem me ajudar por favor? Eu consegui colocar tanto o script bem como a regra para baixar automaticamente no Microsoft Outlook, só tem uma coisa; muitas vezes eu recebo um arquivo com o mesmo nome, exemplo (log.txt.zip) porém é claro que são de dias diferentes, só que como eu recebo sempre o arquivo com mesmo nome ele nunca vai manter todos os arquivo irá salvar na pasta somente um arquivo, ele irá trocar pelo último recebido eu precisa que log.txt.zip  pudesse ser salvo com alguma variável antes do seu nome tipo 001 ou até mesmo a data e hora - log.txt.zip

é possível, vou deixar aqui o script que estou usando.

----

Public Sub ProcessarAnexo(Email As MailItem)
    Dim DiretorioAnexos As String
    DiretorioAnexos = "C:\Disk Serv.U (ANEXOS)\"

    Dim MailID As String
    Dim Mail As Outlook.MailItem

    MailID = Email.EntryID
    Set Mail = Application.Session.GetItemFromID(MailID)

    For Each Anexo In Mail.Attachments
        If Right(Anexo.FileName, 3) = "zip" Then

            Anexo.SaveAsFile DiretorioAnexos & Anexo.FileName
        End If
    Next

    Set Mail = Nothing
End Sub


----

E aproveitando a oportunidade se não for abusar muito como eu poderia fazer com este mesmo script
para baixar outra extensão junto, exemplo quero BAIXAR todos os arquivos ZIP e XML.
0

Bloqueio de planilha com o serial do HD

Dimasbrito disse:
Resolvido.  Como não consegui buscar o número do HD com os códigos sugeridos aqui, continuei pesquisando e encontrei essa solução disponível:
(Bloqueio de planilha pelo número serial da placa mãe) http://www.yogeshguptaonline.com/2009/07/hardware-locking-for-excel-workbook.html, funcionou direitinho. Como o código serial da placa mãe geralmente é um código alfa numérico, depois que o VBA localizou o número do hardware, criei uma macro que pudesse substituir as letras fornecidas por números somente .(Isso deixou o acesso ainda mais protegido), não bastasse, fiz uma multiplicação do número gerado (como sugerido pelo Basole). E finalmente cheguei ao código de acesso da planilha.

‎Parceiro, estou precisando do mesmo código, seria possível disponibilizar o que você está utilizando?  obrigado
0

Me ajudem a resolver problemas de matemática em meu código!

Por que meu código não da o resultado igual o resultado do excel?
a minha função ela retorna um valor diferente do excel e isso eu não entendo.

códigos excel :

= G5 = 2,50%

=(1+G5)^(1/30)-1 = 0,08%  até aqui tudo certo pois coloquei manualmente no código 0,08%

---------------------------------

exemplo dia 35 que é taxa de desconto para quem escolhe pagar em 35 dias.

$G$6 = 0,08% taxa diaria
D14 = 35 dia prazo a pagar selecionado na option do html
=(1+$G$6)^D14-1

Resultado no excel = 2,92%

resultado no código javascript 2,83%

<script>
var taxaDiaria = 0.08 / 100; // Convertendo a taxa diária para decimal
var prazoDias = 35;

// Calculando o resultado
var resultado = Math.pow(1 + taxaDiaria, prazoDias) - 1;

// Exibindo o resultado
result = (resultado * 100 + '%');
alert(result);
</script>




função para calcular desco

function calcularDesconto() {
    // Obter os elementos necessários
    var prazoElement = document.getElementById("prazo&quot;
    var comissaoElement = document.getElementById("comissao&quot;
    var descontoElement = document.getElementById("desconto&quot;

    // Taxa de desconto diária
    var taxaDiaria = 0.08 / 100;
    // Prazo selecionado
    var prazoSelecionado = parseInt(prazoElement.value);
    var mudarTaxa;

    switch (prazoSelecionado) {
        case 35:
            mudarTaxa = 1.0;
            break;
        case 28:
            mudarTaxa = 0.80;
            break;
        case 21:
            mudarTaxa = 0.60;
            break;
        case 14:
            mudarTaxa = 0.40;
            break;
        case 7:
            mudarTaxa = 0.20;
            break;
        default:
            // Caso nenhum dos valores acima corresponda a prazoSelecionado
            // Defina um valor padrão ou lide com isso conforme necessário.
            mudarTaxa = 0;
            break;
    }

// Agora você pode usar a variável taxaDesconto conforme necessário.

    // Taxa de desconto para o prazo selecionado
    var taxaDesconto = Math.pow(1 + taxaDiaria, prazoSelecionado + mudarTaxa) - 1 ;
    taxaDesconto =  parseFloat(taxaDesconto.toFixed(4).replace(',', '.'));
    // Exibir o desconto na página
    var resultado = taxaDesconto * calcularTotal();
    var resultadoFormatado = parseFloat(resultado.toFixed(2).replace(',', '.'));
    descontoElement.textContent = resultadoFormatado.toFixed(2) + '%';
    console.log(taxaDesconto);
   
    // Chame a função calcularMargemTotal aqui, após calcular o desconto
    return resultadoFormatado;

}

// Adicione o evento 'change' ao select de prazo
document.getElementById("prazo&quot.addEventListener("change", calcularDesconto);


código completo :


<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
   



<style>
    .divisa{
        margin: 20px;
        border: 2px solid black;
        body{ font-family-removed: Arial;}
    }
    table {
        width: 100%;
        border-collapse: collapse;
        margin-top: 20px;
    }

    th {
        background-color: #FFC000;
        color: white;
        font-weight: bold;
        padding: 10px;
        text-align: left;
        cursor: pointer;
    }

    td {
        padding: 10px;
        text-align: left;
        cursor: pointer;
    }

    tbody td {
        background-color: white !important;
    }

    input {
        width: 50px;
    }

    .editavel {
        cursor: pointer;
    }

    #totalQtdeKg,
    #media,
    #total {
        font-weight: bold;
    }

    td.editavel[contenteditable="true"] {
        background-color: #FFC000;
    }

    tfoot {
        font-weight: bold;
    }

    #total-label {
        font-weight: bold;
        text-transform: uppercase;
    }
    th:nth-child(6),
td:nth-child(6) {
    display: none;
}  
div#container{
    overflow-x: auto;
}    

</style>
</head>

<body>
    <h2></h2>
    <div id="container">
        <table id="tabela">
            <thead>
                <tr>
                    <th>Produto</th>
                    <th class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">Qtde Kg</th>
                    <th>Valor Unitário R$</th>
                    <th>Valor Total R$</th>
                    <th style="width: 20px";>CPV</th>
                    <th>Custo</th>
                    <th class="editavel" onclick="habilitarEdicao(this, 'margem')">Margem Contribuição</th>
                </tr>
            </thead>
            <tbody>
                <!-- MANT BD 12KG -->
                <tr>
                    <td>MANT BD 12KG</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 29.50</td>
                    <td>R$ 0.00</td>
                    <td>2,89</td>
                    <td>0</td>
                    <td id="cpv_MANT_BD_12KG"></td>
                    <td class="calculado"></td>
                </tr>
                <!-- MANT 200G -->
                <tr>
                    <td>MANT 200G</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 29.56</td>
                    <td>R$ 0.00</td>
                    <td>2,89</td>
                    <td>0</td>
                    <td id="cpv_MANT_200G"></td>
                    <td class="calculado"></td>
                </tr>
                <!-- MANT 500G -->
                <tr>
                    <td>MANT 500G</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 28.98</td>
                    <td>R$ 0.00</td>
                    <td>2,89</td>
                    <td>0</td>
                    <td>calcularcpv deverá aparecer aqui</td>
                    <td class="calculado"></td>
                </tr>
                <!-- MANTEIGA BALDE DE 3,5 KG -->
                <tr>
                    <td>MANTEIGA BALDE DE 3,5 KG</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 29.35</td>
                    <td>R$ 0.00</td>
                    <td>2,89</td>
                    <td>0</td>
                    <td>calcularcpv deverá aparecer aqui</td>
                    <td class="calculado"></td>
                </tr>
                <!-- QUEIJO COAL. FD/12 3Kg por Und. -->
                <tr>
                    <td>QUEIJO COAL. FD/12 3Kg por Und.</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 28.50</td>
                    <td>R$ 0.00</td>
                    <td>21,61</td>
                    <td>0</td>
                    <td>calcularcpv deverá aparecer aqui</td>
                    <td class="calculado"></td>
                </tr>
                <!-- QUEIJO COAL. 500G FD 40und -->
                <tr>
                    <td>QUEIJO COAL. 500G FD 40und</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 30.13</td>
                    <td>R$ 0.00</td>
                    <td>21,61</td>
                    <td>0</td>
                    <td>calcularcpv deverá aparecer aqui</td>
                    <td class="calculado"></td>
                </tr>
                <!-- QUEIJO COAL. FD/6 3kg por Und -->
                <tr>
                    <td>QUEIJO COAL. FD/6 3kg por Und</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 28.77</td>
                    <td>R$ 0.00</td>
                    <td>21,61</td>
                    <td>0</td>
                    <td>calcularcpv deverá aparecer aqui</td>
                    <td class="calculado"></td>
                </tr>
                <!-- QUEIJO. Minas Frescal -->
                <tr>
                    <td>QUEIJO. Minas Frescal</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 31.35</td>
                    <td>R$ 0.00</td>
                    <td>16,14</td>
                    <td>0</td>
                    <td>calcularcpv deverá aparecer aqui</td>
                    <td class="calculado"></td>
                </tr>
                <!-- MUSSARELA CX/6 4Kg -->
                <tr>
                    <td>MUSSARELA CX/6 4Kg</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 25.50</td>
                    <td>R$ 0.00</td>
                    <td>23,32</td>
                    <td>0</td>
                    <td>calcularcpv deverá aparecer aqui</td>
                    <td class="calculado"></td>
                </tr>
                <!-- MUSSARELA FD/8 4Kg -->
                <tr>
                    <td>MUSSARELA FD/8 4Kg</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 26.60</td>
                    <td>R$ 0.00</td>
                    <td>23,32</td>
                    <td>0</td>
                    <td>calcularcpv deverá aparecer aqui</td>
                    <td class="calculado"></td>
                </tr>
                <!-- MUSSARELA ESTRELA CX 6und. 4Kg -->
                <tr>
                    <td>MUSSARELA ESTRELA CX 6und. 4Kg</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 25.10</td>
                    <td>R$ 0.00</td>
                    <td>20.99</td>
                    <td>0</td>
                    <td>calcularcpv deverá aparecer aqui</td>
                    <td class="calculado"></td>
                </tr>
                <!-- QUEIJO PRATO CX/6 4kg -->
                <tr>
                    <td>QUEIJO PRATO CX/6 4kg</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 26.00</td>
                    <td>R$ 0.00</td>
                    <td>17,71</td>
                    <td>0</td>
                    <td>calcularcpv deverá aparecer aqui</td>
                    <td class="calculado"></td>
                </tr>
                <!-- REQ. CREMOSO CX 15Und.200Gr -->
                <tr>
                    <td>REQ. CREMOSO CX 15Und.200Gr</td>
                    <td class="editavel" onclick="habilitarEdicao(this, 'qtde_kg')">0</td>
                    <td>R$ 22.15</td>
                    <td>R$ 0.00</td>
                    <td>17,00</td>
                    <td>0</td>
                    <td>calcularcpv deverá aparecer aqui</td>
                    <td class="calculado"></td>
                </tr>
                <!-- Adicione mais produtos conforme necessário -->
            </tbody>
            <tfoot>
                <tr>
                    <td id="total-label">TOTAL</td>
                    <td id="totalQtdeKg">0.00</td>
                    <td id="media">0.00</td>
                    <td id="total">R$ 0.00</td>
                    <td id="cpvx">0</td>
                    <td id="custo-total">00.0</td>
                    <td id="margem-total"></td>
                    <td class="calculado"></td>
                </tr>
            </tfoot>
        </table>
    </div>
    <div class="divisa"></div>
    <label for="uf">Selecione o Estado:</label>
    <select id="uf" onchange="calcularFrete()">
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
    </select>

    <p>Distância (km): <span id="distancia">0</span></p>
    <p>Valor Final: R$ <span id="valorFinal">0.00</span></p>
    <div class="divisa"></div>

    <label for="prazo">Selecione o prazo médio:</label>
    <select id="prazo" name="prazo">
       
       
       
       
       
       
    </select>

    <br>

    <label for="comissao">Comissão (%):</label>
    <input type="number" id="comissao" name="comissao" min="0" step="0.1" value="1.5">
    <p>Desconto: R$ <span id="desconto">0.00</span></p>
   
   
   
    <script >
        //Adiciona o evento 'input' às células editáveis
var editaveis = document.querySelectorAll('.editavel');
var editingCell = null;

editaveis.forEach(function (celula) {
    celula.addEventListener('input', function () {
        calcularValorTotal(celula.parentElement);
        calcularTotalQtdeKg();
        //calcularMedia();
        calcularTotal();
        calcularCustoTotal();
        //calcularCPV();
        exibirCpv();
        calcularDesconto();
        calcularMargemTotal();
    });

    celula.addEventListener('keydown', function (e) {
        if (e.key === 'Enter') {
            desabilitarEdicao();
        }
    });
});

function habilitarEdicao(celula, classe) {
    if (editingCell) {
        desabilitarEdicao();
    }

    celula.setAttribute('contenteditable', true);
    celula.focus();
    editingCell = celula;
}

function desabilitarEdicao() {
    if (editingCell) {
        editingCell.removeAttribute('contenteditable');
        editingCell = null;
    }
}

function formatarDinheiro(valor) {
    return valor.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
}

/*funções aqui */

function calcularTotalQtdeKg() {
    var linhas = document.querySelectorAll('#tabela tbody tr');

    var totalQtdeKg = 0;

    linhas.forEach(function (linha) {
        totalQtdeKg += parseFloat(linha.querySelector('td:nth-child(2)').textContent);
    });

    document.getElementById('totalQtdeKg').textContent = totalQtdeKg.toFixed(2);

    return totalQtdeKg;
}


function calcularTotal() {
    var linhas = document.querySelectorAll('#tabela tbody tr');

    var total = 0;

    linhas.forEach(function (linha) {
        var valorTotal = parseFloat(linha.querySelector('td:nth-child(4)').textContent.replace('R$ ', '').replace(',', '.'));
        total += valorTotal;
    });

    document.getElementById('total').textContent = formatarDinheiro(total);

    return total;
}

function calcularCustoTotal() {
var linhas = document.querySelectorAll('#tabela tbody tr');
var custoTotal = 0;

linhas.forEach(function (linha) {
    var custo = parseFloat(linha.querySelector('td:nth-child(6)').textContent.replace('R$ ', '').replace(',', '.'));
    custoTotal += custo;
});

document.getElementById('custo-total').textContent = formatarDinheiro(custoTotal);

return custoTotal;

}

function calcularMedia() {
    var linhas = document.querySelectorAll('#tabela tbody tr');

    var total = 0;
    var totalQtdeKg = 0;

    linhas.forEach(function (linha) {
        var valorTotal = parseFloat(linha.querySelector('td:nth-child(4)').textContent.replace('R$ ', '').replace(',', '.'));
        var qtdeKg = parseFloat(linha.querySelector('td:nth-child(2)').textContent);
        total += valorTotal;
        totalQtdeKg += qtdeKg;
    });

    var media = totalQtdeKg !== 0 ? total / totalQtdeKg : 0;

    document.getElementById('media').textContent = formatarDinheiro(media);
}

function calcularValorTotal(linha) {
    var qtdeKg = parseFloat(linha.querySelector('.editavel[onclick="habilitarEdicao(this, \'qtde_kg\')"]').textContent);


    var valorUnitario = parseFloat(linha.querySelector('td:nth-child(3)').textContent.replace('R$ ', '').replace(',', '.'));

    var cpv = parseFloat(linha.querySelector('td:nth-child(5)').textContent.replace(',', '.')); // Obtém o CPV

    var valorTotal = qtdeKg * valorUnitario;
   
    var custo = cpv * qtdeKg; // Calcula o custo

    linha.querySelector('td:nth-child(4)').textContent = valorTotal.toFixed(2);
    linha.querySelector('td:nth-child(6)').textContent = custo.toFixed(2); // Exibe o custo na tabela

    // Calcular a margem de contribuição (em porcentagem)
    var margem = (valorUnitario !== 0 ? ((valorUnitario - cpv) / valorUnitario) * 100 : 0);

    // Exibir a margem de contribuição na tabela
    linha.querySelector('td:nth-child(7)').textContent = margem.toFixed(1) + '%';


     //Calcular a média (Valor Total R$/Qtde Kg)
    calcularMedia();
    return valorTotal;
}


function exibirCpv() {
    var linhas = document.querySelectorAll('#tabela tbody tr');

    linhas.forEach(function (linha) {
        var qtdeKg = parseFloat(linha.querySelector('td:nth-child(2)').textContent);
        var custo = parseFloat(linha.querySelector('td:nth-child(6)').textContent.replace('R$ ', '').replace(',', '.'));
       
        // Evita a divisão por zero
        var cpvx = calcularCustoTotal() !== 0 ? calcularCustoTotal() / calcularTotalQtdeKg() : 0;
        //var cpv =  custo / qtdeKg;

        document.getElementById('cpvx').textContent = formatarDinheiro(cpvx);
    });
}

function calcularCPV() {
    var linhas = document.querySelectorAll('#tabela tbody tr');

    linhas.forEach(function (linha) {
        var vunitarioText = linha.querySelector('td:nth-child(3)').textContent;
        var vunitario = parseFloat(vunitarioText.replace('R$ ', '').replace(',', '.'));

        var cpv = parseFloat(linha.querySelector('td:nth-child(5)').textContent.replace('R$ ', '').replace(',', '.'));

        var margem = (vunitario !== 0 ? ((vunitario - cpv) / vunitario) * 100 : 0);
        // Calcula o CPV em porcentagem

        // Adiciona o resultado ao elemento correspondente
        linha.querySelector('td:nth-child(7)').textContent = margem.toFixed(1) + '%';
        document.getElementById('cpvx').textContent = formatarDinheiro(margem);
    });
}

// Chama a função de CPV ao carregar a página
calcularCPV();


/*FRETES E MARGEM*/
 

/*CALCULAR FRETE*/

function calcularFrete() {
    var ufSelect = document.getElementById("uf&quot;
    var distanciaElement = document.getElementById("distancia&quot;
    var valorFinalElement = document.getElementById("valorFinal&quot;

    var uf = ufSelect.value;

    // Tabela de frete (distância em km e valor final em R$)
    var tabelaFrete = {
        'AC': { distancia: 1520, valorFinal: 3040.00 },
        'AL': { distancia: 2006, valorFinal: 4011.00 },
        'AP': { distancia: 1367, valorFinal: 2734.00 },
        'AM': { distancia: 1493, valorFinal: 2986.00 },
        'BA_MET': { distancia: 1080, valorFinal: 2160.00 },
        'BA_EXT': { distancia: 2340, valorFinal: 4680.00 },
        'CE': { distancia: 1285, valorFinal: 2569.00 },
        'DF': { distancia: 1053, valorFinal: 2105.00 },
        'ES': { distancia: 1165, valorFinal: 2329.00 },
        'GO': { distancia: 1696, valorFinal: 3392.00 },
        'MA': { distancia: 1479, valorFinal: 2958.00 },
        'MT': { distancia: 1263, valorFinal: 2526.00 },
        'MS': { distancia: 1722, valorFinal: 3443.00 },
        'MG': { distancia: 1020, valorFinal: 2039.00 },
        'PA': { distancia: 1350, valorFinal: 2700.00 },
        'PB': { distancia: 1849, valorFinal: 3698.00 },
        'PR': { distancia: 2194, valorFinal: 4388.00 },
        'PE': { distancia: 1015, valorFinal: 2029.00 },
        'PI_CENT': { distancia: 2100, valorFinal: 4200.00 },
        'PI_EXT_N': { distancia: 2800, valorFinal: 5600.00 },
        'RJ': { distancia: 1415, valorFinal: 2829.00 },
        'RN': { distancia: 1140, valorFinal: 2280.00 },
        'RS': { distancia: 2050, valorFinal: 4100.00 },
        'RO': { distancia: 1430, valorFinal: 2860.00 },
        'RR': { distancia: 1740, valorFinal: 3480.00 },
        'SC': { distancia: 2224, valorFinal: 4448.00 },
        'SP': { distancia: 1354, valorFinal: 2707.00 },
        'SE': { distancia: 0, valorFinal: 0.00 }, // Valor não especificado
        'TO': { distancia: 1202, valorFinal: 2404.00 },
    };

    // Verifica se a UF selecionada existe na tabela de frete
    if (uf in tabelaFrete) {
        var distancia = tabelaFrete[uf].distancia;
        var valorFinal = tabelaFrete[uf].valorFinal;

        // Atualiza os elementos no HTML com os resultados
        distanciaElement.textContent = distancia;
        valorFinalElement.textContent = valorFinal.toFixed(2);
    } else {
        // UF não encontrada na tabela de frete
        alert('UF não encontrada na tabela de frete.');
    }
}

/*calcular margem*/

function calcularMargemTotal() {
    // Obter os valores necessários
    var resultado = calcularTotal();
    var custoTotal = calcularCustoTotal();
    var frete = calcularFrete();
    var comissaoPercentual = 1.5; // Valor fixo de 1.5%, pode ser ajustado conforme necessário
    var desconto = calcularDesconto(); // Valor fixo de desconto, pode ser ajustado conforme necessário
    // Calcular o valor do frete (já obtido pela função calcularFrete)
    var valorFrete = parseFloat(document.getElementById("valorFinal&quot.textContent.replace(',', '.'));

    // Calcular o valor da comissão
    var comissaoValor = (resultado * comissaoPercentual) / 100;
    // Calcular a margem total
    var margemTotal = (resultado - custoTotal - valorFrete - comissaoValor - desconto) / resultado * 100;

    // Aplicar cores com base nas condições
    if (margemTotal > 15.05) {
        document.getElementById('margem-total').style.background = 'blue';
        } else if (margemTotal < 10.05) {
            document.getElementById('margem-total').style.background = 'red';
        } else {
            document.getElementById('margem-total').style.background = 'yellow';
        }


    // Exibir os resultados na página
    document.getElementById('margem-total').textContent = margemTotal.toFixed(1) + '%';
}

// Função para calcular o desconto
// Função para calcular o desconto
function calcularDesconto() {
    // Obter os elementos necessários
    var prazoElement = document.getElementById("prazo&quot;
    var comissaoElement = document.getElementById("comissao&quot;
    var descontoElement = document.getElementById("desconto&quot;

    // Taxa de desconto diária
    var taxaDiaria = 0.08 / 100;
    // Prazo selecionado
    var prazoSelecionado = parseInt(prazoElement.value);
    var mudarTaxa;

    switch (prazoSelecionado) {
        case 35:
            mudarTaxa = 1.0;
            break;
        case 28:
            mudarTaxa = 0.80;
            break;
        case 21:
            mudarTaxa = 0.60;
            break;
        case 14:
            mudarTaxa = 0.40;
            break;
        case 7:
            mudarTaxa = 0.20;
            break;
        default:
            // Caso nenhum dos valores acima corresponda a prazoSelecionado
            // Defina um valor padrão ou lide com isso conforme necessário.
            mudarTaxa = 0;
            break;
    }

// Agora você pode usar a variável taxaDesconto conforme necessário.

    // Taxa de desconto para o prazo selecionado
    var taxaDesconto = Math.pow(1 + taxaDiaria, prazoSelecionado + mudarTaxa) - 1 ;
    taxaDesconto =  parseFloat(taxaDesconto.toFixed(4).replace(',', '.'));
    // Exibir o desconto na página
    var resultado = taxaDesconto * calcularTotal();
    var resultadoFormatado = parseFloat(resultado.toFixed(2).replace(',', '.'));
    descontoElement.textContent = resultadoFormatado.toFixed(2) + '%';
    console.log(taxaDesconto);
   
    // Chame a função calcularMargemTotal aqui, após calcular o desconto
    return resultadoFormatado;

}

// Adicione o evento 'change' ao select de prazo
document.getElementById("prazo&quot.addEventListener("change", calcularDesconto);

    </script>
</body>
</html>
0

Planilha para buscar dados a partir de um arquivo de texto. Libreoffice (não sei se executa VBA)

Colegas. 
Temos o seguinte texto


Nome......: PETER PAN                                  Cód 123456
CPF/CNPJ..:  000.000.000-00- Tit.                      Dt.Nasc..:  01/01/1900
Espécie...:  TRATOR DE PNEUS                        Cód inventário: 696969
Marca.....: MASSEY FERGUSON                                  Qtd: 1         
Modelo....: MF290                                                           
Placa/UF..:        /      Ano Fab/Mod: 2002 / 2002  Combustível:           
Renavam...:              Chassi/Série: 6968676959            Cor: VERMELHO 
Pot/Cap...: 0000085 HP          
Valor.....:            90.000,00


Agora eu quero, desses dados, os seguintes, para uma planilha chamada "inventário)


CLIENTE Código inventário BEM ANO FABRICAÇÃO/MODELO MARCA MODELO VALOR CHASSIS/SÉRIE


E gostaria que, a partir do  arquivo de texto, a planilha buscasse esses valores.

Porque depois disso, a planilha inventário será usada para uma mala direta, com um modelo padrão para o nosso departamento aqui.,

É possível fazer com que a planilha busque os dados em um arquivo de texto?

Detalhe, serão vários nomes no arquivo de texto, cada qual com seus dados.

Atualização: 28/06/2023 15:22
No forum do libreoffice postaram:

#!/usr/bin/gawk -f

BEGIN {
    # Two field separators, : followed by at least 1 space, or at least 3 spaces.
    FS = ": +| {3,}"
    # Semicolon separated "CSV" (SSV) preferred because data contains commas.
    ofs = ";"
    OFS = ofs
}

/^$/ {
    precord()
    next
}

# Name; Internal Code
# NIN
# Type; Inventory number
# Brand; Qtd
# Model
# Chassis/Serial number
# Value $
/^Name:/ {
    name = enquote($2)
    internal = enquote($4)
    next
}
/^NIN:/ {
    nin = enquote($2)
    next
}
/^Type:/ {
    type = enquote($2)
    inventory = enquote($4)
    next
}
/^Brand\./ {
    brand = enquote($2)
    next
}
/^Model\./ {
    model = enquote($2)
    next
}
/^Chassis\// {
    chassis = enquote($2)
    next
}
/^Value / {
    value = enquote($2)
    next
}

ENDFILE {
    precord()
}

# Name;NIN;Internal Code;Type;Brand;Model;Chassis/SN;Inventory Number;Value
function precord() {
    print name, nin, internal, type, brand, model, chassis, inventory, value
    name = nin = internal = type = brand = model = chassis = inventory = value = ""
}

function enquote(var) {
    quote = 0
    if (index(var, "\"&quot) {
        gsub(/"/, "\"\"", var)
        quote = 1
    }
    if (quote || index(var, ofs))
        var = "\"" var "\""
    return var
}


Só vou ter de entender
0

Validar Campo em Branco

Alguém consegue me ajudar, pois não sei mais onde estou errando nesse código...
O código checa se as textbox que são obrigadas a serem preenchidas estão preenchidas, e caso não esteja uma imagem aparece ao lado sinalizando que é obrigatório.
Então foi adicionado um asterisco * nas tag das textbox que são obrigas a preencher.
Porem quando eu depuro o código, ele está checando um número maior do que tenho, como se não entendesse que é somente as textbox, e não está identificando as textbox vazias.
Se alguém puder me dar uma luz!
0

Marco para PDF.

Fala pessoal.
Estou precisando de uma ajuda aqui, o código não funcionou e preciso da mesma solução que o amigo: " salvar em qualquer computador", sem precisar mexer no código.
Além de salvar em pdf, envio por e-mail
Segue código que estou usando:

Dim OutApp As Object, OutMail As Object
    Dim Nome As String
    Dim assunto As String
    Dim email_forn As String
    Dim caminhopdf As String
       
    email_forn = txtobservacao
    Nome = Sheets("gerar_voucher&quot.Range("AA1&quot
    caminhopdf = VBA.Environ("userprofile&quot & "\Desktop"
    assunto = "Senha de agendamento Cremer - CD Indaial:  " & Nome
    ThisWorkbook.Sheets(Array("gerar_voucher&quot).Select

'Ajuste da largura das paginas:
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.Orientation = Excel.xlPortrait '(retrato)
.Zoom = False
.FitToPagesWide = 1
End With
Application.PrintCommunication = True

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
caminhopdf & "\" & Nome & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=True
   
    Set OutApp = CreateObject("Outlook.Application&quot
    Set OutMail = OutApp.CreateItem(0)
0

Google Planilhas: mover linha de acordo com "Finalizado"

Olá, pessoal.
Preciso de um recurso para uma planilha no Google onde lanço a posição de alguns pedidos que devo controlar de cada aba (EX: MARIA, JÕAO, KEVIN). Quando este pedido recebe o "FINALIZADO" na coluna L, preciso que os dados ali presentes sejam movidos para outra aba (FINALIZADOS), movendo a linha completa. No Excel imagino que dê para fazer por VBA, mas no Google não estou conseguindo. Alguma dica de código?
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal