IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

DATEVAL : erreur 13 dans VBA et #NOM? dans Excel - incompréhensible [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    logisticien
    Inscrit en
    Août 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : logisticien

    Informations forums :
    Inscription : Août 2014
    Messages : 28
    Points : 21
    Points
    21
    Par défaut DATEVAL : erreur 13 dans VBA et #NOM? dans Excel - incompréhensible
    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

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour,

    en VBA le champ formula d'une cellule utilise une syntaxe anglaise et un adressage du type "A1"

    pour connaitre la syntaxe à utiliser :
    1. Saisie la formule sous excel
    2. Positionne toi sur la cellule contenant la formule
    3. passe dans VBA grâce à ALT+F11
    4. passe dans la fenêtre d'exécution grâce à CTRL+G
    5. Affiche la formule de la cellule courante en saisissant : ? ActiveCell.Formula
    6. puis entrée...
    7. Tu peu aussi regarder les autres champs propriété formule voir s'il y as en un qui te convient mieux : FormulaR1C1, FormulaLocal , FormulaR1C1Local

  3. #3
    Membre à l'essai
    Homme Profil pro
    logisticien
    Inscrit en
    Août 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : logisticien

    Informations forums :
    Inscription : Août 2014
    Messages : 28
    Points : 21
    Points
    21
    Par défaut
    Bonjour bbil,

    Un grand merci pour ta réponse super rapide, qui m'apporte la réponse et en plus une manip fort utile pour la suite.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. obtenir dans VBA le nom de la session Windows
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/03/2008, 15h58
  2. IIF sur Mémo dans une requête tronqué dans VBA
    Par lemat dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/09/2007, 13h55
  3. [VBA-E] écrire dans un range de cellules excel depuis VBA
    Par pro64 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/03/2007, 17h22
  4. Récupérer la valeur des champs calculés dans une requète SQL dans vba
    Par FrédéricCM dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 28/06/2006, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo