Ligne ignorée dans la macro [VBA/EXCEL] - VB/VBA/VBS - Programmation
Marsh Posté le 09-07-2007 à 13:10:54
Il faut copier/coller au moins une partie de ton code pour que l'on sache exactement les instructions en cause.
Marsh Posté le 09-07-2007 à 14:29:07
tegu a écrit : Il faut copier/coller au moins une partie de ton code pour que l'on sache exactement les instructions en cause. |
OK, j'essayais d'etre clair pour éviter la lecture du code,
Le voici:
'*****CALCUL DES TEMPS
' Calcul du temps de référence
Cells(ligne, 42).Select
ActiveCell.FormulaR1C1 = "=RC[-9]*RC[-25]"
' Valeur par défaut la Fréquence fixée à 1
Cells(ligne, 47).Select
ActiveCell.Value = 1
' Calcul temps VA et non VA
If Cells(ligne, 19) = 1 Then
Cells(ligne, 33) = 1
Cells(ligne, 22).Select
ActiveCell.FormulaR1C1 = "=RC[-3]*RC[-5]*RC[+11]"
Else
Cells(ligne, 23).Select
ActiveCell.Value = Cells(ligne, 42)
End If
'Calcul temps Non VA
' Cells(ligne, 23).Select
' If Cells(ligne, 19) = 0 Then
' ActiveCell.FormulaR1C1 = ""
' Else
' ActiveCell.FormulaR1C1 = "0"
' End If
' Valeur par défaut des DP fixée à 1.13 pour coudre et 1.1 pour les autres
If Cells(ligne, 8) = "COUDRE" Then
Cells(ligne, 45).Select
ActiveCell.Value = 1.13
Else
Cells(ligne, 45).Select
ActiveCell.Value = 1.1
End If
' Calcul de la valeur T.O.
Cells(ligne, 44).Select
'ici on multiplie par 1, qui est le coefficient d'irrégularité
ActiveCell.FormulaR1C1 = "=RC[-2]*1"
' Calcul de la valeur T.H.
Cells(ligne, 46).Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
xxxxx
'Calcul de la valeur Temps Alloué
Cells(ligne, 48).Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
'Calcul Temps FERT en Seconds
If Cells(ligne, 49) = "" Then
ActiveCell.FormulaR1C1 = "0"
Else
Cells(16, 96).Select
ActiveCell.Copy
Cells(ligne, 96).Select
ActiveCell.PasteSpecial
End If
'Calcul Temps Alloués Seconds
If Cells(ligne, 96) > 0 Then
ActiveCell.FormulaR1C1 = "0"
Else
Cells(16, 95).Select
ActiveCell.Copy
Cells(ligne, 95).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False:
End If
'*******FIN DU CALCUL DES TEMPS
Tout ce qui est en dessous de XXX ne se fait pas, je ne sais pas pourquoi.
Petite remarque quand même: j'ai des zéro dans les cellules, donc il y a une partie qui est prise en compte, mais les opérations ne se font pas
Merci
Marsh Posté le 09-07-2007 à 21:32:58
Pour tes deux derniers calculs, s'il y a des zéros, cela veut dire que ton test sur Cells(ligne, 49) n'est pas bon.
As-tu essayé d'exécuter ton code en pas-à-pas pour voir ?
Marsh Posté le 10-07-2007 à 10:14:29
tegu a écrit : Pour tes deux derniers calculs, s'il y a des zéros, cela veut dire que ton test sur Cells(ligne, 49) n'est pas bon. |
Bonjour,
J'ai essayé le mode pas à pas... le problème c'est qu'il bloque avant les calculs car la macro "jongle" entre diférents fichiers (windowsXXX.activate) et que je n'arrive pas à le faire en pas à pas.
J'arrive à comprendre qu'il puisse y avoir des erreurs sur les test (pour les 2 derniers cacluls), mais pas pour celui d'au dessus (juste en dessous des croix rouges).
Comme les calculs se suivent, il est normal que les deux derniers buguent. Mais c'est surtour celui juste en dessous des croix qui me gène. Je n'arrive vraiment pas à comprendre.
Je peux éventuellement faire une autre macros pour ces derniers calculs... mais j'aimerai ne pas en arriver là
Merci
Marsh Posté le 10-07-2007 à 10:34:48
En bloquant les recalculs automatiques de toute la feuille ( Application.Calculation = xlCalculationManual )
et en n'executant le calcul que sur les cellules concernées, ( Range("truckivabien" ).Calculate ), ca donne quoi ?
Sinon, modifie tes
Cells(ligne, 45).Select
ActiveCell.Value = 1.1
directement en :
Cells(ligne, 45).Value = 1.1
Marsh Posté le 11-07-2007 à 12:33:25
dante4024 a écrit : En bloquant les recalculs automatiques de toute la feuille ( Application.Calculation = xlCalculationManual ) |
Merci, je vais essayer ça et je vous tiens au courant, pas mal de taff au boulot aujourd'hui
Marsh Posté le 09-07-2007 à 11:40:19
salut à tous,
J'ai un problème avec une macro sous Excel 2003
J'ai écrit mes lignes, mais il semble que certaines lignes soient ignorées. En fait j'effectue une série de calcul à la suite, mais a partir d'un certain nombres, ils ne sont plus faits.
exemple:calcul a
calcul b
...
calcul j
calcul k
...
Excel effectue les calculs jusqu'à j, mais s'arrete à k
Quand je déplace par exemple calcul j à calcul l plus haut (après calcul c par exemple) Excel effectue ces calculs, mais s'arrete un peu plus loin. J'ai l'impression qu'il ne peut effectuer qu'un certain nombre de calculs; c'est possible?
Pour information, j'effectue une vingtaine de calculs seulement
Merci de m'aider
a+