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 de calcul dans mes TextBox [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Centre Spatial Guyanais
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Centre Spatial Guyanais
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Par défaut Erreur de calcul dans mes TextBox
    Bonjour à tous,
    Je reviens vers vous pour un nouveau problème, je souhaiterais faire la somme de 30 TextBox dans une autre TextBox, mais le résultat que j'obtiens n'est pas bon.
    En entrant un certain nombre de valeurs dans quelques TextBox, la valeur totale (à la calculatrice) est égale à 1463.30 € et le résultat affiché dans le TextBox de la somme est égal à 1460.00 €.
    Je n'arrive pas à trouver la raison.........
    Quelqu'un pourrait-il me dire d'où viens le problème ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Me.txtTotHT = WorksheetFunction.Sum(Val(Me.txtPTHT1), Val(Me.txtPTHT2), Val(Me.txtPTHT3), Val(Me.txtPTHT4), Val(Me.txtPTHT5), _
      Val(Me.txtPTHT6), Val(Me.txtPTHT7), Val(Me.txtPTHT8), Val(Me.txtPTHT9), Val(Me.txtPTHT10), _
      Val(Me.txtPTHT11), Val(Me.txtPTHT12), Val(Me.txtPTHT13), Val(Me.txtPTHT14), Val(Me.txtPTHT15), _
      Val(Me.txtPTHT16), Val(Me.txtPTHT17), Val(Me.txtPTHT18), Val(Me.txtPTHT19), Val(Me.txtPTHT20), _
      Val(Me.txtPTHT21), Val(Me.txtPTHT22), Val(Me.txtPTHT23), Val(Me.txtPTHT24), Val(Me.txtPTHT25), _
      Val(Me.txtPTHT26), Val(Me.txtPTHT27), Val(Me.txtPTHT28), Val(Me.txtPTHT29), Val(Me.txtPTHT30)): Me.txtTotHT = Format(Me.txtTotHT, "# ###.00 €") '.Cells(RecordNumber, 170)
    Une simplification serait aussi la bienvenue.
    Merci par avance

  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 114
    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 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Une simplification serait aussi la bienvenue.
    En écrivant une boucle telle que cous l'a suggéré un intervenant dans sa réponse à l'une de vos questions dans la discussion titrée Simplification de programmation
    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 averti
    Homme Profil pro
    Centre Spatial Guyanais
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Centre Spatial Guyanais
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Par défaut
    Bonjour Monsieur Philippe TUILLEZ,

    La solution que m'a apporté PrinceCorwin concernait une boucle sur 30 colonnes d'un fichier pour alimenter 30 TextBox.
    Là, je souhaiterais additionner les valeurs de mes 30 TextBox dans une seule Textbox sans passer par le fichier, je n'y arrive pas en faisant une boucle.
    Si je pouvais avoir juste un exemple.
    Merci par avance.

  4. #4
    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 114
    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 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Mais la manière de traiter les TextBox dans une boucle reste le même.

    On lit le contenu d'un TextBox nommé par exemple TxtName soit avec la syntaxe Me.TxtName.Value soit par Me.Controls("TxtName").ValueEtant donné que les TextBox concernés sont numérotés, il est très simple de les intégrer dans une boucle

    Exemple dans une fonction nommée GetSum qui effectue la somme pour six contrôles nommés txtPTHTn
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function GetSum() As Double
      Dim n As Integer
      For n = 1 To 6
        GetSum = GetSum + Val(Me.Controls("txtPTHT" & n))
      Next
    Cette fonction renvoyant une valeur de type Double nous pourrions l'invoquer par exemple par un clic d'un CommandButton

    Exemple où la somme calculée par la fonction GetSum est renvoyée dans le contrôle TextBox nommé TxtPTHT0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
       Me.txtPTHT0 = Format(GetSum)  
    End Sub
    Je vous conseille la lecture de Utiliser les contrôles dans un UserForm, en VBA Excel
    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

  5. #5
    Membre averti
    Homme Profil pro
    Centre Spatial Guyanais
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Centre Spatial Guyanais
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Par défaut
    Bonjour et merci Monsieur TULLIEZ,
    Vos explications sont toujours claires.
    Je vais pouvoir simplifier énormément mon programme.
    Encore merci.

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 15/09/2014, 10h46
  2. [AC-2003] Erreur de calcul dans les requêtes
    Par ortiz dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/10/2009, 15h49
  3. Calcul dans des textbox
    Par gds35 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/12/2008, 21h53
  4. Erreur de calcul dans une requête
    Par cofi30 dans le forum IHM
    Réponses: 2
    Dernier message: 24/01/2008, 14h44
  5. Message "#Erreur" pour calculs dans formulaire
    Par tieuphuong dans le forum IHM
    Réponses: 10
    Dernier message: 09/08/2007, 12h27

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