Re,
Normalement la modification que j’ai apportée à ta macro dans le fichier ci-joint devrait correspondre à ton attente.
Je l’ai fait d’une manière un peu spéciale pour bien te montrer que ma modification de code apportée ‘à l’aveugle’ le 20 avril n’était pas si mauvaise
En effet, selon le code que tu avais présenté le même jour Cells(i, "P").FormulaR1C1 = "=IF(ISERROR(VLOOKUP(nomfeuil!RC[-1],nomfeuil!R2C15:R12C16,1,FALSE))=TRUE,""Faux"",VLOOKUP(nomfeuil!RC[-1],nomfeuil!R2C15:R12C16,2,FALSE))", ma proposition ci-après aurait été exacte : Cells(i, "P").FormulaR1C1 = "=IF(ISERROR(VLOOKUP(" & nomfeuil & "!RC[-1]," & nomfeuil & "!R2C15:R12C16,1,FALSE))=TRUE,""Faux"",VLOOKUP(" & nomfeuil & "!RC[-1]," & nomfeuil & "!R2C15:R12C16,2,FALSE))"
Mais en travaillant ton fichier, j’ai vu que tu avais fait une erreur à ce niveau-là : IF(ISERROR(VLOOKUP(nomfeuil!RC[-1] car tu recherches ainsi la valeur d’une autre feuille que celle sur laquelle sont inscrite par macro les formules. Ce passage corrigé aurait dont dû être selon ton code erroné IF(ISERROR(VLOOKUP(RC[-1] (référence à la feuille elle-même par défaut) et moi, au lieu de te proposer le bout de code IF(ISERROR(VLOOKUP(" & nomfeuil & "!RC[-1] , je t’aurais proposé IF(ISERROR(VLOOKUP(RC[-1].
Donc si tu compares le code ci-dessous – placé dans le fichier ci-joint – et mon code du 29 avril, tu vois qu’il n’y a que cette référence à la fausse feuille qui change.
Dim nomfeuil As String
nomfeuil = onglet
For i = 2 To NbLignes
Cells(i, "P").FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-1]," & nomfeuil & "!R2C15:R12C16,1,FALSE))=TRUE,""Faux"",VLOOKUP(RC[-1]," & nomfeuil & "!R2C15:R12C16,2,FALSE))"
Next i
Parmi les bizarreries nécessaires à permettre la comparaison entre mon ancien et mon nouveau code, il y a cette ligne nomfeuil = onglet qui transforme ta nouvelle dénomination de variable en ton ancienne dénomination de la même variable. Par la suite, tu peux bien entendu choisir l'une ou l'autre dénomination.
A te relire.
NB : D’autres passages de ton code fonctionnent mais mériteraient d’être corrigés.
NB bis : Je ne comprends pas que tu t’entêtes à vouloir passer tes fichiers par CJoint alors qu’ils ne dépassent pas la taille de 300 Ko et qu’ils peuvent donc tout à fait être placés avec les moyens du Forum, tel que je te l’ai indiqué le 29 avril, ce qui serait plus simple pour les deux parties.