Problème de mise à jour de la page avant d'imprimer

nibor

XLDnaute Nouveau
Bonjour tout le monde,

Je précise que je suis un vrai novice en programmation .. merci d'avance de votre indulgence et patience.

Je réalise un tableau de bord et je touche presque au but, mais je sèche sur un problème d'actualisation d'une fiche Excel avant d'imprimer.

Je souhaite imprimer plusieurs pages Excel en format PDF qui en fonction d'une cellule affiche des valeurs différentes sur la page.

Mon problème : quand j'imprime plusieurs pages en fonction d'une liste, ma troisième page n'est jamais à jour alors que les pages qui suivent elles le sont.

Ma question : qu'est-ce que je dois modifier dans mon code ci-dessous pour forcer une mise à jour de la page après la sélection la cellule lorsque j'entre dans ma boucle FOR ?

D'avance, je vous remercie beaucoup de votre aide et j'espère avoir été clair dans mon explication.

Meilleures salutations
Nibor


Code :
Sub imprimSelec()
'
' Imprimer toutes les feuilles des calibres sélectionnés en un seul fichier PDF Macro
'
Dim i As Integer
Dim wbdest As Workbook
Dim wbsource As Workbook

'nom du fichier pdf
nom_fichier = "\" & Sheets("Page de titre").[A2] & "_" & Sheets("SELECTION_DATES").[H5] & "_" & Sheets("Synthese").[AA2] & "_" & Sheets("SELECTION_DATES").[H6]

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

' mettre à jour la page Excel
Call Module1.MàJ
' Première page à imprimer = page de titre
Set wbsource = ActiveWorkbook
Sheets("Page de titre").Copy
' Deuxième page à imprimer = page Excel affichée
Set wbdest = ActiveWorkbook
Feuil1.Copy After:=wbdest.Sheets(wbdest.Sheets.Count)

' Suite des pages à imprimer (mon problème commence ici .. ma première page n'est jamais à jour)
For i = 6 To Feuil1.Range("AA35").End(xlUp).Row
Feuil1.Range("A1") = Feuil1.Range("AA" & i).Value
' mettre à jour la page Excel malgré cela, la feuille ne se met pas totalement à jour
Call Module1.MàJ
Application.Wait Now + TimeValue("0:00:02")
Feuil1.Copy After:=wbdest.Sheets(wbdest.Sheets.Count)

ActiveSheet.Name = "fiche" & i - 6
ActiveSheet.Range("A1:V80") = wbsource.Sheets("Synthese").Range("A1:V80").Value
wbsource.Activate

Next
wbdest.Activate

'enregistrement au format pdf
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=wbsource.Path & nom_fichier, Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True ' sauvegarde du fichier au format pdf
'fermeture du fichier temporaire sans enregistrement
ActiveWorkbook.Close False

End Sub
 

Papou-net

XLDnaute Barbatruc
Re : Problème de mise à jour de la page avant d'imprimer

Bonjour nibor,

Pas facile d'être précis sur un extrait de code. Toutefois, je te propose de supprimer la fonction Application.ScreenUpdating = False et de réessayer.

Cordialement.
 

nibor

XLDnaute Nouveau
Re : Problème de mise à jour de la page avant d'imprimer

Merci pour vos rapides réponses.

@ Papou-net :
- je viens d'essayer en supprimant la commande .. mais mon problème reste le même

@ st007 :
- une fonction de mise à jour de mes tableaux que j'ai créé avec la fonction enregistré "Macro" (ne pas taper svp)


j'ai mis le fichier en pièce jointe.
le fichier est un peu "lourd" mais il est temporaire le temps qu'on change un système informatique (~1 an).

dans l'onglet "Synthese", je choisis les éléments à imprimer dans la partie sélection et ensuite en cliquant "imprimer SLECTION", j'enregistre toutes les pages dans un seul fichier PDF.

La première page = page de titre (=onglet "Page de titre)
La deuxième page = la page affichée
La troisième page = la 2ème ligne de la sélection
La quatrième = etc.

Est-ce plus compréhensible ainsi ?
 

Pièces jointes

  • Pareto_BETA - nibor - travail.xlsm
    110.8 KB · Affichages: 32
  • Pareto_BETA - nibor - travail.xlsm
    110.8 KB · Affichages: 30

nibor

XLDnaute Nouveau
Re : Problème de mise à jour de la page avant d'imprimer

si seulement c'était pas vrai ... c'est toujours pas ça.
je te remercie d'avoir pris le temps de regarder.

Mon problème reste exactement le même .. ma page de titre s'affiche correctement, ma première page d'information également mais la troisième n'est pas actualisée alors que la quatrième l'est.
 

st007

XLDnaute Barbatruc
Re : Problème de mise à jour de la page avant d'imprimer

Bonsoir,
essaye ce fichier ...
pour identifier le bug de mise à jour, au lieu de cliquer sur le bouton pour lancer la macro, actionne là pas à pas.
Par succession de touche "F8", comme tu connais ton fichier et ce que tu veux en faire, à chaque "F8" une action (ligne de code) se réalise, à toi alors d'identifier à quel moment il faudrait mettre à jour

si par magie tout fonctionne par tes "F8", c'est que les temps de recalculs sont plus long que deux secondes
 

Pièces jointes

  • Pareto_BETA - nibor - travail.xlsm
    101.1 KB · Affichages: 29
  • Pareto_BETA - nibor - travail.xlsm
    101.1 KB · Affichages: 31

nibor

XLDnaute Nouveau
Re : Problème de mise à jour de la page avant d'imprimer

Re bonjour,

Alors effectivement, la magie opère avec les "F8" => pas à pas, tout va pour le mieux du monde.
Merci encore pour le conseil.

J'ai rajouté une temporisation après l'opération de calcule (8s) mais rien n'y fait pour cette troisième page.

C'est donc pas possible de tromper Excel et qu'il est "trop" rapide pour mettre à jour correctement toutes mes informations ?
 

Discussions similaires

Réponses
4
Affichages
1 K

Statistiques des forums

Discussions
315 103
Messages
2 116 235
Membres
112 695
dernier inscrit
ben44115