Excel 2010 : Macro qui choisi le nombre de page à imprimer

Résolu
PatProg Messages postés 8 Statut Membre -  
PatProg Messages postés 8 Statut Membre -
Bonjour,
J'aurais besoin d'un bouton d'impression spécial pour définir le nombre de page à imprimer selon la quantité d'information qui est entrée. J'ai la valeur dans une cellule ($O$29), il suffit de prendre cette valeur et l'imposer à l'imprimante de 1 à ($O$29).

Merci ;)

2 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
        ActiveSheet.PageSetup.PrintArea = "A1:" & O29.Value

    A+

    1
    1. PatProg Messages postés 8 Statut Membre
       
      Bonjour lermite222,
      merci pour ta réponse, mais ce n'est pas la zone d'impression que je désir paramétrer, mais le nombre de page à imprimer. O29.value est donc le nombre total de page à imprimer.

      Est-ce réalisable en macro ?

      Merci !
      0
    2. PatProg Messages postés 8 Statut Membre
       
      Encore moi !
      Je pourrais finalement utiliser la zone d'impression automatique, mais ça ne fonctione pas, j'ai un message d'erreur : Objet requis !

      voici mon code :
      Sub Zone_impression_Auto()
      '
      ' Zone_impression_Auto Macro
      ' Défini automatiquement la zone d'impression selon le nombre de cabinet défini en L38 multiplié par le nombre de ligne soit 38.
      '
      ' Touche de raccourci du clavier: Ctrl+Shift+P
      '
          ActiveSheet.PageSetup.PrintArea = "$A$1:" & N5.Value
          Range("$A$1:" & N5.Value).Select
      End Sub


      Que manque t-il ?

      Merci d'avance :)
      0
    3. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Re,
      ça dépend de ce que contient N5 ?
          ActiveSheet.PageSetup.PrintArea = "$A$1:" & [N5].Value
          Range("$A$1:" & [N5].Value).Select
      
      Tu dis
      0
    4. PatProg Messages postés 8 Statut Membre
       
      WOW ! Hyper génial, ça fonctionne à merveille !
      finalement
      [N5] =CONCATENER("L";'COMMANDE A'!$P$29*38)
      soit la colonne "L" qui est fixe et la ligne = (nbr de page)*(nbr de ligne par page)

      Merci lermite222
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour tout le monde,

    Désolé de l'incruste...

    Peut être comme ceci :

    Dim NbPages As Integer
    
    If Range("O29") = "" Or Range("O29") = 0 Then Exit Sub
    If IsNumeric(Range("O29")) Then NbPages = CInt(Range("O29")) Else Exit Sub
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=NbPages
    0