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 d'execution 13 incompatibilité de type


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Artisan
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Artisan
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Points : 29
    Points
    29
    Par défaut erreur d'execution 13 incompatibilité de type
    Amis du forum bonjour ,

    Je souhaiterai solutionner un détail sur la ligne de code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub ZtxtQte_Change()
     
    If ZtxtPrxUnit.Value = "" Then
        ZtxtMontant.Value = ""
        Else
        ZtxtMontant.Value = ZtxtPrxUnit.Value * ZtxtQte.Value
    End If
    End Sub
    Les formats de ZtxtMontant et ZtxtPrxUnit sont définit comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub ZtxtMontantDu_Change()
     
    ZtxtMontantDu.Value = Format(ZtxtMontantDu, "0.00")
    End Sub
     
    Private Sub ZtxtPrxUnit_Change()
     
    ZtxtPrxUnit.Value = Format(ZtxtPrxUnit, "0.00")
    End Sub
    Voici mon problème :
    Lorsque je saisie une valeur 0,0 dans le champ de texte (ZtxtQte) tout va bien, mais lorsque je souhaite écrire cette même valeur sous le format 0.0, un message d'erreur apparait : Erreur d'exécution 13 incompatibilité de type.

    La solution doit être simple, mais vu mon niveau débutant je ne la connais pas.

    Quelqu'un a t-il une piste?

    Merci.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Apparemment, tu fais des opérations arithmétiques avec des valeurs texte. Je ne sais pas quelle ligne est en erreur. Utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDbl(ZtxtMontant.Value) = CDbl(ZtxtPrxUnit.Value) * CDbl(ZtxtQte.Value)
    PS. avec VBA, il faut utiliser le point comme symbole décimal, la virgule étant le symbole des milliers.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Artisan
    Inscrit en
    Février 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Artisan
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2012
    Messages : 32
    Points : 29
    Points
    29
    Par défaut
    Merci Daniel.C pour ta réponse

    La ligne qui induit une erreur est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ZtxtMontant.Value = ZtxtPrxUnit.Value * ZtxtQte.Value
    avec ta modife j'ai une erreur de compilation erreur de synthaxe.

    Il me manque peut être des instructions ?
    je n'ai jamais utilisé CDbl...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub ZtxtQte_Change()
     
    If ZtxtPrxUnit.Value = "" Then
        ZtxtMontant.Value = ""
        Else
        CDbl(ZtxtMontant.Value) = CDbl(ZtxtPrxUnit.Value) * CDbl(ZtxtQte.Value)
    End If
    End Sub
    Peux-tu m'aiguiller ?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Au temps pour moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ZtxtMontant.Value = CDbl(ZtxtPrxUnit.Value) * CDbl(ZtxtQte.Value)
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

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

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

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

    Citation Envoyé par Daniel.C Voir le message
    PS. avec VBA, il faut utiliser le point comme symbole décimal, la virgule étant le symbole des milliers.
    Pas forcement, sa depend de la version de ton systeme. Et tu peux même la modifier dans Option>Avancé>Utiliser séparateur système, ou autre

    Donc rattus(c'est pas un héro de livre pour enfant?), je te suggère de vérifier quel est ton spérateur
    Si la réponse vous convient, un petit ça encourage.
    Avant tout nouveau post, pensez à : la FAQ, Google et la fonction Recherche
    Si vous devez poster, pensez à: Ecrire en français, la balise [CODE] (#) et surtout

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour nchal,

    Je ne parle pas d'Excel mais de VBA. Ce dernier utilise les symboles US et ce n'est pas négociable Par contre, le point décimal VBA sera automatiquement traduit dans Excel suivant ce qui est défini soit dans les options régionales de Windows, ou dans les options Excel.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

Discussions similaires

  1. Erreur d'execution 13 : incompatibilité de type
    Par forum2015 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 31/07/2014, 18h05
  2. [Toutes versions] erreur d'execution '13' : incompatibilité de type
    Par cecile_64 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/06/2012, 08h23
  3. erreur d'exécution 13 incompatibilité de type
    Par glamgeek dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/03/2009, 12h03
  4. "erreur d'exécution 13 : incompatibilité de type"
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 19/07/2007, 15h47
  5. erreur d'exécution 13, incompatibilité de type
    Par PHPdudimanche dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/06/2007, 15h20

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