Incompatibilité de type

Résolu
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   -  
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je cherche à faire la somme de textbox et d'afficher cette somme dans un label :

Private Sub TextBox5_Change()

Label17 = CInt(TextBox4.Value) + CInt(TextBox5.Value) + CInt(TextBox6.Value) + CInt(TextBox7.Value) + CInt(TextBox8.Value) + CInt(TextBox10.Value) + CInt(TextBox11.Value) + CInt(TextBox12.Value) + CInt(TextBox13.Value)

End Sub


VBA m'affiche une incompatibilité de type que je ne sais résoudre...

Pouvez vous m'aider ?

Merci beaucoup,

DGVDR

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Re-Bonjour,

    Décidément on ne se quitte plus...

    Aurais-tu, par le plus grand des hasards, des nombres décimaux à saisir dans tes textbox???

    Si oui, remplace CInt par CDbl...
    0
    1. DGVDR
       
      En effet, tu m'aides beaucoup :)

      Et bien, oui ça peut arriver... Je vais donc remplacer par CDbl

      Cependant lors de mes tests c'est au chargement de l'UF que ça pose problème, les textbox sont alors vides...

      Après remplacement de CInt par CDbl, l'UF se charge mais lorsque je j'écris dans une textbox, on retrouve mon problème cité plus haut ...

      Merci,

      DGVDR
      0
      1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > DGVDR
         
        Tu nous as mis plus haut le code de l'événement Change() de ton textbox5.
        Pourquoi faire le total à chaque caractère saisi dans ce textbox?
        Est ce la même chose dans les événements Change() de tous tes textbox?
        Pourquoi ne pas avoir mis un bouton de commande pour calculer ce total?
        0
    2. DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
       
      Je saisi dans ces textbox des %ages, la somme de ces %ages devant atteindre 100%, calculer à chaque incrémentation de textbox me permet de vérifier ou j'en suis vis à vis du %age global.

      Oui c'est la même chose dans toutes les textbox.

      J'aurais en effet pu mettre un bouton, mais je trouvais ça plus simple avec l'événement ()Change, ceci évitant de recliquer sur un bouton...
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    J'ai maintenant compris ce que tu voulais faire.

    Regarde ce code :
    Private Sub TextBox3_Change()
    Label1 = SommeTextBox(3, 6)
    End Sub
    Private Sub TextBox4_Change()
    Label1 = SommeTextBox(3, 6)
    End Sub
    Private Sub TextBox5_Change()
    Label1 = SommeTextBox(3, 6)
    End Sub
    Private Sub TextBox6_Change()
    Label1 = SommeTextBox(3, 6)
    End Sub
    
    Function SommeTextBox(IndicDeb As Integer, IndicFin As Integer) As Double
    Dim i As Integer
    
    For i = IndicDeb To IndicFin
        If Me.Controls("TextBox" & i) <> "" Then SommeTextBox = SommeTextBox + Val(Me.Controls("TextBox" & i))
    Next i
    End Function 


    Nota : Ce code n'est fonctionnel que si les numéros des taxtbox que tu veux sommer se suivent. Dans mon exemple, du textbox3 au 6. Dans le cas contraire, dis le, il y a également une solution...
    0
    1. DGVDR
       
      Mes Textbox vont de la 4 à la 13... sans Textbox9 (je ne sais pas pourquoi ni ou elle est...!)

      Merci beaucoup pour ton aide !

      DGVDR
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > DGVDR
       
      Pour une seule, on ne va rien changer de fondamental, mais juste ajouter un test :
      Function SommeTextBox(IndicDeb As Integer, IndicFin As Integer) As Double
      Dim i As Integer
      
      For i = IndicDeb To IndicFin
          If Me.Controls("TextBox" & i) <> "" And i <> 9 Then SommeTextBox = SommeTextBox + Val(Me.Controls("TextBox" & i))
      Next i
      End Function
      0
    3. DGVDR
       
      Pijaku,

      Il m'indique un "nom ambigu" pour ta fonction .

      As tu une idée?

      Merci,

      DGVDR
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > DGVDR
       
      Euh... Tu ne l'aurais pas copiée-collée deux fois par hasard?
      0
    5. DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
       
      En effet...

      Je passe donc aux essais :

      - l'UF se charge
      - Lorsque je veux incrémenter ma première textbox j'ai un message d'erreur :

      Erreur d'éxecution '-2147024809(80070057)'
      Objet spécifié introuvable

      Ne devrait on pas définir IndicDeb et IndicFin ?
      0