Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Au secours de toute ma vie je n'ai jamais vu ça [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (plhea)

mercredi 9 novembre 2005 à 20:53:31 | Au secours de toute ma vie je n'ai jamais vu ça

plhea

voila j'ai un problème.
cela fait maintenant assez longtemps que je programme en VB mais là je bloque

voici mon code ; il est tout simple :

Private Sub Command1_Click()
Dim CC As Long
CC = 11600 + 19200 + 4000
Print CC
End Sub

et là quand j'execute mon programme j'ai
Erreur d'exucution 6 : dépassement de capacité

et le débogage me renvoie ici : CC = 11600 + 19200 + 4000

alors là...
je ne comprend pas
j'ai pourtant déclaré ma variable en LONG
la fourchette devrait etre comprise entre -2 147 483 648 à 2 147 483 647

à ce que j'ai pu comprendre, il me limite CC à une variable Integer (fourchette -32 768 à 32 767), donc quand je dépasse ça me met cette erreur (ici CC = 34800)

mais pourquoi ???? je l'ai déclarée en LONG !
rohlala dès que j'ai un gros projet les ennuis arrivent

pouvez vous vérifier sur votre bécane pour voir si c'est la mienne qui fait des siennes ?

merci beaucoup à tous
plhea


mercredi 9 novembre 2005 à 21:09:27 | Re : Au secours de toute ma vie je n'ai jamais vu ça

jpleroisse

Réponse acceptée !
Bonsoir,
J'ai essayé ton code et effectivement il me met Dépassement de Capacité.
Mais comme ceci celà fonctionne.

Private Sub Command1_Click()
Dim CC
CC = CLng(11600) + CLng(19200) + CLng(4000) + CLng(25000)
MsgBox CC
End Sub

jpleroisse

Si une réponse vous convi.ent, cliquez Réponse Acceptée.


mercredi 9 novembre 2005 à 21:16:51 | Re : Au secours de toute ma vie je n'ai jamais vu ça

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Et oui, si tu ne lui dit pas de faire le calcul en Long, il te fera le calcul en integer vu que les nombres que tu additionnes sont des integer.

C'est comme si tu fait une multiplication entre deux integer, il te le convertit pas automatiquement en long durant le calcul !

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/

mercredi 9 novembre 2005 à 21:20:22 | Re : Au secours de toute ma vie je n'ai jamais vu ça

plhea

waou waou waou jamais vu ça !
effectivement ça marche et je suis content que ça fait ça pour tout le monde
mais je ne comprends toujours pas la raison

y aurait il un BUG dans visual basic 6 ???
ou est ce que c'est absolument normal et je suis plus qu'ignorant

si quelqu'un y voit une explication logique je suis ouvert et je vous remercie d'avance
merci à tous

plhea

mercredi 9 novembre 2005 à 21:25:00 | Re : Au secours de toute ma vie je n'ai jamais vu ça

plhea

EDIT (desolé je sais pas comment éditer)

