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 :

"Incompatibilité de type" soustraction de chiffres négatifs


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 7
    Par défaut "Incompatibilité de type" soustraction de chiffres négatifs
    Bonjour,

    Comme indiqué en titre, j'ai un petit programme tout bête pour soustraire deux colonnes et afficher le résultat dans une troisième. Seulement voilà, les cellules étant toutes (ou presque toutes) négatives, VBA me signale une "Incompatibilité de type" lorsque je lance la macro... Par contre, lorsque j'additionne, là ça marche !
    Les cellules sont bien au format chiffre, écrire une formule et la tirer fonctionne très bien (sur 7000 lignes !!!), alors je ne comprends pas vraiment d'où vient le problème...
    Voici mon programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub Soustraction()
    For i = 1 To 7000
        If Range("C" & i).Value = 0 Or Range("D" & i).Value = 0 Then
        Range("E" & i).Value = ""
        Else: Range("E" & i).Value = Range("C" & i).Value - Range("D" & i).Value
        End If
    Next i
    End Sub
    Si vous avez une idée, je suis preneur !

    Merci !

    GUILLAUME

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Essais en forçant la valeur ou en convertissant le type de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Else: Range("E" & i).Value = Val(Range("C" & i).Value) - Val(Range("D" & i).Value)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 7
    Par défaut
    Merci Jérôme pour ton aide, le message d'erreur n'apparaît plus avec la petite modification !
    A ceci près que la macro m'arrondit le résultat à l'entier le plus proche...

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Et en remplaçant Val par Cdbl?

    Tu as probablement la virgule en symbole décimal.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 7
    Par défaut
    CDbl donne "incompatibilité de type".
    Effectivement le séparateur de décimales est la virgule (Excel français).

Discussions similaires

  1. [Requête/SQL]Pb de "quote" avec un type memo
    Par Tintou dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 26/04/2007, 15h47

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