Macro ou formules qui bug
Bonjour le forum
Je suis sous Excel 2003!!!
Dans un fichier j'ai ajouté des lignes et mis à jour macros correspondantes
Mais lorsque je fait Nouvelle Année (2023) la macro ci-dessous accroche. Je fait Fin et je vais dans les cellules I5 et I6 ci-dessous
où il y a #VALEUR!
Dans les formules je mets 112 à la place de 100 car la nouvelle ligne sur laquelle je fait référence et désormais la ligne 112 de l'année 2022
Mais les calculs ne se font pas correctement, je me suis aperçu et c'est une 1ère pour moi qu'il faut aller dans Outils => Options => Calcul et je me suis aperçu que Automatique était décoché et ça me coche sur Ordre!!!!
Faut-il modifier la macro qui accroche mais je ne pense pas que ça soit possible car lui faire inventer une cellule de référence!!!
Les formules I5 & I6 idem je ne pense pas non plus
Ensuite pour les années suivantes pas de problème car je n'ajoute pas de lignes.
Ça bloque sur cette ligne
If .[I6] < 0 Then De la macro ci-dessous
Sub CelluleG6(Ws As Worksheet)
Dim An As Integer
Application.EnableEvents = False
With Ws
' .Unprotect
An = Val(Split(.Name, " ")(1))
If .[I6] < 0 Then
.[G6].Font.ColorIndex = 3
Call Joli(.[G6], 39, 11, 5)
Call Joli(.[G6], 44, 1, 3)
Else
.[G6] = "Ecart Annuel Définitif En Plus Entre " & An - 1 & " & " & An
.[G6].Font.ColorIndex = 5
Call Joli(.[G6], 38, 11, 3)
Call Joli(.[G6], 43, 1, 5)
End If
' .Protect UserInterfaceOnly:=True, DrawingObjects:=False
End With
Application.EnableEvents = True
End SubJe met 112 à la place de 100 dans cellule I5
=ARRONDI(SOMME(ABS('Charges 2022'!F100);-E3)/12;2)Je met 112 à la place de 100 dans cellule I6=ARRONDI(('Charges 2022'!F100*-1)-(F112*-1);2)*-1Je fait Outils => options => Calcul et coche Calcul Automatique
Y a t-il mieux à faire? Je ne peut pas mettre de fichier Merci à vous pour vos éventuels retoursCordialement
Bonjour je ne pense pas avoir tout saisi mais peut être que ceci t'aidera
A placer au début de la macro :
timerdebut = Timer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManuaA placer à la fin de la macro :
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox "Durée : " & (Timer - timerdebut) & " sec."Le timer et MSG box ne serve qu'a afficher le temps d'exécution de la macro tu peux le retirer
Bonjour Parrish
J'ai mis ça en début de macro et ça fonctionne mais on ne peut pas échapper aux formules à mettre à jour
Merci à toi
Application.Calculation = xlCalculationAutomaticBonne journée
Cotdialement