Bonjour à tous,
OS : Windows 98 OS/2
VB 6.0
MAPI 6.0
Library Microsoft Excel 8.0
je rencontre un pb qui commence sincérement à m'énerver. J'espère que la communauté va pouvoir me venir en aide.
Présentation de l'appli :
Depuis 2 ans, j'ai une appli qui tourne, qui me permet de récupérer des pièces jointes reçues par mail. Cette appli se regénére dans le temps comme un automate (lancement toutes les heures).
Ces pièces jointes sont en fait des fichiers excel pré-paramètrés que je reçois de nos clients.
L'appli doit procéder à un traitement de ces fichiers pour réaliser des récaps.
Voici le décor planté !
Probléme :
De manière complétement aléatoire, je dis bien aléatoire (des journées cela se passe bien, d'autres journées, c'est le basard), des process excel (1 à n) restent actifs dans le gestionnaire des tâches. Ces process quand je cherche à les 'killer' sont soit en fin de tâche, soit complétement mort (message de windows : process terminé anormalement);
Très rarement, mais cela est arrivé quand même j'ai carrément un message de mémoire insuffisante qui me plante l'appli.
Exemple de code :
Dim Feuil_Excel_Tampon As Object
Set Feuil_Excel_Tampon = CreateObject("Excel.application")
Feuil_Excel_Tampon.Application.Workbooks.Open (Dir.Path & "\Debug\thread n°" & I & ".xls")
Feuil_Excel_Tampon.Application.Visible = False
'Traitement
Feuil_Excel_Tampon.Application.ActiveWorkbook.SaveAs FileName:=Dir.Path & "\Debug\tampon - thread n°" & I & ".xls", _
FileFormat:=xlNormal
'Ferme l'objet en cours
Feuil_Excel_Tampon.Application.Quit
'Désallocation mémoire
Set Feuil_Excel_Tampon = Nothing
Je multiplie ce genre de procédures plusieurs fois.
J'ai vérifié toutes mes procédures, à chaque fois je ferme correctement mon objet excel.application, et je désalloue correctement la mémoire.
Alors MYSTERE, vraiment MYSTERE. j'ai essayé de réinstaller plusieurs fois office, et rien n'y fait. L'appli tourne sur un poste dédié qui ne fait rien d'autres. C'est une machine correcte (PIV, 512 Mo de mémoire).
Voyez vous une solution ????
Comment désallouer la mémoire de manière certaine ?
Est-il possible de faire des pointeurs d'objets en VB ?
Merci d'avance pour votre aide, car là franchement je nage
PpPool