Long datatype act as an Integer
Pred
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un petit problème de dépassement de capacité (Erreur 6) avec les types de variable Long depuis quelque temps. (En fait depuis le dernier update de Windows 10 version 19041.685)
Dim nn as long
nn = 36 * 36 * 36
--- VBA me donne une erreur 6 Dépassement de capacité
Toutefois si je fais ça en 2 étapes, ça fonctionne:
nn = 36 * 36
nn = nn * 36
--- Pas d'erreur 6
Quelqu'un a une idée
J'ai un petit problème de dépassement de capacité (Erreur 6) avec les types de variable Long depuis quelque temps. (En fait depuis le dernier update de Windows 10 version 19041.685)
Dim nn as long
nn = 36 * 36 * 36
--- VBA me donne une erreur 6 Dépassement de capacité
Toutefois si je fais ça en 2 étapes, ça fonctionne:
nn = 36 * 36
nn = nn * 36
--- Pas d'erreur 6
Quelqu'un a une idée
A voir également:
- Long datatype act as an Integer
- Pc long a demarrer - Guide
- Chanteur blond cheveux long ✓ - Forum Musique / Radio / Clip
- 3 bip long 2 bip court hp - Forum BIOS
- Chanteuse brune cheveux long ✓ - Forum Cinéma / Télé
- Act time to - Forum Vos droits sur internet
2 réponses
Bonjour
J'ai essayé et j'ai eu le même tour!!!!!
J'ai trouvé dans l'aide windows (mais j'ai pas compris)
https://docs.microsoft.com/fr-fr/office/vba/Language/Reference/User-Interface-Help/overflow-error-6
et en effet ça marche
A+ François
J'ai essayé et j'ai eu le même tour!!!!!
J'ai trouvé dans l'aide windows (mais j'ai pas compris)
https://docs.microsoft.com/fr-fr/office/vba/Language/Reference/User-Interface-Help/overflow-error-6
et en effet ça marche
Dim nn As Long
nn = CLng(36) * CLng(36) * CLng(36)
MsgBox (nn)
A+ François
Bonjour,
Par défaut de précision, 36 est un Integer d'où le problème (sinon voir lignes 14, 15, 16, 17) :
Par défaut de précision, 36 est un Integer d'où le problème (sinon voir lignes 14, 15, 16, 17) :
Sub test() Dim I As Integer, L As Long, S As Single, D As Double, C As Currency, V As Variant, T As String Dim nn As Long I = 36: L = 36: S = 36: D = 36: C = 36: V = 36: T = "36" ' Pas d'erreur nn = L * L * L nn = S * S * S nn = D * D * D nn = C * C * C nn = V * V * V nn = T * T * T nn = 36# * 36# * 36# nn = 36 * 36 * 36# nn = 36# * 36 * 36 nn = 36& * 36 * 36 nn = 36 * 36: nn = nn * 36 nn = CLng(36) * CLng(36) * CLng(36) nn = CSng(36) * CSng(36) * CSng(36) nn = CDbl(36) * CDbl(36) * CDbl(36) nn = CCur(36) * CCur(36) * CCur(36) nn = CStr(36) * CStr(36) * CStr(36) ' Dépassements de capacité nn = 36 * 36 * 36 nn = I * I * I nn = CInt(36) * CInt(36) * CInt(36) End Sub