dépassement de capacité

Le
j
re-re bonjour
j'ai un gros doute, mon vba est-il très malade ou bien est-ce moi ?

MsgBox 1000 * 116 me répond dépassement de capacité (je ne sais plus
compter jusqu'à 116000 ?)

Par contre si j'écris en VBA :
tt = 116
MsgBox 1000 * tt
il me répond poliment : 116000, ce qui me remplit d'allégresse
mais je n'y comprends quand même rien, c'est agaçant !

Où est l'erreur ?

j@c
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrick
Le #5161311
Bonjour,

As-tu essayé de faire comme ceci :

MsgBox CStr(1000 * 116)

--
Patrick


"" wrote:

re-re bonjour
j'ai un gros doute, mon vba est-il très malade ou bien est-ce moi ?

MsgBox 1000 * 116 me répond... dépassement de capacité (je ne sais plus
compter jusqu'à 116000 ?)

Par contre si j'écris en VBA :
tt = 116
MsgBox 1000 * tt
il me répond poliment : 116000, ce qui me remplit d'allégresse...
mais je n'y comprends quand même rien, c'est agaçant !

Où est l'erreur ?








MichDenis
Le #5161281
Dim A As Long, B As Long, T As Long
A = 1000: B = 116
T = A * 116
MsgBox T

OU
Dim A As Long, B As Long, T As Long
A = 1000: B = 116
T = 1000 * B
MsgBox T

OU
Dim A As Long, B As Long, T As Long
A = 1000: B = 116
T = A * B
MsgBox T





"" re-re bonjour
j'ai un gros doute, mon vba est-il très malade ou bien est-ce moi ?

MsgBox 1000 * 116 me répond... dépassement de capacité (je ne sais plus
compter jusqu'à 116000 ?)

Par contre si j'écris en VBA :
tt = 116
MsgBox 1000 * tt
il me répond poliment : 116000, ce qui me remplit d'allégresse...
mais je n'y comprends quand même rien, c'est agaçant !

Où est l'erreur ?


Tatanka
Le #5161251
Moi pas comprendre un tel comportement ;-)
Comme ceci :
Sub Bizz()
MsgBox 1000# * 116#
End Sub
c'est OK.

Serge


""
re-re bonjour
j'ai un gros doute, mon vba est-il très malade ou bien est-ce moi ?

MsgBox 1000 * 116 me répond... dépassement de capacité (je ne sais plus
compter jusqu'à 116000 ?)

Par contre si j'écris en VBA :
tt = 116
MsgBox 1000 * tt
il me répond poliment : 116000, ce qui me remplit d'allégresse...
mais je n'y comprends quand même rien, c'est agaçant !

Où est l'erreur ?







Tatanka
Le #5161191
Et aussi comme cela :

Sub Bizz()
MsgBox 1000# * 116
End Sub

Serge

"Tatanka"
Moi pas comprendre un tel comportement ;-)
Comme ceci :
Sub Bizz()
MsgBox 1000# * 116#
End Sub
c'est OK.

Serge


""
re-re bonjour
j'ai un gros doute, mon vba est-il très malade ou bien est-ce moi ?

MsgBox 1000 * 116 me répond... dépassement de capacité (je ne sais plus
compter jusqu'à 116000 ?)

Par contre si j'écris en VBA :
tt = 116
MsgBox 1000 * tt
il me répond poliment : 116000, ce qui me remplit d'allégresse...
mais je n'y comprends quand même rien, c'est agaçant !

Où est l'erreur ?











MichDenis
Le #5161151
Il y a aussi ceci :

MsgBox CLng(1000) * (116)

or

MsgBox 1000 * CLng(116)

Sauf erreur,
Je crois tout simplement que ce symbole # suivi du nombre
est une autre façon de faire comprendre à excel que le nombre
est de type Long... cette une syntaxe qui remonte au vieux "basic"


"Tatanka"
Et aussi comme cela :

Sub Bizz()
MsgBox 1000# * 116
End Sub

Serge

"Tatanka"
Moi pas comprendre un tel comportement ;-)
Comme ceci :
Sub Bizz()
MsgBox 1000# * 116#
End Sub
c'est OK.

Serge


""
re-re bonjour
j'ai un gros doute, mon vba est-il très malade ou bien est-ce moi ?

MsgBox 1000 * 116 me répond... dépassement de capacité (je ne sais plus
compter jusqu'à 116000 ?)

Par contre si j'écris en VBA :
tt = 116
MsgBox 1000 * tt
il me répond poliment : 116000, ce qui me remplit d'allégresse...
mais je n'y comprends quand même rien, c'est agaçant !

Où est l'erreur ?











j
Le #5161071
MsgBox CStr(1000 * 116) -> dépassement de capacité aussi !


"Patrick" news:
Bonjour,

As-tu essayé de faire comme ceci :

MsgBox CStr(1000 * 116)

--
Patrick


"" wrote:

re-re bonjour
j'ai un gros doute, mon vba est-il très malade ou bien est-ce moi ?

MsgBox 1000 * 116 me répond... dépassement de capacité (je ne sais
plus


compter jusqu'à 116000 ?)

Par contre si j'écris en VBA :
tt = 116
MsgBox 1000 * tt
il me répond poliment : 116000, ce qui me remplit d'allégresse...
mais je n'y comprends quand même rien, c'est agaçant !

Où est l'erreur ?










j
Le #5161061
oui, comme ça, ça marche, même sans déclarer les variables
C'est ce que je disais, dès que je passe par l'intermédiaire d'une variable
c'est ok
ce qui ne marche pas c'est MsgBox 1000 * 116 en direct



"MichDenis"
Dim A As Long, B As Long, T As Long
A = 1000: B = 116
T = A * 116
MsgBox T

OU
Dim A As Long, B As Long, T As Long
A = 1000: B = 116
T = 1000 * B
MsgBox T

OU
Dim A As Long, B As Long, T As Long
A = 1000: B = 116
T = A * B
MsgBox T





"" %

re-re bonjour
j'ai un gros doute, mon vba est-il très malade ou bien est-ce moi ?

MsgBox 1000 * 116 me répond... dépassement de capacité (je ne sais
plus

compter jusqu'à 116000 ?)

Par contre si j'écris en VBA :
tt = 116
MsgBox 1000 * tt
il me répond poliment : 116000, ce qui me remplit d'allégresse...
mais je n'y comprends quand même rien, c'est agaçant !

Où est l'erreur ?








j
Le #5161041
oui, là c'est ok
même avec
MsgBox 1000 * 116#

Est-ce à dire que la multiplication d'entiers est plus consommatrice de
ressources que la multiplication de "long" ?
j'aurais pensé l'inverse !




"Tatanka"
Et aussi comme cela :

Sub Bizz()
MsgBox 1000# * 116
End Sub

Serge

"Tatanka"

Moi pas comprendre un tel comportement ;-)
Comme ceci :
Sub Bizz()
MsgBox 1000# * 116#
End Sub
c'est OK.

Serge


"" %


re-re bonjour
j'ai un gros doute, mon vba est-il très malade ou bien est-ce moi ?

MsgBox 1000 * 116 me répond... dépassement de capacité (je ne sais
plus



compter jusqu'à 116000 ?)

Par contre si j'écris en VBA :
tt = 116
MsgBox 1000 * tt
il me répond poliment : 116000, ce qui me remplit d'allégresse...
mais je n'y comprends quand même rien, c'est agaçant !

Où est l'erreur ?















j
Le #5161031
c'est OK, id Tatanka, merci
mais pourquoi Long marche mieux que Int ?


"MichDenis"
Il y a aussi ceci :

MsgBox CLng(1000) * (116)

or

MsgBox 1000 * CLng(116)

Sauf erreur,
Je crois tout simplement que ce symbole # suivi du nombre
est une autre façon de faire comprendre à excel que le nombre
est de type Long... cette une syntaxe qui remonte au vieux "basic"


"Tatanka"
Et aussi comme cela :

Sub Bizz()
MsgBox 1000# * 116
End Sub

Serge

"Tatanka"
Moi pas comprendre un tel comportement ;-)
Comme ceci :
Sub Bizz()
MsgBox 1000# * 116#
End Sub
c'est OK.

Serge


"" %


re-re bonjour
j'ai un gros doute, mon vba est-il très malade ou bien est-ce moi ?

MsgBox 1000 * 116 me répond... dépassement de capacité (je ne sais
plus



compter jusqu'à 116000 ?)

Par contre si j'écris en VBA :
tt = 116
MsgBox 1000 * tt
il me répond poliment : 116000, ce qui me remplit d'allégresse...
mais je n'y comprends quand même rien, c'est agaçant !

Où est l'erreur ?
















Daniel.C
Le #5275691
Bonjour.
Mes deux sous :
MsgBox 1024 * 31 + 1023
fonctionne (32767)
et
MsgBox 1024 * 32
plante. apparemment, on ne peut pas franchir la limite des integers.
Cordialement.
Daniel
""
oui, là c'est ok
même avec
MsgBox 1000 * 116#

Est-ce à dire que la multiplication d'entiers est plus consommatrice de
ressources que la multiplication de "long" ?
j'aurais pensé l'inverse !




"Tatanka"
Et aussi comme cela :

Sub Bizz()
MsgBox 1000# * 116
End Sub

Serge

"Tatanka" news:


Moi pas comprendre un tel comportement ;-)
Comme ceci :
Sub Bizz()
MsgBox 1000# * 116#
End Sub
c'est OK.

Serge


"" %


re-re bonjour
j'ai un gros doute, mon vba est-il très malade ou bien est-ce moi ?

MsgBox 1000 * 116 me répond... dépassement de capacité (je ne sais
plus



compter jusqu'à 116000 ?)

Par contre si j'écris en VBA :
tt = 116
MsgBox 1000 * tt
il me répond poliment : 116000, ce qui me remplit d'allégresse...
mais je n'y comprends quand même rien, c'est agaçant !

Où est l'erreur ?



















Publicité
Poster une réponse
Anonyme