Bonjour à tous,

Je suis face à un problème plutôt désarmant : j’ai modifié un morceau de code qui fonctionne parfaitement en remplaçant TODAY() par DATEVAL("01/01/2015") et cela génère l’ « erreur 13 - incompatibilité de type » sur la ligne n° 7 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Essai()
' supprimer les lignes dont les échéances sont de l'an passé
    Range("A2").Select
    Do While ActiveCell <> ""
    If ActiveCell <> "" Then
     ActiveCell.Offset(0, 18).Formula = "=IF(RC[-11]<DATEVAL(""01/01/2015""),""x"","""")"  '18 avec Offset = colonne S
         If ActiveCell.Offset(0, 18).Value = "x" Then
         ActiveCell.EntireRow.Delete
         Else: ActiveCell.Offset(1, 0).Range("A1").Select
         End If
    End If
    Loop
End sub
Quand je vais sur la feuille Excel la formule correspond en tout point à celle que je saisis directement dans Excel mais avec la saisie faite directement dans Excel cela fonctionne alors que la formule issue de VBA génère l’erreur « #NOM ? ». Par ailleurs, avec la formule issue de VBA il suffit que je place le curseur dans la barre de formule d’Excel et que je fasse Entrer pour que la formule fonctionne.
Les cellules en colonne A (cellule active) sont au format date jj/mm/aaaa. J’ai essayé de changer le format des cellules recevant la formule en colonne S, avec standard ou texte mais cela ne change rien.
Qu’est-ce qui fait qu’Excel ne reconnait la formule issue de la macro ?

Merci de votre aide.
Cordialement