Bonjour à Tous & Toutes
Bonjour James
Toujours pas à 100% de la forme mais un mieux...
Afin d'essayer de mieux m'expliquer :
Alors ci-joint fichier où il y a en macro en extrait quelques uns des calculs qui existent et fonctionnent actuellement et qui sont du genre :
If Cells(i, 2) = True And Cells(i, '8) = True And Cells(i, 9) = True And Cells(i, 5) = True Then
Cells(i, 16).Value = True
Else
Cells(i, 16).Value = False
End If
Je souhaite pour optimiser le temps... et selon les conseils de la page de microsoft dédiée à l'optimisation des performances en version 2010...
passer de ces formules (If avec And) à du COUNTIF du genre :
var = Application.WorksheetFunction.CountIf(Range(Cells(i, 2), Cells(i, 5)), True)
If var = 4 Then
Cells(i, 6).Value = True
Else
Cells(i, 6).Value = False
End If
Le seul et unique souci : la plage pour le "countif"...
J'ai 10 colonnes qui servent à mes calculs. J'ai donc défini chacune de ces 10 colonnes comme une plage à part entière.
Puis j'ai défini "Plage_Calcul01" (qui représente les plages des colonnes dont j'ai spécifiquement besoin pour le calcul 1) en utilisant "union"...
et ainsi de suite jusqu'à "Plage_Calcul75" qui est le dernier calcul dont j'ai besoin dans ce cas précis...
Là j'ai toujours une erreur qui est indiquée dans la ligne de code var quand je met pour la partie qui définie dans CountIf la plage "Plage_Calcul"
Donc, comme vba ne se trompe jamais mais le programmeur si.... rdi2:
Soit je ne codifie pas correctement les plages de chacune des colonnes,
soit je codifie pas correctement les plages "Plages_Calcul" ,
soit je codifie pas correctement la ligne contenant le Countif...
ou pire encore... je codifie mal pour ces 3 points...
Est-ce un peu plus clair ?...
Je ne sais pas si c'est possible... Bien que mon credo soit que rien n'est impossible avec excel...
Encore merci pour le temps consacré à m'aider...
A plus...