Aide dans une macro d'impression

hbenalia

XLDnaute Occasionnel
Bonjour à tous,

J'ai créé une macro d'impression d'une fiche d'informations selon une base de données (feuille DATA du fichier ci-joint)... Cette macro change le contenu de la cellule ($I$3) de la feuille "FICHE" dont le contenu est appelé en référence de la fonction "RECHERCHEV" dans la fiche. Et cette valeur varie de la valeur de la cellule ($I$2) à la valeur de la cellule ($J$2). La macro (qui fonctionne bien) imprime une page à chaque fois que la valeur de la cellule ($I$3) change jusqu'à la fin de la boucle (FOR), ce qui pose un problème, parce que je travaille sur des fichiers de plusieurs informations (qui dépassent les 400 ou les 500 lignes d'informations comme des bulletins d'élèves; fiches de sythèse; fiches de personnel...), chaque valeur changée c'est un ordre d'impression, plusieurs valeurs donneraient plusieurs ordres d'impression ce qui prendrait beaucoup de temps d'une part et d'autre part, saturerait la mémoire de l'imprimante (blocage, erreurs d'impression, ...)...

Ce que je cherche, est-ce possible de relier la boite de dialogue du gestionnaire d'impression dans la mention d'impression pages (DE ..... A) à ma cellule référence ($I$3) ou bien de changer la macro par une macro qui imprime dans un "fichier" spécial jusqu'à la fin de la boucle (FOR) et ensuite lancer l'impression de ce fichier via l'imprimante... (comme l'option "LETTRES et PUBLIPOSTAGE" dans WORD)...

Ci-joint le fichier "Test_Impression.xls" en exemple...

Merci d'avance
 

Pièces jointes

  • Test_Impression.xls
    28 KB · Affichages: 93

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Aide dans une macro d'impression

Bonjour hbenalia,

remplace ton code par ceci
Code:
Sub Imprimer()
Dim i As Integer
For i = Range("i2").Value To Range("j2").Value
        Range("i3").Value = i
    If i <= Range("j2").Value Then
       ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
Next i
Range("i2").Select
End Sub
tu avais oublié les différents .Value

Bon Week-end
à+
 

hbenalia

XLDnaute Occasionnel
Re : Aide dans une macro d'impression

Bonjour PHLAURENT55,

Merci beaucoup pour ta réponse, que je n'esperai pas venir puisque j'ai déposé ce problème sur plusieurs forums et pas de réponses, c'est la première réponse que je recois...

La modification faite sur le code n'a fait qu'accélerer les ordres d'impressions, mais ce que je veux, c'est de faire les impressions de toutes les pages par incrémentation de la valeur "Réference" sur un "fichier temporaire" puis enfin l'impresion sur imprimante....

En tout cas je te remercie infiniment, bonne nuit et bon week-end....

Bonjour hbenalia,

remplace ton code par ceci
Code:
Sub Imprimer()
Dim i As Integer
For i = Range("i2").Value To Range("j2").Value
        Range("i3").Value = i
    If i <= Range("j2").Value Then
       ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
Next i
Range("i2").Select
End Sub
tu avais oublié les différents .Value

Bon Week-end
à+
 

Excel-lent

XLDnaute Barbatruc
Re : Aide dans une macro d'impression

Bonsoir Hbenalia, phlaurent55,

hbenalia à dit:
c'est de faire les impressions de toutes les pages par incrémentation de la valeur "Réference" sur un "fichier temporaire" puis enfin l'impresion sur imprimante....

Dans ce cas, tu peux :
-> créer un répertoire spécifique pour tes impressions
puis via le VBA
-> créer un fichier PDF à chaque fois et l'enregistrer dans ce répertoire
-> une fois ... finis, éditer tous les fichiers de ce répertoire
-> effacer tous les fichiers (pour éviter que la fois suivante ta macro réimprime tes anciennes impressions ;) ).

Bon Dimanche
 

hbenalia

XLDnaute Occasionnel
Re : Aide dans une macro d'impression

Bonjour,

Merci beaucoup phlaurent55 pour ton idée de me diriger vers les fchiers PDF, pour le VBA je m'y connais pas du tout, mais j'ai utilisé un programme de création de fichiers PDF, qui installent automatiquement une imprimante PDF, choisissant cette imprimante pour imprimer mes fiches ou autres par incrémentation (en utilisant l'option APPEND de quelques programmes comme PRIMO PDF) j'arrive à créer un seul fichier PDF contenant toutes les pages imprimées, et ce fichier est imprimé ensuite via ADOBE... Le seul problème que je rencontre avec APPEND c'est que son exécution est manuelle...

En tout cas merci pour ton aide précieuse...

Considérons que le problème est réglé mais mes recherches continuent (pour un programme qui utilise l'option APPEND d'une façon automatique...

Bonsoir Hbenalia, phlaurent55,

Dans ce cas, tu peux :
-> créer un répertoire spécifique pour tes impressions
puis via le VBA
-> créer un fichier PDF à chaque fois et l'enregistrer dans ce répertoire
-> une fois ... finis, éditer tous les fichiers de ce répertoire
-> effacer tous les fichiers (pour éviter que la fois suivante ta macro réimprime tes anciennes impressions ;) ).

Bon Dimanche
 

Discussions similaires