Message est utilisé nulle part. Il est donc toujours égal à 0
Bonjour Tofalu
Merci de ta remarque. Je t'en donne l'explication ci-après.
En fait la variable Message est une variable public
Public Message As Integer
qui figure dans un autre module standard, et que j'utilise pour générer ou non l'affichage d'un message de fin de traitement.
Dans chaque sub il y a un message de fin de traitement comme dans le code précédemment donné, et chacun des sub peut être lancé soit individuellement, soit à partir d'un autre plus générique.
Exemple :
Dans ma base je veux déterminer les soucriptions à un ou plusieurs produits X, Y et Z de la gamme ALPHA. Pour chaque produit il y a un sub et il y a un sub de la gamme ALPHA.
Si je veux mettre à jour les données d'un produit pris individuellement, je lance les traitements pour chacun d'eux et à chaque produit j'ai un msgbox de fin de traitement (car ils peuvent être longs). Ceci correspond à
If Message < 1 Then MsgBox "Fin du traitement", vbInformation, "Message d'exécution"
car à ce stage Message = 0 pour chaque produit.
Par contre si je veux mettre à jour toute la gamme pour gagner du temps, je lance les traitements via le sub ALPHA qui se présente comme ceci :
1 2 3 4 5 6 7 8 9 10 11 12
| Sub ALPHA()
'
Message = Message + 1
'
X
Y
Z
If Message < 2 Then MsgBox "Fin du traitement", vbInformation, "Message d'exécution"
'
Message = Message - 1
'
End Sub |
Ici Message est mis automatiquement à 1 (0+1) pour empêcher d'avoir un msgbox de fin de traitement à chaque produit de la gamme traitée mais seulement à la fin du sub de la gamme.
En ce qui concerne le rapport d'erreur, tout mon intérêt est qu'en lançant le sub de la gamme je souhaite avoir la liste des produits sur lesquels il y a eu erreur afin de les corriger individuellement sans avoir à interrompre le traitement de la gamme. C'est ce qui justifie le bout de code
1 2 3 4 5 6 7 8 9
| Erreur:
If Message > 0 Then
oGestErreur.EnregistrerErreur Err.Number, Err.Description, "R000C000AGECLIEN()"
Else
ErreurProgramme
End If
Exit Sub
'
End Sub |
car à ce niveau Message est forcément au moins égal à 1.
Merci.
Partager