souci impression/memoire utilisee par XL/spooler etc ...

tora

XLDnaute Occasionnel
Bonjour a tous,

Elements:
1 Fichier XL comprenant 3 pages
2 Userforms
1 Module Classique
4 Modules de Classe
1 ou 2 fichiers externes servant de stockage de Worksheet
( aucune ligne de code dans les fichiers externes )

Operation principale : ( ou survient le bug )
1/ Appel du Userform1
Celui-ci va glaner des informations sur la Worksheet 1 dans des plage
nommées pour renseigner ses variables Array ainsi que ses divers controles combobox etc ...
2/ L'utilisateur remplit les textbox, click les options buttons, checkbox,etc ...
3/ Lorsque l'utilisateur appuie sur le bouton "Imprimer 1 copie", le userform
va remettre en forme la worksheet2 et deverser son contenu dans les
cellules appropriées. Puis ouvrir un des 2 dossiers externes et faire un
copie-coller de la page active. Fermeture du fichier externe.
4/ *** Ici doit tres probablement intervenir le fameux bug ***
MEPF est ici une fonction booléene qui renvoi True si les informations
minimales requises a l'impression on bien ete remplies par l'utilisateur.
cette même fonction s'occupe de l'etape 3/ indiquée ci-dessus quand
le quota d'informations est atteint ou alors retourne False sans passer
à l'étape 3/.

Private Sub Imprimer_1_copie_Click()
If MEPF Then
Unload Me
ActiveSheet.PrintOut , , 1
End If
End Sub

Et voila donc mon bug qui survient sans me permettre de tenter un
quelconque debugage et en plus me referme pour de bon XL au nez.:mad:

Un ami ayant tenté de stopper le spooler et ne trouvant plus de bug apres
cela, en a deduit que la memoire etait surchargee par XL.... d'ou un double
emploi avec le spooler et un crac mal gèré par XL au retour.:eek:

Curieusement l'operation de debugage avec point d'arret au ligne par
ligne n'avait pas retourne d'erreur ... peut-etre par chance ? ... :eek:

