OVH Cloud OVH Cloud

macro qui fonctionne en pas a pas uniquement

1 réponse
Avatar
Rasmus
Bonjour à tous,

J'ai écris une petite macro en VBA qui ne fonctionne qu'en pas a pas et non
en continu!
La macro ne plante pas mais la valeur TotalMensuelComponantsJanvier ne
s'incrémente que si je l'execute en P a P!

Des idées?

Merci,
Ras'

Sub calcul_mensuel()
' Macro créee le 31 mars 2005 par mézigues

TotalMensuelComponantsJanvier = 0 'Init
For Each c In Worksheets("Tableau commandes").Range("F8:F1000")

'traitement commandes COMPONANTS (commencent par "2")
If Left(c.Value, 1) = 2 Then
Mois = Mid(Cells(c.Row, c.Column + 2), 4, 2) 'Format = "01/01/2005"
'janvier?
If Mois = "01" Then
TotalMensuelComponantsJanvier = TotalMensuelComponantsJanvier +
Cells(c.Row, c.Column + 1).Value
End If 'If Mois = 1 Then...
End If 'If Left(c.Value, 1) = 2 Then...
Next c

Worksheets("Tableaux dynamiques").Range("AF4") =
TotalMensuelComponantsJanvier
End Sub

1 réponse

Avatar
papou
Bonjour
As-tu déclaré la variable TotalMensuelComponantsJanvier ?
Par ailleurs, si le format des cellules contenant la date (c + 2 colonnes)
est bien au format date, tu peux simplifier grandement ton code en utilisant
par exemple :
Mois = Month(Cells(c.Row, c.Column + 2))
Ce qui te renverra 1 pour janvier, 2 pour février, etc.
Cordialement
Pascal

"Rasmus" a écrit dans le message de news:
424bcf34$0$13224$
Bonjour à tous,

J'ai écris une petite macro en VBA qui ne fonctionne qu'en pas a pas et
non

en continu!
La macro ne plante pas mais la valeur TotalMensuelComponantsJanvier ne
s'incrémente que si je l'execute en P a P!

Des idées?

Merci,
Ras'

Sub calcul_mensuel()
' Macro créee le 31 mars 2005 par mézigues

TotalMensuelComponantsJanvier = 0 'Init
For Each c In Worksheets("Tableau commandes").Range("F8:F1000")

'traitement commandes COMPONANTS (commencent par "2")
If Left(c.Value, 1) = 2 Then
Mois = Mid(Cells(c.Row, c.Column + 2), 4, 2) 'Format = "01/01/2005"
'janvier?
If Mois = "01" Then
TotalMensuelComponantsJanvier = TotalMensuelComponantsJanvier +
Cells(c.Row, c.Column + 1).Value
End If 'If Mois = 1 Then...
End If 'If Left(c.Value, 1) = 2 Then...
Next c

Worksheets("Tableaux dynamiques").Range("AF4") > TotalMensuelComponantsJanvier
End Sub