Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

dépassement de capacité

16 réponses
Avatar
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

10 réponses

1 2
Avatar
Patrick
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 ?








Avatar
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





"" a écrit dans le message de news: %
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 ?


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

Serge


"" a écrit dans le message de news: %
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 ?







Avatar
Tatanka
Et aussi comme cela :

Sub Bizz()
MsgBox 1000# * 116
End Sub

Serge

"Tatanka" a écrit dans le message de news:
Moi pas comprendre un tel comportement ;-)
Comme ceci :
Sub Bizz()
MsgBox 1000# * 116#
End Sub
c'est OK.

Serge


"" a écrit dans le message de news: %
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 ?











Avatar
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" a écrit dans le message de news:

Et aussi comme cela :

Sub Bizz()
MsgBox 1000# * 116
End Sub

Serge

"Tatanka" a écrit dans le message de news:

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

Serge


"" a écrit dans le message de news: %
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 ?











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


"Patrick" a écrit dans le message de
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 ?










Avatar
j
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" a écrit dans le message de news:

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





"" a écrit dans le message de news:
%

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 ?








Avatar
j
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" a écrit dans le message de news:

Et aussi comme cela :

Sub Bizz()
MsgBox 1000# * 116
End Sub

Serge

"Tatanka" a écrit dans le message de news:


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

Serge


"" a écrit dans le message de news:
%


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 ?















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


"MichDenis" a écrit dans le message de news:

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" a écrit dans le message de news:

Et aussi comme cela :

Sub Bizz()
MsgBox 1000# * 116
End Sub

Serge

"Tatanka" a écrit dans le message de news:

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

Serge


"" a écrit dans le message de news:
%


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 ?
















Avatar
Daniel.C
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
"" a écrit dans le message de news:

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" a écrit dans le message de news:

Et aussi comme cela :

Sub Bizz()
MsgBox 1000# * 116
End Sub

Serge

"Tatanka" a écrit dans le message de
news:


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

Serge


"" a écrit dans le message de news:
%


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 ?



















1 2