VBA - dépassement de capacité

Gadjo

XLDnaute Nouveau
Bonjour à tous,

Je sais ce que vous disez envoyant ce titre :"Fouille donc le forum avant de poster cf[insérer link]".

Je suis d'avance désolé, j'ai cherché pendant des heures mais aucune solution ne fonctionne à mon problème que voici :

Je travail actuellement sur une macro (domaine que je découvre depuis peu) qui s'arrête pour un "dépassement de capacité". Voici la ligne où la macro s'arrête :


Cells(ligne + nb_passages_boucle, "z").Value = ((Range("DEE_FG_F1001A").Value + Range("DEE_FG_F1001B").Value + Range("DEE_FG_F2001").Value) * PCI_FG_DEE * (Range("COMB_FG_DEE_DENS").Value / 0.7) ^ 0.5 + FO_Ton * (Range("DEE_FO_ProportionRVR").Value * PCI_RVR + (1 - Range("DEE_FO_ProportionRVR").Value) * PCI_FO_P64)) / ((Range("DEE_debit_BRUT").Value + Range("Débit_DEE_TrainB").Value - Range("Débit_DEE_GObaro").Value)) / 10000

Sachant que se sont des valeurs moyenne de capteur à une plage de temps données, pour la plage temps utilisée on peut simplifier à :

Cells(ligne + nb_passages_boucle, "z").Value = (FO_Ton * (Range("DEE_FO_ProportionRVR").Value * PCI_RVR + (1 - Range("DEE_FO_ProportionRVR").Value) * PCI_FO_P64)) / ((Range("DEE_debit_BRUT").Value + Range("Débit_DEE_TrainB").Value )) / 10000

J'ai donc essayé les solutions trouvées à droite à gauche mais sans succès. J'entend par là d'écrire :

Cells(ligne + nb_passages_boucle, "z").Value#
et le premier terme du calcul : FO_Ton#

Ceci étant je ne suis pas sûr de la façon donc j'ai placé mes #, les autres valeurs on été définis en Double et n'ont absolument aucune chance d'en sortir (on parle de débit, températures, PCI,...).

Merci par avance de jetter un coup d'oeill et n'hésitez pas à me demandez si il manque des infos. Je m'y connais pas du tout.
 

Pièces jointes

  • Macro.jpg
    Macro.jpg
    27 KB · Affichages: 39
  • Macro.jpg
    Macro.jpg
    27 KB · Affichages: 46
  • Macro.jpg
    Macro.jpg
    27 KB · Affichages: 50

Roland_M

XLDnaute Barbatruc
Re : VBA - dépassement de capacité

re:

exactement un module que je vais renommer pour une question de clarté uniquement
ModuleDeBase au lieu de module1
et dans lequel je met

Public MaDate as Date

je pourrais me servir dans tout le projet, tous les modules et autres ...

mais il ne faut faire cette même déclaration que dans un seul module pour tout le projet

EDIT:

exemple avec ce module

si dans Module2 j'ai une macro qui init MaDate = "01/10/2014"
dans tout le projet si je fais MsgBox MaDate je verrai s'afficher "01/10/2014"
et ce tant que je ne l'aurai pas modifiée.
 
Dernière édition:

Gadjo

XLDnaute Nouveau
Re : VBA - dépassement de capacité

Merci pour vos réponses, je vais continuer à chercher de mon côté à voir ce qui pourrais ne pas fonctionner (Problème de mise à jour des valeurs par exemple). Le fichier n'ayant pas fonctionné correctement depuis 2011 et ayant été bidouiller pour juste faire fonctionner la macro (en ayant des rendements de 3000%, fonctionne mais mal quoi), je pense qu'il dois y avoir des incohérences à d'autres endroit du code.

Encore une fois merci à vous deux ^^

Bonne continuation
 

ROGER2327

XLDnaute Barbatruc
Re : VBA - dépassement de capacité

Bonjour à tous.


Je n'ai pas suivi toute la discussion, mais, dans mon coin, j'ai étudié la formule de calcul.
Elle fonctionne pour toutes valeurs réelles des variables et paramètres aux conditions suivantes :
  • Débit_DEE_GObaro <> (DEE_debit_BRUT + Débit_DEE_TrainB)
    (Sinon, division par zéro)
  • COMB_FG_DEE_DENS >= 0
    (Pas de racine carrée d'un réel strictement négatif !)
  • Et évidemment, ligne + nb_passages_boucle entier strictement positif.


Je commence à me demander si ce n'est pas la boucle qui serait mal foutue..
Bonne question.


Bon courage.


ℝOGER2327
#7636


Mercredi 18 Haha 142 (Nativité de Sa Magnificence le Baron Mollet (*Saint Pipe) - fête Suprême Quarte)
2 Brumaire An CCXXIII, 5,5931h - céleri
2014-W43-4T13:25:24Z
 

Pièces jointes

  • Test de formule.xlsm
    23.5 KB · Affichages: 28

Gadjo

XLDnaute Nouveau
Re : VBA - dépassement de capacité

Bonjour ROGER2327,

Effectivement j'avais personnellement fait une analyse les valeurs des nombres entrants de mon côté avant de venir de poster sur le forum, histoire d'être sûr de mon coup. J'en suis venu aux même conclusions que toi, mais sachant que même si l'usine s'arrêtait la macro renverrais des valeurs qui vérifierais ces égalités. De plus Débit_DEE_GObaro=<0 quoi qu'il arrive.

Pour rentrer un peu dans les détaills, c'est un calcul de consommation d'énergie, Débit_DEE_GObaro représentant une énergie produite et non consommée le débit est mis en négatif par le capteur. De sorte a avoir en positif les entrées d'énergie et en négatif les sorties.

Je vais continuer à creuser un peu sur tout ce qui pourrais impacter les valeurs utilisées pour le calcul, mettre un espion ne fonctionnantn pas pour toutes :/

PS : Comment fait-on pour poster des morceaux de macro "joli". J'en ai vu pleins sur le forum, c'est une capture d'écran ?
 

ROGER2327

XLDnaute Barbatruc
Re : VBA - dépassement de capacité

Re...


(...)
PS : Comment fait-on pour poster des morceaux de macro "joli". J'en ai vu pleins sur le forum, c'est une capture d'écran ?
On encadre le code par les balises [CODE=VB ] et [/CODE].
Ou on clique sur l'icône # pour obtenir directement [CODE] et [/CODE] lorsqu'on rédige le message dans l'éditeur en mode "avancé".​


Bonne soirée.


ℝOGER2327
#7638


Mercredi 18 Haha 142 (Nativité de Sa Magnificence le Baron Mollet (*Saint Pipe) - fête Suprême Quarte)
2 Brumaire An CCXXIII, 6,3833h - céleri
2014-W43-4T15:19:12Z
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
1 K
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 330
Messages
2 087 341
Membres
103 524
dernier inscrit
Smile1813