Ni mon ami:( ni moi:( ne savons trop comment résoudre ce souci à priori
de mémoire saturée ....

:confused:*Existe-t-il un moyen de controler le niveau de mémoire utilisé durant
:confused:*procédure, existe-t-il également un moyen (instruction) permettant
:confused:*de libérer la mémoire ou qu.qu. chose de similaire ? ...

Un avis d'expert serait donc fortement apprécié ....

Merci à tous par avance !!
 

JNP

XLDnaute Barbatruc
Re : souci impression/memoire utilisee par XL/spooler etc ...

Bonjour Tora :),
Celui-ci va glaner des informations sur la Worksheet 1 dans des plage
nommées pour renseigner ses variables Array ainsi que ses divers controles combobox etc ...
D'après l'aide Excel, les variables, et à plus forte raison les tableaux, consomme beaucoup de mémoire vive. Si tu n'a plus besoin de tes Array, tu peux les vider avec Erase.
Par contre, je n'ai pas trouvé d'instruction pour la gestion de la vive, ni dans VBA, ni dans MSDOS...
Bon courage :cool:
 

PMO2

XLDnaute Accro
Re : souci impression/memoire utilisee par XL/spooler etc ...

Bonjour,

Curieusement l'operation de debugage avec point d'arret au ligne par
ligne n'avait pas retourne d'erreur ... peut-etre par chance ? ...


Si on se réfère à ce passage de votre message, il ne s'agit peut-être pas d'un problème de mémoire.

A tout hasard essayez de suspendre momentanément le thread d'exécution avec l'API suivante à mettre en tête de votre code.
Declare Sub Sleep Lib "kernel32.dll" ( ByVal dwMilliseconds As Long)

On met délibément un délai fort de 10 secondes qui, si c'est bien la solution à votre problème, pourra être baissé après plusieurs tentatives.
Code:
Declare Sub Sleep Lib "kernel32.dll" ( ByVal dwMilliseconds As Long)

'...................

Private Sub Imprimer_1_copie_Click()
If MEPF Then
Unload Me
Sleep (10000)  'ici ou …
ActiveSheet.PrintOut , , 1
Sleep (10000)  'plutôt là
End If
End Sub
Obtenez-vous le résultat espéré ?

Cordialement.

PMO
Patrick Morange
 

tora

XLDnaute Occasionnel
Re : souci impression/memoire utilisee par XL/spooler etc ...

merci a tous les deux !!

Pour l'instruction Erase, je l'ai appliquee a mes 4 Array mais toujours bug

Private Sub page1_Click()
If MEPF Then
Unload Me
Erase Gd
Erase Dv
Erase Tva
Erase Soc
ActiveSheet.PrintOut , , 1
End If
End Sub

apres quoi j'ai donc teste le Sleep(10000)
qui a bien voulu travailler 1 fois puis plus du tout

1er essai concluant mais long au declenchement
( les fameuses 10 secondes )
ensuite essais Sleep(1000) = *bug*
ensuite essais Sleep(2000) = *bug*
ensuite essais Sleep(3000) = *bug*
ensuite essais Sleep(4000) = *bug*
ensuite essais Sleep(5000) = *bug*
ensuite essais Sleep(6000) = *bug*
ensuite essais Sleep(7000) = *bug*
ensuite essais Sleep(8000) = *bug*
ensuite essais Sleep(9000) = *bug*
ensuite essais Sleep(10000) = *bug*

tristesse .... :( meme 10000 il le veut plus .... :(
100 000 j'ai pas osé ... :rolleyes:

est-ce qu'une desinstall d'XL et re-install pourrait
permettre de résoudre ce souci ? ...
( même pas sur qu'il nous reste les CD d'install ... )

merci
 

PMO2

XLDnaute Accro
Re : souci impression/memoire utilisee par XL/spooler etc ...

Bonjour,

3/ Lorsque l'utilisateur appuie sur le bouton "Imprimer 1 copie", le userform
va remettre en forme la worksheet2 et deverser son contenu dans les
cellules appropriées. Puis ouvrir un des 2 dossiers externes et faire un
copie-coller
de la page active. Fermeture du fichier externe.


Et si les contenus des 2 presse-papiers (Windows et Office) étaient la source de vos ennuis.

Je viens de faire paraître un article pour le vidage des presse-papiers.

https://www.excel-downloads.com/thr...-cutcopymode-false-et-clipboard-clear.117135/

C'est peut-être la bonne piste.

Cordialement.

PMO
Patrick Morange
 

tora

XLDnaute Occasionnel
Re : souci impression/memoire utilisee par XL/spooler etc ...

Bonjour,

3/ Lorsque l'utilisateur appuie sur le bouton "Imprimer 1 copie", le userform
va remettre en forme la worksheet2 et deverser son contenu dans les
cellules appropriées. Puis ouvrir un des 2 dossiers externes et faire un
copie-coller
de la page active. Fermeture du fichier externe.


Et si les contenus des 2 presse-papiers (Windows et Office) étaient la source de vos ennuis.

Je viens de faire paraître un article pour le vidage des presse-papiers.

https://www.excel-downloads.com/thr...-cutcopymode-false-et-clipboard-clear.117135/

C'est peut-être la bonne piste.

Cordialement.

PMO
Patrick Morange

Bonjour PMO,

merci pour la réponse.

En fait, je ne sais pas le pourquoi mais
on utilise un form, remplit une feuille fait le copié-collè ... etc ...
on ferme le form et on clic sur l'impression : pas de bug.

donc impression automatique déclenchée par le form = bug
impression classique ( bouton XL commandbar imprression ) = pas bug

bref ça tourne en classique et ça convient visiblement.

Merci encore.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 504
Messages
2 089 070
Membres
104 018
dernier inscrit
Mzghal