XL 2010 Comment gérer une impression ciblée

micheldu52

XLDnaute Occasionnel
Bonjour,

Je tourne "un peu" (beaucoup...) en rond, help me !!! Merci d'avance si vous essayez de trouver, et merci encore plus .... si vous trouvez !

J'ai joins un fichier simpliste (la réalité est nettement plus complexe mais ma difficulté se résume à cela).

Ma question est :

Comment, sur la base des sélections faite par l'usager en K5 K6 (qui génèrent la sélection des fiches correspondantes) faire imprimer la fiche (très simplifiée) qui figure en A10/D17 (pour information la "vraie" fiche sera sur un onglet spécifique et contiendra des centaines d'informations) ?

La question de l'impression (déclenchée par exemple par appui sur le cadre texte "lancer l'impression") devra se décliner, selon le choix de l'utilisateur (en D6) par

* une impression directe sur l'imprimante (de chaque fiche les unes après les autres) - ici c'est une impression "à l'ancienne" sur papier
* un pdf global de x pages (dans l'exemple 2, mais dans la réalité, plusieurs centaines), si le nom est paramétrable c'est encore mieux mais pas indispensable
* la création d'un pdf par fiche avec un nom spécifique (disons le contenu de la colonne j, donc dans l'exemple AIMAR.XLS puis OMALIE.XLS (dans la réalité plusieurs centaines qui seront ensuite reprises par un publipostage à chaque destinataire de la fiche qui le concerne, ça c'est "réglé déjà)

Merci pour votre aide, mes essais de macro ne fonctionnent pas et je m'y perds...

Pour la petite histoire les noms dans le fichier sont tous des jeux de mots...

Bien cordialement,

Michel
 

Pièces jointes

  • impressions ciblees.xlsx
    10.6 KB · Affichages: 27
Solution
Ah oui pardon, j'ai corrigé le post #9 et le fichier (2).

Maintenant si l'on veut des fichiers XLS au lieu des PDF voyez ce fichier (3) et la macro :
VB:
Sub Fichier_XLS()
Dim chemin$, ville$, loisirs$, tablo, i&, n%
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
ville = [K5]: loisirs = [K6]
tablo = [J27].CurrentRegion.Resize(, 4) 'matrice, plus rapide
Application.ScreenUpdating = False
[C13:C16] = "" 'RAZ
For i = 2 To UBound(tablo)
    If (tablo(i, 3) = ville Or ville = "non précisé") And (tablo(i, 4) = loisirs Or loisirs = "non précisé") Then
        Range("C13") = tablo(i, 2)
        Range("C14") = tablo(i, 1)
        Range("C15") = tablo(i, 3)
        Range("C16") = tablo(i, 4)
        [A10:D17].Copy...

job75

XLDnaute Barbatruc
Bonjour micheldu52, le forum,

Pour PDF_global si l'on veut une page par fiche ajouter un saut de page, fichier (4) :
VB:
If n Then Range("A1:D8").Copy Range("A1").Offset(n): ActiveSheet.HPageBreaks.Add Range("A1").Offset(n) 'avec saut de page
A+
 

Pièces jointes

  • impressions ciblees(4).xlsm
    26.3 KB · Affichages: 15

micheldu52

XLDnaute Occasionnel
Bonjour,
Et encore merci pour l'aide, j'ai beaucoup avancé.
Une autre question si tu permets, question essentiellement de syntaxe.
Le fichier joint comprend plusieurs onglets (ce qui sera le cas du "vrai").
Il y a donc plusieurs (sur la base de 2 je déclinerais pour tous ceux à générer dans le vrai fichier) onglets par fichier et je ne perçois pas comment adapter le code pour cela.

Une question subsidiaire, le fichier (nommons le par les lettres A A' A'') sera donné aux intéressés "verrouillés" (seules les celulles à modifier seront accessibles, par menu déroulant souvent) mais, au retour, il faudrait que le xlsx généré ne soit pas protégé (pour être lu sans être ouvert, à priori avec INDIRECT). Cela me permettra de capter automatiquement les informations saisies pour les croiser avec la base d'origine et détecter automatiquement :

* le retour d'un fichier (et donc la liste de ceux qui ne l'auront pas rendu) (par exemple A' rend et A et A'' ne l'ont pas encore fait)
* la comparaison avec les informations d'origine et la modification éventuelle nécessaire de la base d'origine
* lorsqu'il y aura convergence entre chaque fichier et la base d'origine la modification du fichier (A' dans cet exemple) sur une cellule témoin qui signifiera "ne plus comparer, c'est OK" le tout automatiquement sans ouvrir le fichier (il y en a un millier)

En résumé, à cette étape, c'est la question de syntaxe qui fait l'objet de mes recherches...

D'avance merci pour ton aide !

Très cordialement,
Michel
 

Pièces jointes

  • suite impressions ciblees.xlsx
    11.7 KB · Affichages: 6

Discussions similaires

  • Résolu(e)
Microsoft 365 Programme VBA
Réponses
3
Affichages
416

Membres actuellement en ligne

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth