[VB] Déclaration de variables en string

Résolu/Fermé
onra - 17 juil. 2008 à 16:47
 onra - 18 juil. 2008 à 11:14
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.
A voir également:

2 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 juil. 2008 à 17:08
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
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
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
18 juil. 2008 à 10:50
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
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