Bonjour,
Depuis que je suis passé d'Excel 2010 ou 2013, vers 365, je rencontre un problème avec ma macro.
le fichier excel est une passerelle entre deux logiciels, je converti les valeurs de l'un avec le "formalisme" de l'autre. cet extrait de code est dans une boucle (for)
le problème porte sur la ligne: Cells(j - 1, 5).FormulaR1C1 = "=IF(ISNA(VLOOKUP(RC[-4],Tableau_dernière_revision_technique,2,FALSE))=TRUE, """",VLOOKUP(RC[-4],Tableau_dernière_revision_technique,2,FALSE))"
- RC[-4] contient la valeur que je cherche dans la base de donnée (format texte de chaque coté pour concerver les zéros en début de terme, exemple 002510).
- Tableau_dernière_revision_technique est la base de donnée déportée de mon ERP, c'est le nom de la zone ou est collée la BBD.
- Dans la cellule Cells(j - 1, 5) je renvoie la valeur à droite du terme recherché dans la BDD, en lien avec le '2' de la fonction VLOOKUP.
- Si je ne trouve rien je renvoie la valeur "A" (ligne suivante)
or depuis 365, la formule ne s'active pas dans la cellule Cells(j - 1, 5), et donc je ne renvois que des "A".
J'ai fait du pas à pas pour vérifier l'exécution, lorsque la formule est collée, je rentre dans la cellule RC[-4] et je valide sa valeur, à ce moment la formule s'active et renvois la bonne valeur. j'ai essayé plein de manipulation de données, couper, copier, collé, FormulaR1C1 = 'cell.value' , etc. rien n'y fait.
Auriez vous une idée pour actualiser la recherche? (je précise que dans les options d'excel, l'actualisation des formules est activée).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Cells(j - 1, 5).FormulaR1C1 = "=IF(ISNA(VLOOKUP(RC[-4],Tableau_dernière_revision_technique,2,FALSE))=TRUE, """",VLOOKUP(RC[-4],Tableau_dernière_revision_technique,2,FALSE))" ' "=IF(ISNA(VLOOKUP(RC[-4],Tableau_dernière_revision_technique[#All],2,FALSE))=TRUE, """",VLOOKUP(RC[-4],Tableau_dernière_revision_technique[#All],2,FALSE))" If Cells(j - 1, 5).Value = "" Then Cells(j - 1, 5).Value = "A"
Merci d'avance![]()
Partager