[VB] Déclaration de variables en string

Résolu
onra -  
 onra -
Bonjour,

J'ai un UserForm dans lequel est calculé une somme de 4 valeurs et la compare avec un montant. Il faut alors que cette somme soit égale au montant, sinon la procédure en cours est stoppée.
Les 4 valeurs proviennent d'un tableau Excel.
Quand ces 4 valeurs sont trop importantes, j'obtient une erreur qui est:
Erreur d'exécution 6
dépassement de capacité

et le débogage me renvoie sur cette fameuse somme:

SumImp = Str(Val(ImpMOA.Text) + Val(ImpIng.Text) + Val(ImpArchi.Text) + Val(ImpAleas.Text))

Je pense alors que ce sont les déclarations de variables en "String" qui déconne, mais je ne vois pas comment le changer.
C'st donc à ce moment que vous intervenez cher amis!!!!

Je pense peut être a déclarer mes variables en doubles, mais là je commence à tatonner...

Merci d'avance

Vous trouverez juste en dessous un atre message de ma part, n'y faite pas attention, c'est un petit cafouillage de ma aprt.
Configuration: Windows 2000
Internet Explorer 6.0

2 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Pour être certain que la déclaration fonctionne tu déclare en Varaint, après tu peu éventuellement modifié..
    dim SumImp
    Suffit, ou
    dim SumImp as Variant
    A+
    0
    1. onra
       
      merci beaucoup, je teste ca demain.
      en tout ca bien content de voir qu'il reste du monde sur les forums en plein été pour répondre au question
      0
    2. onra
       
      Salut,
      je viens d'essayer la somme en la passant en "variant" mais ca ne marche pas.
      Il ne fait plus la omparaison entre SumImp et OSmontant.
      Voici la boucle complète, peut être trouveras tu une autre idée pour m'aider:

      Dim SumImp As Integer
      SumImp = Str(Val(ImpMOA.Text) + Val(ImpIng.Text) + Val(ImpArchi.Text) + Val(ImpAleas.Text))
      If Not (SumImp = OSMontant) Then
      MsgBox ("Attention, le montant de l'OS doit être égal à la somme des imputations")
      MsgBox ("Somme des imputations=" & SumImp)
      Exit Sub
      End If
      Merci d'avance
      0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    SumImp = Str ?? (Val(ImpMOA.Text) + Val(ImpIng.Text) + Val(ImpArchi.Text) + Val(ImpAleas.Text))
    Je sais plus mettre en gras, mas tu force la 1ère donnée en string, donc ca va pas aller, enlève str(
    A+
    0
    1. onra
       
      En fait je crois que le string est util car il me permet de prendre les valeurs dans les textbox.
      Et après un paquet de test , j'ai trouvé:

      Dim SumImp As Currency

      Mais je pense que tu as raison variant et le string ca doit pas faire bon ménage.
      En tout cas là ca marche.

      Merci pour ton aide
      A plus
      0