Bonjour
j'ai créé deux fonctions dans Excel 2016 et 365, la deuxième appellant la 1ère.
J'utilise ces fonctions dans plusieurs onglets du classeur.
Les deux fonctions fournissent les bons calcul, mais quand j'ouvre le classeur et modifie des données, y compris dans des onglets non concernées par ces deux fonctions, les cellules qui utilisent ces deux fonctions affichent "#VALEUR".
Pour réafficher les valeurs calculées, je dois me placer dans le champ de saisie et juste valider le champ. Le calcul se réaffiche.
C'est la 1èrefois que je créée des fonctions et j'ai donc sans doute mal déclaré les deux fonctions qui sont placées dans un module VBA du classeur.
Je vous copie ci-dessous les deux fonctions que j'ai simplifiées, car je ne pense pas que ce soit le code VBA du calcul de la fonction qui pose problème, pusque le résulat est correct quand il s'affiche.
Merci d'avance pour votre aide
Public Function NB_jours_activite(A As Date, B As Date, C As Date, D As Date)
Application.Volatile
Dim S As Date
If (D = A) And (B > S Then
NB_jours_activite = 0
Else
NB_jours_activite = D-A
End If
End Function
Public Function NB_jours_activite_Periode(A As Date, B As Date, C As Date, D As Date)
Application.Volatile
Dim PPD, PPF As Date
PPD = Worksheets("Aparamètres").Cells(4, 2).Value
PPF= Worksheets("Aparamètres").Cells(5, 2).Value
If (A> PPF) Or (D< PPD) Then
NB_jours_activite_Periode = 0
Else
If (A< PPD) And (D <= PPF) Then
A = WorksheetFunction.Max(A, PPD - 1)
NB_jours_activite_Periode = NB_jours_activite(A, B, C, D)
Else
NB_jours_activite_Periode = 99999
End If
End If
End Function
j'ai créé deux fonctions dans Excel 2016 et 365, la deuxième appellant la 1ère.
J'utilise ces fonctions dans plusieurs onglets du classeur.
Les deux fonctions fournissent les bons calcul, mais quand j'ouvre le classeur et modifie des données, y compris dans des onglets non concernées par ces deux fonctions, les cellules qui utilisent ces deux fonctions affichent "#VALEUR".
Pour réafficher les valeurs calculées, je dois me placer dans le champ de saisie et juste valider le champ. Le calcul se réaffiche.
C'est la 1èrefois que je créée des fonctions et j'ai donc sans doute mal déclaré les deux fonctions qui sont placées dans un module VBA du classeur.
Je vous copie ci-dessous les deux fonctions que j'ai simplifiées, car je ne pense pas que ce soit le code VBA du calcul de la fonction qui pose problème, pusque le résulat est correct quand il s'affiche.
Merci d'avance pour votre aide
Public Function NB_jours_activite(A As Date, B As Date, C As Date, D As Date)
Application.Volatile
Dim S As Date
If (D = A) And (B > S Then
NB_jours_activite = 0
Else
NB_jours_activite = D-A
End If
End Function
Public Function NB_jours_activite_Periode(A As Date, B As Date, C As Date, D As Date)
Application.Volatile
Dim PPD, PPF As Date
PPD = Worksheets("Aparamètres").Cells(4, 2).Value
PPF= Worksheets("Aparamètres").Cells(5, 2).Value
If (A> PPF) Or (D< PPD) Then
NB_jours_activite_Periode = 0
Else
If (A< PPD) And (D <= PPF) Then
A = WorksheetFunction.Max(A, PPD - 1)
NB_jours_activite_Periode = NB_jours_activite(A, B, C, D)
Else
NB_jours_activite_Periode = 99999
End If
End If
End Function