Re : Rafraichir et imprimer plusieurs requêtes
Bon, un petit bout de code pour ouvrir, rafraîchir, imprimer, fermer les rapports BO.
On supposera que les rapports BO sont tous placés au même endroit (Dans l'exemple : Le répertoire de stockage par défaut de BO).
Je n'ai pas géré les parametres d'invitations, il t'appartiendra de les renseigner au fur à mesure de l'exécution de la macro.
Par défaut, j'ai supposé que tu ne souhaitais pas enregistrer le rapport avant de le fermer.
J'ai ajouté un commentaire pour le modifier si besoin.
Méthode pour coller la macro VB :
Tu ouvres un nouveau document BO
combinaison des touches Alt + F11 pour accéder à l'interface Visual Basic
Dans les menus, tu cliques sur : Insertion/Module
Dans le Module, tu colles le code suivant ci après
(Puis F5 pour exécuter la macro ou F8 pour l'exécuter pas à pas).
Sub test()
Dim oFS As Variant, oLecteur As Variant, oRepertoire As Variant
Dim Dossier As Variant, oRepertoir As Variant
Dim ofichier
Dim Doct As Document
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C")
Dossier = Application.GetInstallDirectory(boDocumentDirectory)
chem_sce = Dossier
If (oLecteur.IsReady) Then
If (Dossier <> "") Then
Set oRepertoire = oFS.GetFolder(Dossier)
'Boucle pour chaque rapport dans la directory déclarée
For Each ofichier In oRepertoire.Files
'Ouverture du document
Set Doct = busobj.Application.Documents.Open(ofichier.Name)
'Rafraîchissement du document
Doct.Refresh
'Impression du document
Doct.PrintOut
'Optionnel - fermeture du document
'(False) si on ne veut pas enregistrer le document
'(True) si on veut enregistrer le document
Doct.Close (False)
Next
End If
End If
End Sub
Hop donc.