Excel SOMME toujours à 0 avec la fonction AUJOURD'HUI

Bonjour à tous ,

Je viens de faire un tableau de suivi d'activité .

Je souhaite avoir le nombre de appels que font mes collaborateurs

J'ai donc une feuille récapitulant la base de données ou ils changent les couleurs et une autre feuille avec les indicateurs

voici la formule:

=SI(B25=AUJOURDHUI();($C$4-D25);D25)

je souhaite donc faire la différence entre la somme du Jour d'avant avec celle du jour même.

J'ai toujours 0

En espérant avoir été claire

D'avance Merci

24mathieu.xlsm (41.16 Ko)

Bonjour,

Je crois que tu as un soucis avec ta formule, si je comprends bien, dans la cellule D25, tu écris:

=SI(B25=AUJOURDHUI();($C$4-D25);D25)

Ce qui génère l'erreur "référence circulaire", une formule écrite dans la cellule D25 ne peut pas appeler la valeur de D25, je n'ai pas très bien compris ce que tu souhaitais, pourrais-tu expliquer tout ça?

Bonjour Ausecour ,

Et tout d'abord merci de m'accorder de ton temps

Colonne B Date

Colonne C difference entre le nombre Totalisé de J-1 et le nombre à la date d'aujourd'hui

Colonne D Nbr d'appel fait depuis le début

Le but : avoir le nombre d'appels fait par jour

Problématique : impossible de faire la différence entre le nombre d'appel passé à J-1 et le nombre d'appel passé à J

Exemple que je souhaiterais obtenir

Colonne B Colonne C Colonne D

DATE Nbrs d'appels passés Nbr d'appels cumulé

18/02 8 70

19/02 10 80

*Formule dans la colonne D , nous avons=SI(B25=AUJOURDHUI();($C$4-D25);D25)

afin de récuperer le nombre d'appel cumulé dans la case C4 en fonction de la date

*Formule dans la colonne C la soustraction 70-80 , nous avons le résultat 0 alors que nous devrions avoir 10

Re

Je bloque toujours un peu sur la compréhension de ton fichier, j'ai encore l'impression que ta colonne C appelle la colonne D qui appelle déjà la colonne C et ainsi de suite... J'ai du mal à suivre pour être honnête, où rentre tu tes données dans ce tableau au final?

De ce que je vois, tu veux mettre le nombre fait dans la colonne D de la date correspondant à aujourd'hui, mais ça veut dire que le lendemain la colonne va se vider Comment fais-tu pour que ton tableau vive normalement?

désolé pour les explications peu claires ,

Mais oui effectivement , je n’arrive pas à bloquer la cellule ,

Je viens de changer la date du PC .........elle revient à zéro ........

Re,

C'est normal que la valeur ne se conserve pas, tu ne peux pas faire comme tu le fais actuellement avec des formules.

Pourquoi? Car tu as une seule cellule qui essaye de contenir les informations de plusieurs jours, en clair, tu veux faire le travail d'une macro avec des formules, c'est pour ça que ça ne fonctionne pas, donc il faut soit passer par une macro pour compenser la structure de ton fichier, soit revoir la structure de ton fichier.

Ok pour cette éclaircissement

Étant novice en la matière ...... avez-vous une piste ou tuto à me conseiller pour m'aider ?

Afin que je puisse figer la cellule si la date n'est pas celle d'aujourd'hui.........

Re,

Pour apprendre à coder en VBA, tu peux te tourner vers ce site qui possède des cours qui pourront t'aider :

https://www.excel-pratique.com/fr/vba.php

Après, tu ne vas pas avoir besoin de beaucoup de choses, tu vas avoir besoin de (si tu veux coder ça toi-même):

Range("A1") qui permet d'appeler la cellule A1 dans un programme VBA, si tu écris:

Sub test()
Range("A1") = 2
End Sub

Tu as ton programme "test" qui commence au "Sub test()", et se finit au "End Sub", ensuite, tu donnes la valeur 2 à la cellule A1 via Range("A1") = 2

Toi ce que tu vas vouloir c'est affecter la valeur d'une cellule dont tu connais la colonne, mais pas la ligne, tu auras donc une ligne qui ressemble à:

Range("A" & ligne) = 2

Après tu dois aussi te tourner vers l'instruction Range().find pour trouver la ligne où tu veux exporter ton information, c'est tout ce dont tu auras besoin normalement

Range().find().row pour avoir la ligne.

Bonjour Ausecour ,

Suite à la lecture et quelques cachets d'aspirines j'ai pu me solutionner , ci dessous le code ci tu vois une amélioration .... je suis preneur

Encore merci pour ton aide

bon week à tous

Sub actualiser()

Dim rg As Range

Dim Nombre As Range

Dim TODAY As Date

Dim Fait As Integer

Dim A_faire As Integer

TODAY = Range("F4")

If MsgBox("Voulez-vous Actualiser le fichier ?", vbYesNo, "MISE A JOUR") = vbNo Then Exit Sub

ActiveWorkbook.RefreshAll

Set rg = Range("B22:B167").Find(Range("F4"))

rg.Offset(0, 2).Value = Range("D4") - Range("C4")

End Sub

Bonjour,

Je te propose cette amélioration:

Sub actualiser()
Dim TODAY As Date
TODAY = Range("F4")

If MsgBox("Voulez-vous Actualiser le fichier ?", vbYesNo, "MISE A JOUR") = vbNo Then Exit Sub
ActiveWorkbook.RefreshAll

Range("B22:B167").Find(Range("F4")).Offset(0, 2) = Range("D4") - Range("C4")
End Sub

J'ai enlevé les variables que tu n'utilisais pas dans ton code, et supprimé les lignes qui ne servaient pas, comme le set rg =... alors que tu n'utilisais la variable qu'une fois.

Rechercher des sujets similaires à "somme fonction aujourd hui"