Figer le calcul automatique d'une ligne en fonction de sa date

  • Initiateur de la discussion Initiateur de la discussion hypo78
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

hypo78

XLDnaute Impliqué
Bonsoir à tous,

Supposons un tableau de récap contenant 600 lignes et 50 colonnes.
Dans chaque cellule, une formule du type =INDIRECT.....

Forcément c'est très gourmand, et çà donne un fichier qui rame.

Ma question : chaque ligne correspondant à une date est-il possible de figer la valeur des cellules, donc de stopper le calcul, des lignes ayant une date antérieur à aujourd'hui et de celles n'ayant pas encore de date.

Je joins un petit fichier ne contenant pas grand chose juste pour illustrer la conception du fichier original.

Cordialement. Merci d'avance
 

Pièces jointes

Re : Figer le calcul automatique d'une ligne en fonction de sa date

Bonjour,

essaye ceci, à placer dans le module "thisworkbook", attention sous 2007 ton classeur doit être de format "xlsm", classeur prenant en charge les macros...
Code:
Option Explicit
Dim x As Range
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
With Sheets("Recap")
    Set x = Sheets("Recap").Columns(1).Find(Date, , xlValues, xlWhole, , , False)
    If Not x Is Nothing Then .Rows(x.Row).Calculate
End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Calculation = xlCalculationAutomatic
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not x Is Nothing Then Sheets("Recap").Rows(x.Row).Calculate
End Sub

bonne journée
@+
 
Re : Figer le calcul automatique d'une ligne en fonction de sa date

Bonjour Pierrot,
Dans mon classeur original, j'ai d'autres onglets qui comportent des formules, et le fait de commencer la macro par :
Code:
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
me stoppe les calculs dans ces autres onglets.
Je pense que je dois donc ajouter une ligne dans le code du genre :
Code:
With ActiveSheet
Application.Calculation = xlCalculationAutomatic
End With

Petite question la référence Date dans la macro fait référence à la date du jour ou juste à un format date?
ma colonne A ne contient pas que des dates, est ce gênant?

Merci de te pencher sur mon problème.

Cordialement

Edit : à la moindre saisie sur mon fichier je suis en debogage sur cette ligne :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not x Is Nothing Then Sheets("Dossards").Rows(x.Row).Calculate
End Sub
 
Dernière édition:
Re : Figer le calcul automatique d'une ligne en fonction de sa date

Re,

me stoppe les calculs dans ces autres onglets.
Je pense que je dois donc ajouter une ligne dans le code du genre :

tu peux rajouter ceci :
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name <> "Recap" Then Sh.Calculate
End Sub

Edit : à la moindre saisie sur mon fichier je suis en debogage sur cette ligne :

pas de problème chez moi, je te joins le classeur sur lequel j'ai fait les tests...
 

Pièces jointes

Re : Figer le calcul automatique d'une ligne en fonction de sa date

Re,

j'ai essayé ton fichier, effectivement pas de debogage.
Par contre, comme je le pensais en lisant ta macro, les calculs ne se font pas si la colonne A ne contient pas de date, mais se font même si la ligne à une date antérieure à Aujourd'hui.

Il faut rajouter une condition du genre date = today.... mais où?? je suis en core obligé de te demander de l'aide.

Merci
 

Pièces jointes

Re : Figer le calcul automatique d'une ligne en fonction de sa date

Re,

Par contre, comme je le pensais en lisant ta macro, les calculs ne se font pas si la colonne A ne contient pas de date
bah... c'est ce que tu voulais, non... ne disais-tu pas :
Ce que je souhaite : que les lignes contenant une date antérieure à la date du jour fige leur valeur et que si la colonne A ne contient pas de date (ex A25 et suivante) le calcul ne se fasse pas.

Il faut rajouter une condition du genre date = today.... mais où?? je suis en core obligé de te demander de l'aide.
ielle y est déjà, non... :
Code:
    Set x = Sheets("Recap").Columns(1).Find(Date, , xlValues, xlWhole, , , False)
    If Not x Is Nothing Then .Rows(x.Row).Calculate
chez moi, les calculs ne se font que sur la ligne en question...
 
Re : Figer le calcul automatique d'une ligne en fonction de sa date

re,

chez moi les calculs se font sur toutes les lignes contenant une date d'où mon message.
mes macros me semblent activées, je n'ai jamais eu de pb en passant de 2003 à 2007, je vais tester au boulot sur 2003.

Juste pour que je progresse : quelle est l'écriture dans ton code VBA qui dit antérieure à aujourd'hui.

Merci pour ta patience.

Cordialement.
 
Re : Figer le calcul automatique d'une ligne en fonction de sa date

Re,

Juste pour que je progresse : quelle est l'écriture dans ton code VBA qui dit antérieure à aujourd'hui.
aucune... le code ci-dessous recherche la cellule qui contient la date du jour, si la date est trouvée initialise une variable, laquelle est ensuite utilisée pour déterminer la ligne qui est calculée...
Code:
    Set x = Sheets("Recap").Columns(1).Find(Date, , xlValues, xlWhole, , , False)
    If Not x Is Nothing Then .Rows(x.Row).Calculate
 
Re : Figer le calcul automatique d'une ligne en fonction de sa date

Bonjour

Excusez moi de relancer ce post mais est ce possible d'utiliser cette macro (en bidouillant pour adapter à mon tableau avec un peu d'aide si vous le voulez bien) pour calculer les dotations de congé au 1er mai sur 5 ans ... tout en sachant que le calcul doit s'arrêter à une date donner (indiquée en C18) je vais joindre mon fichier pour que ça soit plus clair.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

M
Réponses
2
Affichages
1 K
MarionP85
M
A
Réponses
1
Affichages
905
S
Réponses
2
Affichages
1 K
SimpsonHomer
S
E
Réponses
8
Affichages
1 K
Esfloria
E
Retour