Calc Cellule 1 Si La Date Est Calculer Les Depass

Calc cellule 1 si la date est calculer les dépassé

Utilisez ce calculateur premium pour savoir si une échéance est dépassée, combien de jours de retard sont constatés, et quelle valeur retourner dans une cellule de type Excel ou Google Sheets. Le principe est simple : si la date de référence dépasse la date limite, la cellule renvoie 1, sinon 0. Vous pouvez aussi intégrer un délai de grâce et choisir votre logique de comparaison.

Entrez la date d’échéance à surveiller.
Généralement aujourd’hui ou une date d’audit.
Ajoute un nombre de jours avant de considérer l’échéance comme dépassée.
Choisissez une comparaison stricte ou inclusive.
Définissez le format souhaité pour votre logique métier.
Ce réglage influence l’affichage dans les résultats.
=' : '>'; const datePart = graceDays > 0 ? 'A2+' + graceDays : 'A2'; let formula = '=SI(AUJOURDHUI()' + comparator + datePart + ';1;0)'; if (outputMode === 'days') { formula = '=MAX(0;AUJOURDHUI()-(' + datePart + '))'; } if (outputMode === 'text') { formula = '=SI(AUJOURDHUI()' + comparator + datePart + ';"Dépassé";"À temps")'; } formulaPreviewInput.value = formula; } function renderChart(daysRemaining, graceDays, overdueDays) { if (wpcChartInstance) { wpcChartInstance.destroy(); } wpcChartInstance = new Chart(chartCanvas, { type: 'bar', data: { labels: ['Jours restants', 'Délai de grâce', 'Jours dépassés'], datasets: [{ label: 'Analyse des échéances', data: [daysRemaining, graceDays, overdueDays], backgroundColor: ['#2563eb', '#f59e0b', '#dc2626'], borderColor: ['#1d4ed8', '#d97706', '#b91c1c'], borderWidth: 1, borderRadius: 10 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { y: { beginAtZero: true, ticks: { color: '#475569' }, grid: { color: '#e2e8f0' } }, x: { ticks: { color: '#475569' }, grid: { display: false } } }, plugins: { legend: { labels: { color: '#0f172a' } }, tooltip: { backgroundColor: '#0f172a', titleColor: '#ffffff', bodyColor: '#ffffff' } } } }); } function calculate() { const deadlineValue = deadlineInput.value; const referenceValue = referenceInput.value; const graceDays = Math.max(0, parseInt(graceInput.value, 10) || 0); const logicMode = logicModeInput.value; const outputMode = outputModeInput.value; const dateFormat = dateFormatInput.value; if (!deadlineValue || !referenceValue) { resultsBox.innerHTML = 'Erreur

Veuillez renseigner la date limite et la date de référence.

'; return; } const deadlineDate = new Date(deadlineValue + 'T00:00:00'); const referenceDate = new Date(referenceValue + 'T00:00:00'); const adjustedDeadline = addDays(deadlineDate, graceDays); const comparisonDays = diffInDays(referenceDate, adjustedDeadline); const isOverdue = logicMode === 'inclusive' ? comparisonDays >= 0 : comparisonDays > 0; const overdueDays = isOverdue ? Math.max(0, comparisonDays) : 0; const daysRemaining = isOverdue ? 0 : Math.abs(comparisonDays); const rawDifference = diffInDays(referenceDate, deadlineDate); let cellOutput; if (outputMode === 'binary') { cellOutput = isOverdue ? 1 : 0; } else if (outputMode === 'days') { cellOutput = overdueDays; } else { cellOutput = isOverdue ? 'Dépassé' : 'À temps'; } let badgeClass = 'wpc-badge-success'; let statusText = 'À temps'; if (isOverdue) { badgeClass = 'wpc-badge-danger'; statusText = 'Dépassé'; } else if (daysRemaining <= 3) { badgeClass = 'wpc-badge-warning'; statusText = 'Échéance proche'; } resultsBox.innerHTML = '
' + statusText + '
' + '
' + '
' + 'Valeur cellule' + '' + cellOutput + '' + '
' + '
' + 'Date limite ajustée' + '' + formatDate(adjustedDeadline, dateFormat) + '' + '
' + '
' + 'Jours dépassés' + '' + overdueDays + '' + '
' + '
' + 'Écart brut vs échéance initiale' + '' + rawDifference + '' + '
' + '
' + '

Règle appliquée : ' + (logicMode === 'inclusive' ? 'date de référence >= date limite ajustée' : 'date de référence > date limite ajustée') + '.

' + '

Lecture : si la date de référence du ' + formatDate(referenceDate, dateFormat) + ' ' + (isOverdue ? 'dépasse' : 'ne dépasse pas') + ' la date limite ajustée du ' + formatDate(adjustedDeadline, dateFormat) + ', la sortie renvoyée est ' + cellOutput + '.

'; renderChart(daysRemaining, graceDays, overdueDays); } calcBtn.addEventListener('click', calculate); resetBtn.addEventListener('click', function () { deadlineInput.value = ''; graceInput.value = '0'; logicModeInput.value = 'strict'; outputModeInput.value = 'binary'; dateFormatInput.value = 'fr'; setToday(); updateFormulaPreview(); resultsBox.innerHTML = 'Renseignez les champs puis cliquez sur Calculer pour voir le statut, la valeur de cellule et le graphique.'; if (wpcChartInstance) { wpcChartInstance.destroy(); wpcChartInstance = null; } }); graceInput.addEventListener('input', updateFormulaPreview); logicModeInput.addEventListener('change', updateFormulaPreview); outputModeInput.addEventListener('change', updateFormulaPreview); setToday(); updateFormulaPreview(); renderChart(0, 0, 0); })();

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top