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 :

erreur sur la fonction IsMissing dans VBA ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2008
    Messages : 57
    Par défaut erreur sur la fonction IsMissing dans VBA ?
    Bonjour,
    Sur Excel (2016) j'obtiens 2 fois "False" pour les 2 appels à 'mysub' et je ne comprends pas pourquoi... une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub start()
    Call mysub(3)
    Call mysub(3, 4)
    End Sub
     
    Sub mysub(P As Long, Optional Q As Long)
    MsgBox IsMissing(Q)
    End Sub
    En fait, si j'enlève le type de 'Q', j'obtiens bien d'abord 'True' puis 'False' ce qui est juste : mais alors, comment fixer le type d'une variable optionnelle ?
    Sub mysub(P As Long, Optional Q)
    MsgBox IsMissing(Q)
    End Sub

    Merci...

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si l'argument optionnel de type Long n'est pas utilisé, il vaut 0

    Une solution si l'on souhaite faire une distinction si la variable optionnelle a été utilisée, c'est de lui donner une valeur par défaut comme -1 ou -999 (c'est un exemple) et d'effectuer un test sur cette valeur
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 508
    Par défaut
    Salut,

    quelques précisions:
    L'utilisation de la fonction IsMissing n'a de sens qu'avec les arguments de type variant, ces derniers ayant la particularité d'avoir une valeur, d'être Null ou Vide ou Manquant.
    Tous les autres types natif ont une valeur par défaut:
    0 pour les nombres entier ou réels.
    01/01/1900 pour les dates.
    vbNullString (ou "") pour les chaînes.

    On peut certes, s'appuyer sur les valeurs par défaut, à condition que cela aie un sens.
    Par exemple, une fonction recevant une quantité optionnelle en paramètre, une quantité ne pouvant être négative, il est censé de mettre une valeur par défaut négative.
    Par contre, une fonction recevant une somme optionnelle en paramètre, une somme pouvant n'importe quelle valeur, une valeur par défaut n'aura pas de sens.

Discussions similaires

  1. [XL-2016] Erreur sur la Fonction Selection.Find VBA
    Par Mouchouko dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 07/04/2022, 22h43
  2. [XL-2003] Erreur avec la fonction Min dans VBA Excel
    Par Marymimo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/08/2009, 09h08
  3. [E-03] Aide sur la Fonction .Find dans VBA
    Par Gunsx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/01/2009, 22h36
  4. erreur sur la requete present dans vba
    Par laurent.w dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 11/01/2007, 09h26
  5. [VBA-E]Erreur sur suppression d'images dans excel
    Par bernard38 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 18/04/2006, 13h55

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