Macro Excel Imprimer avec condition

Résolu
Bonjour,
Je souhaiterais créer une macro excel pour imprimer avec condition.

Par exemple, pour simplifier, imaginons que sur une feuille de calcul j'ai défini une zone d'impression correspondant à 10 pages.
Je souhaite que l'utilisateur saisisse dans la cellule A1 (hors zone d'impression) le nombre de pages souhaitées puis clique sur un bouton "Imprimer". S'il a saisi 5, Excel lance l'impression des pages 1 à 5.

Ce genre de commandes est-il possible?

Concrètement, je dispose d'un fichier excel de gestion de personnes. Le fichier gère jusqu'à 40 personnes. J'ai besoin d'une page où imprimer un document par personne. Mais si je n'en ai que 10 à gérer, je souhaite qu'Excel ne m'imprime que 10 pages.

Merci d'avance.

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Re,

    exemple avant l'impression on masque la ligne 8 on imprime suivant la zone défini en A1 et on affiche la ligne 8

    Sub Impression_factures()
    [A8].EntireRow.Hidden = True
    If [A1] = 1 Then [A10:A20].PrintOut
    If [A1] = 2 Then [B10:B20].PrintOut
    If [A1] = 3 Then [C10:C20].PrintOut
    [A8].EntireRow.Hidden = False
    End Sub
    1. c pile ce que je voulais. merci!
    2. Salut Mike-31,

      ta macro est magique, mais elle le serait d'autant plus si elle acceptait du texte.

      If [A1] = TEST Then [A10:A20].PrintOut

      ne fonctionne malheureusement pas. Y'a-t-il une parade ?
    3. Salut,

      Bien sur

      If [A1] = "TEST" Then [A10:A20].PrintOut

      sur Excel les données Texte doivent être entre guillemet comme dans les formules d'ailleurs
    4. Mdr ! Que le VBA est sévère ! Pour deux guillemets qui manquaient, mon bouton ne répondait plus du tout !

      Merci pour l'info, et j'en profite pour te demander autre chose : je cherche à paramétrer l'impression de manière à avoir un format de sortie type (A3, recto-verso...).
      Malheureusement, je ne parviens à enregistrer que les paramètres Excel (Fichier -> Mise en page) et non ceux de l'imprimante en elle-même.

      Aurais-tu une solution à ce problème (peut-être faudrait-il ouvrir un nouveau topic :/) ? Merci d'avance !
    5. Re,

      Essaye avec ce code que je ne peux pas tester, choix d'orientation et du format

      Sub Impression_A3()
      With ActiveSheet.PageSetup
      .Orientation = xlPortrait
      .PaperSize = xlPaperA3
      End With
      ActiveSheet.PrintOut
      End Sub