[VBA/EXCEL] Ligne ignorée dans la macro

Ligne ignorée dans la macro [VBA/EXCEL] - VB/VBA/VBS - Programmation

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+

Reply

Marsh Posté le 09-07-2007 à 11:40:19   

Reply

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.

Reply

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

Reply

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 ?

Reply

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.
As-tu essayé d'exécuter ton code en pas-à-pas pour voir ?


 
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 ;)

Reply

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

Reply

Marsh Posté le 11-07-2007 à 12:33:25    

dante4024 a écrit :

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


 
Merci, je vais essayer ça et je vous tiens au courant, pas mal de taff au boulot aujourd'hui
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed