Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA - Dépassement de capacité ?

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Dudu2

XLDnaute Barbatruc
Bonjour,

Je me demande ce qui se passe:
VB:
Sub a()
    Dim v As Long

    v = 1000 * 100
End Sub



J'avoue en perdre mon latin. Enfin mon VBA.


Code:
Sub a()
    Dim v As Long

    v = CLng(1000) * CLng(100)
End Sub

Pourquoi dois-je convertir en Long les valeurs pour que VBA daigne faire le calcul en Long, type de la variable résultat ? Le compilo fatigue ?
 
Dernière édition:
Bonjour @Dudu2 , le forum

Bizarre en effet :
VB:
Sub Test()
    Dim v As Long, z As Long, x As Long, a As Long, b As Long
    a = 100000
    b = 10000
    v = (327 * 100) + 67  'ok      ==> 32767
   ' v = 1000 * 100     'non ok
   ' v = 327 * 100 + 68 'non ok  ==> 32768
    x = 32768 * 1000 'ok
    z = a * b           'ok
End Sub
@Phil69970
 
Ce n'est pas vraiment un bogue mais une règle contestable: une multiplication de deux Integer est effectuée en Integer et plante donc si elle dépasse 32767. Par ailleurs une constante spécifiée sans caractère suffixe de type est assumée du plus court type pouvant la valoir.
 
Bonsoir patricktoulon

Les endives ne servent à rien dans ton code
(T'as pas nettoyé ton CTRL+C avant de faire ton CTRL+V)
😉

EDITION: C'est de la triche
Tu as édité pendant que j'écrivais.
 
Oui bien sûr c'est le compilo qui choisit de fabriquer le résultat sur un entier (VBA) en basant son choix sur le fait que les 2 constantes sont des entiers. Donc on se cogne au plafond des 32767. Mais Mr Compilo ne fait pas le bon choix madame.

C'est facile de contourner l'affaire avec vos multiples propositions.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
72
Affichages
1 K
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
861
Réponses
3
Affichages
298
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
447
Réponses
10
Affichages
797
Réponses
7
Affichages
797
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…