Problème d'impression avec PrintOut

Bonjour à tous,

Mon programme propose de pouvoir imprimer (avec "True" positionné pour l'apperçu avant impression) un fichier excel qui est soit créé par le programme soit récupérer et ouvert par celui-ci.

Mon problème vient du fait que dans le deuxième cas pas de soucis, le preview avant impression s'affiche), je peux imprimer, mais dans le premier cas lorsque je créé mon fichier avant de le manipuler, le programme tourne sans jamais s'arrêter en bloquant totalement excel. J'ai essayé de récupérer un code erreur mais il semblerait que VBA n'en détecte aucune.

Voici le bout de programme qui créé ou récupère le fichier excel :

If DonneeClassement.nouveauClassement = True Then

'Créé, enregistre et active un classeur excel avec le nom spécifié dans la fenêtre d'Accueil

Set AppliClassement = CreateObject("Excel.Application")

Set FichierClassement = AppliClassement.Workbooks.Add

FichierClassement.Activate

Call InitialiseUnclassement

FichierClassement.SaveAs (DonneeClassement.NomFichier)

Else

'Ouvre et active le classeur excel dont le nom a été saisi dans la fenêtre d'Accueil

Set AppliClassement = CreateObject("Excel.Application")

Set FichierClassement = Workbooks.Open(DonneeClassement.NomFichier)

FichierClassement.Activate

Call RemplirLbxListeFonds

End If

Et Voici mon code qui lance l'impression :

Private Sub GestionImprimer_Click()

fmListeFonds.Hide

FichierClassement.Sheets(1).Columns("A:I").AutoFit

FichierClassement.Sheets(1).PrintOut , , , True

fmListeFonds.Show

End Sub

bonjour,

Je crains que quelques bouts de macros ne suffisent pas.

Tu pars d'un classeur tu crées une autre instance, un classeur que tu SaveAs ce qui en fait le classeur actif, mais Dieu seul sait (en encore...) ce que tu as pu bricoler entre temps d'autant que la situation n'est pas la même si tu viens de créer le fichier ou si le fichier existait déjà... (selon que tu es dans le if ou dans le Else tu as un call et dans l'autre cas il y en a un autre.

De manière générale une macro commence par Sub... et se finit par End Sub() : Il est bien de fournir les macros en entier.Et dans les cas les plus complexes joindre la totalité du classeur avec des données minimales et simplifiées n'est pas une mauvaise idée.

Un premier test d'abord avant d'aller plus loin... Comme je n'ai jamais vu de problème avec PrintOut, tu pourrais peut-être commenter cette ligne avec un tilde ( ' ) ou mettre un petit MsgBox à la ligne précédente rien que pour voir si ta macro rame pas déjà un peu avant de lancer l'impression. Il est possible que ça rame déjà bien avant.

Enfin en deuxième ressort ça me semble pas très sain de gérer ton impression depuis le Private module de ton USF. Chacun son métier, les vaches seront bien gardées : Le module USF doir gérer l'USF et tu Call une macro d'impression que tu mets dans un module standart.

Et cette macro d'impression ne doit faire que de l'impression : pas gérer l'USF of course. Je sais bien que ça parait cucu comme ça de faire une macro d'une ligne rien que pour l'impression mais moi je procède comme ça.

D'une part ça structure mieux tes macros et d'autre part quand tu veux faire le ménage tu sais exactement qui fait quoi...

Voila dèjà quelques pistes...

A+

Rechercher des sujets similaires à "probleme impression printout"