[Résolu][Calc]Erreur débordement

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

[Résolu][Calc]Erreur débordement

Message par didier-56 »

Bonjour,
ma variable déborde, pourquoi donc ?
Elle est formatée en matrice :

Code : Tout sélectionner

L_Col (0 To 50) As Byte

Function Dec_Droite As Byte

For n = 0 To 50
	L_Col (n) = L_Col (n) + 1
Next n

Dec_Droite = Max_Matrice (L_Col) 'si sup maxi (10 ou 15) ça s'arrête
End Function
Que se passe-t-il ?
Merci pour vos lumières.
PS le but de cette fonction est d'ajouter 1 à chaque donnée de la matrice. Peut-on additionner directement des matrices ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par didier-56 le 06 janv. 2021 17:12, modifié 1 fois.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
Jphi
Fraîchement OOthentifié
Messages : 1
Inscription : 12 déc. 2019 13:13

Re: [Calc]Erreur débordement

Message par Jphi »

Bonjour,

Il me semble que le type "Byte" ne peut pas dépasser la valeur 255,
Donc il a une chance pour que les traitement antérieurs sur L_Col, l'amène à cette valeur limite
et entraîne un débordement.

Cordialement
LibreOffice 6.0.7.3 - Ubuntu 18.04.3 LTS
Avatar de l’utilisateur
Loopingss
InconditiOOnnel
InconditiOOnnel
Messages : 783
Inscription : 17 déc. 2008 01:50

Re: [Calc]Erreur débordement

Message par Loopingss »

Bonjour.
Avec la macro suivante je ne reproduis pas votre problème :

Code : Tout sélectionner

Global L_Col (0 to 51)
Public n as Byte

Sub Main
for n = 0 to 50
	L_Col (n) = L_Col (n) + 1
next n
print n
End Sub
Pourtant le code est semblable sauf qu'il s'agit d'une sub et non une Function.
COOordialement.
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: [Calc]Erreur débordement

Message par Jean-Louis Cadeillan »

Bonsoir,
didier-56 a écrit :Le but de cette fonction est d'ajouter 1 à chaque donnée de la matrice. Peut-on additionner directement des matrices ?
Oui, si tu as une matrice en A1:J9, par exemple, tu peux écrire (en A11, par exemple) :

Code : Tout sélectionner

=A1:J9+1
en validation matricielle (Ctrl+Maj+Entrée).
Cordialement,
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Erreur débordement

Message par didier-56 »

Jean-Louis Cadeillan a écrit : Oui, si tu as une matrice en A1:J9, par exemple, tu peux écrire (en A11, par exemple) :

Code : Tout sélectionner

=A1:J9+1
Bonjour et merci Jean-Louis,
Ok, et pour une matrice qui est une variable dans une fonction ou sub ?
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Erreur débordement

Message par didier-56 »

Jphi a écrit :Bonjour,
Il me semble que le type "Byte" ne peut pas dépasser la valeur 255,
Cordialement
Bonjour,
après pose d'un mouchard dans la fonction, je vois que "n" ne dépasse pas 59, mais la fonction fait entre 13500 et 13600 boucles (du coup faut que je revois la fonction qui l'appelle, ça devrait s'arrêter à 17.)
C'est peut-être la mémoire de LO qui déborde ?
Merci à toi.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Erreur débordement

Message par didier-56 »

Loopingss a écrit : Pourtant le code est semblable sauf qu'il s'agit d'une sub et non une Function.
COOordialement.
Bonjour,
j'ai besoin d'une fonction car c'est une autre fonction qui lui demande cette addition et elle doit faire autre chose quand un maximum est atteint, donc ma fonction doit retourner ce maximum.
Je vais voir avec tout ça, faire des essais, j'espère que ça va aller.
à bientôt pour une réponse définitive ou une question complémentaire.
Bon ouiquende.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc]Erreur débordement

Message par Dude »

Salut,
didier-56 a écrit :j'ai besoin d'une fonction car c'est une autre fonction qui lui demande cette addition
Je t'invite fortement à suivre un minimum les règles de cette section.
Notamment en fournissant un document exhaustif limité à cette seule problématique.
Parce que 10 lignes de code hors contexte et une copie d'écran n'aident en rien à la compréhension.

En plus, il y a fort à parier qu'en faisant cet exercice, tu trouves de toi-même ton erreur.
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Calc]Erreur débordement

Message par didier-56 »

Excuses-moi de n'avoir pas répondu, je suis un peu débordé, ce programme est en pause.

Décaler est appelée 238 fois sans dépasser 50. Donc ça ne dépasse pas la limite de byte mais est-ce qu'un tel nombre de bouclage peut provoquer un débordement ?

Belle journée à toi.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille
didier-56
NéOOphyte
NéOOphyte
Messages : 195
Inscription : 23 août 2016 09:28

Re: [Résolu][Calc]Erreur débordement

Message par didier-56 »

Comme ce programme est abandonné, peut-être provisoirement, je n'ai pas réussi à me plonger suffisamment pour me remettre dedans.
LibreOffice 7.1.7.2 (x64) sous Windows 10 famille