bonjour,
l'utilisation de select n'est pas une bonne idée, ça ralentit le traitement et on peut facilement s'en passer
Select permet de sélectionner un objet et le rendre actif. S'il y a une hiérarchie d'objets comme dans le cas présenté dans ton code, il faut sélectionner les objets selon la hiérarchie.
sheets("RESULTAT").select 'ou activate
cells("B4").select
Sheets("RESULTAT").Cells(b, 4).Select 'pourrait fonctionner si la feuille active au moment de l'exécution de cette instruction est RESULTAT
Si on utilise .select, l'idée est en principe d'utiliser selection par la suite pour référer à l'objet sélectionné.
selection.Calculate
Tu peux simplement te passer de tous ces select et activate, en indiquant précisément l'objet dont tu veux utiliser une méthode et une propriété.
Edit : je pensais avoir mis ceci ...
Dim DerLig66 As Integer
DerLig66 = Sheets("RESULTAT").Range("D" & Rows.Count).End(xlUp).row
Sheets("RESULTAT").range("D2:D" & Derlig66).Calculate