MERCI beaucoup DarkSidious (désolé j'ai posté sans avoir lu ton message)
ok je comprends mieux j'ai fait quelques essais et tu as raison

merci pour vos aides à tous

plhea

mercredi 9 novembre 2005 à 21:27:12 | Re : Au secours de toute ma vie je n'ai jamais vu ça

philippe laschweng 1

Salut,

Bah c'est vrai que c'est bizarre, en même temps, si tu entres toi même 3 chiffres comme ca à la suite par programmation tu dois être capable de faire la somme par toi même !! lol
Et comme ca cela fonctionne (2 manières) :

Méthode 1
Private Sub Command1_Click()
Dim CC As Long
   CC = 11600
   CC = CC + 19000
   CC = CC + 4000
   Print CC
End Sub

Méthode 2
Private Sub Command1_Click()
Dim CC As Long
Dim value1 As Long
Dim value2 As Long
Dim value3 As Long

   value1 = 11600
   value2 = 19200
   value3 = 4000

   CC = value1 + value2 + value3
   Print CC
End Sub

Je sais c'est con comme exemple mais ca me semble plus logique avec des variables. Mais je te l'accorde, je sais pas pourquoi VB ne le prends pas en compte ....  Peut être un beug de VB mais perso je ne vois pas l'interêt de ce genre de structure en programmation ! Mais c'est rai que c'est une question intéressante.

Phil
Bye


mercredi 9 novembre 2005 à 21:30:10 | Re : Au secours de toute ma vie je n'ai jamais vu ça

daetips

Dim CC as long

Daetips

mercredi 9 novembre 2005 à 21:32:40 | Re : Au secours de toute ma vie je n'ai jamais vu ça

plhea

le code exact était

AugmenterPoints ((11600) + (19200) + (4000))

en fait c'était juste pour me simplifier la vie dans ma relecture
en effet, le 11600, le 19200 et le 4000 sont 3 choses différentes et j'ai préféré les séparer en pensant - à tort - que ça n'allait rien changer

plhea

mercredi 9 novembre 2005 à 21:35:06 | Re : Au secours de toute ma vie je n'ai jamais vu ça

philippe laschweng 1

OK Darksidiou mais si tu déclares le résultat de ton opération en Long c'est ilogique de devoir convertir les nombre en Long puisque le résultat de l'addition de tous les nombres est plus petite que la limite supérieure qu'accepte un Long (2 147 483 647). Les entiers ayant une limite inférieure (32 767).
Je dois peut être être con mais je saisis mal ... lol.


mercredi 9 novembre 2005 à 21:37:29 | Re : Au secours de toute ma vie je n'ai jamais vu ça

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Je pense que c'est pour une raison d'optimisation : additionner des entiers sur 2 octets est forcément plus rapide que des entiers sur 4 octets ! (et c'est d'autant plus vrai pour les opérations lourdes telles que multiplications ou modulo).

Du coup, VB prend le type de données le plus petit possible pour faire l'addition, et si ca dépasse, tant pis pour toi.

Dans ton premier exemple, tu additionne un long avec un integer, donc VB renvoie un long, par contre, un integer avec un integer renvoie un integer, même si la variable stockant le résultat est un long !

Sinon, je tiens à remercier daetips qui a tout compris au schmilblick :) lol

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/


1 2

Cette discussion est classé dans : secours, programme, erreur, vie, cc


Répondre à ce message

Sujets en rapport avec ce message

Erreur 429 [ par Furax ] J'ai fait un programme en VB6 connecté à une BD MS Access.J'ai fait le prog d'installation avec l'assistant VB. Mais lorsque je l'installe sur un PC n Erreur '70'- permission refusée [ par chris ] Bonjouraprès avoir compilé mon programme, je le lance et à la première opération (ouverture d'un fichier-nouveau ou ancien-), le logiciel affiche Erre Erreur d'exécution '-214747848 (80010108)' [ par DenoHATE ] J'ai commencé un programme qui utilise les TextBox, ComboBox et CommandButton du controle FORM 2.0 et tout fonctionne sauf une page (qui n'a rien de d messages d'erreur 3704,3705,3706 [ par omega ] J'ai créé une application qui gère une base de données. j'ai utilisé l'utilitaire d'empactage de vb6 pour creer les fichiers d'installations mais lors URGENT Erreur au démarrage !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ par Evangelion ] J'ai crée une appli de base de données avec un programme d'installation. Après bien des déboires (je passerais les plantages de l'assistant d'empaquet Comprtement etrange de VB, bugs cachés ? Aidez moi ! [ par lechti62 ] Bonjour, je programme en VB6 pro, j'avais entendu deja des bribes comme quoi on avait du mal a faire de gros logiciels en VB, je crois que c'est vrai. Exécution sur un autre pc [ par Belge ] J'avai deja poser la question pour éxécuter un programme sur un autre ordinateur, on m'a dit d'utiliser l'assistant d'empaquetage. Ce que j'ai fait, d Erreur macro excel [ par Scrills ] J'ai un problème sous Excel. Explication :J'ai réalisé tout un programme en VBA sous excel. Ce programme est censé être utilisé par plusieurs utilisat


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,200 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.