Je n'ai pas testé, mais quelque chose comme ceci devrait fonctionner
Vérifie la formule. J'ai possiblement supprimer les mauvaises parenthèses...
Donc, plutôt que de vérifier dans ta formule s'il y a des données en O, tu le fais avant avec WorksheetFunction
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub Calcul1() Dim nbLignes as long Dim Chemin As String Dim MyFormula As String Dim Source As String nbLignes = Cells(rows.count,"A").End(xlup).row Source = ThisWorkbook.Path Chemin = Source & "\[Matrice Frais (Km + MO).xlsm]Matrice Distance" If Application.Worksheetfunction.counta(columns("O")) > 0 Then MyFormula = "=INDEX('" & Chemin & "'!$A:$BZ,MATCH($C:$C,'" & Chemin & "'!$A:$A,0),MATCH($D:$D,'" & Chemin & "'!$1:$1,0)*2)" Range("R2:R" & nbLignes) = MyFormula End if End Sub