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 :

Inputbox : le bouton annuler provoque une erreur d'éxécution 13 [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut Inputbox : le bouton annuler provoque une erreur d'éxécution 13
    Bonjour le forum!

    J'ai une inputbox dont voici la ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sem = InputBox("Entrez le numéro de la semaine à calculer", "Semaine")
    Lorsque l'on affiche cette inputbox (via un bouton) et que l'on clique sur annuler j'ai le message d'erreur suivant : "Erreur d’exécution 13 : Incompatibilité de type"

    Ma variable Sem est de type "Long"

    Je souhaiterais juste que lorsque l'on clique sur annuler, on "quitte" la fonction.

    Merci d'avance pour vos réponses!

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    vois ici le pourquoi :

    http://www.developpez.net/forums/d11...l/#post6479572

    toi, c'est avec le long que c'est incompatible, mais la cause est identique

    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci, je me doutais qu'il s'agissait de quelque chose comme ça ....

    Mais je ne trouve pas comment éviter le message d'erreur ... Si je fais un test sur Sem aprés ma ligne de code j'ai toujours cette erreur, et si j'initialise Sem à "" ou 0 ou Nothing j'ai une erreur d'incompatibilité de type (j'ai essayé aussi de change le type de Sem en Integer)

    De plus je dois faire "exit function" car je me trouve dans une function et pas une sub, cela pose-t-il un problème?

  4. #4
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    rapidos,

    Si tu mets ta variable en Variant, ça doit passer, mais de toutes façons, logiquement tu devras tester ce qu'a entré la personne comme données

    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  5. #5
    Membre éclairé Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Par défaut
    Bonjour

    La variable de recupération d'un Input doit être un String il me semble.
    Donc passer de Long à Int ne changera pas ton problème.

    Après y a toujours moyen de caster ou même d'utiliser la fonction Val()

  6. #6
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Citation Envoyé par nchal

    La variable de recupération d'un Input doit être un String il me semble.
    En fait non, c'est une question de nuance, ce qui est renvoyé par la fonction Inputbox est un String, mais la variable qu'on utilise pour le récupérer peu être un Variant (donc String = OK), où comme le faisait fowlie autre chose si le pouvoir d'interprétation du VBA faisant le reste le tolère (c'est bien là le souci si on ne sait pas exactement où l'on met les pieds).
    Par contre dans le cas du bouton annuler ou de la croix rouge, là pas d'interprétation correcte possible et ça plante, cf le fil cité (ce n'est pas un mal, vu que ça nous force à songer à tout ça...)

    @, selon le contexte, vois si tu n'a pas intérêt à utiliser la méthode Inputbox plutot que la fonction (cf aide VBA).


    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ok merci pour les conseils et explications j'ai donc changer mon code en mettant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    On Error Resume Next
    Sem = InputBox("Entrez le numéro de la semaine ", "Semaine")
    If Sem = "" Then MsgBox "Je traite la situation": On Error GoTo 0: Exit Function
    Et plus de message d'erreur =)
    Merci à tous

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/03/2012, 14h22
  2. [Toutes versions] Protection sur une partie des cellules provoque une erreur à l'éxécution de la macro
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/01/2012, 15h36
  3. [SGBD] mysql_fetch_array provoque une erreur
    Par nicerico dans le forum Requêtes
    Réponses: 6
    Dernier message: 06/10/2005, 14h20
  4. Select Case provoque une erreur
    Par defluc dans le forum SQL
    Réponses: 6
    Dernier message: 14/08/2005, 23h59
  5. Réponses: 5
    Dernier message: 04/04/2003, 15h02

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