Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
Bonjour,
Ce sont les fonctions CalculPosition et CalculPool qui provoquent l'erreur.
- Remplace le code du module Formules par celui-ci :
Option Explicit
Public Teste As Boolean
Function CalculPosition&(Nom$)
Application.Volatile
Dim Course, I%, PosNom As Variant
If Teste = True Then
Teste = False
Exit Function
End If
Course = Array("Espagne", "Australie", "Azerbaïdjan", "ItalieIm", "Autriche", "Singapour", "Hongrie", "Japon", "USA", _
"Monaco", "Pays-Bas", "Miami", "GB", "Belgique", "Canada", "Italie", "Mexique", "Qatar", "Brésil", "Bahrein", "AbuDhabi", "Las Végas", "Arabie Saoudite")
For I = 0 To UBound(Course)
With Sheets(Course(I))
PosNom = Application.Match(Nom, .Range("A:A"), 0)
If IsNumeric(PosNom) Then If .Range("D" & PosNom) = Sheets("Pilotes").Range("H3") Then CalculPosition = CalculPosition + 1
End With
Next
End Function
Function CalculPool(Nom$)
Application.Volatile
Dim I%, PosNom As Variant
If Teste = True Then
Teste = False
Exit Function
End If
For I = 1 To Application.CountIf([Courses], "*")
With Sheets(CStr([Courses].Cells(I, 1)))
PosNom = Application.Match(Nom, .Range("A:A"), 0)
If IsNumeric(PosNom) Then If .Range("E" & PosNom) Then CalculPool = CalculPool + 1
End With
Next
End Function
- Dans la macro Activate de chaque feuille, avant la ligne : rng.PasteSpecial
ajoute :
Teste = True
Dans le classeur joint, je ne l'ai fait que pour Bahrein.
https://www.cjoint.com/c/MEwko4eFPC6
Daniel