Impressions multiples en fonction de la valeur de cellules

Ju -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour a tous,

Je souhaite realiser une macro me permettant d'imprimer automatiquement les feuilles de mon classeur. Cependant le nombre de copies de chaque feuilles varie, il faudrait donc que je puisse rentrer le nombre de copies de chaque feuille que je desire et imprimer tout d'un coup. Est ce possible? Si oui est ce que quelqu'un aurait une idee de comment faire?

Merci d'avance pour votre aide,

Ju

2 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Pense à utiliser l'enregistreur de de macro...
    Ce qui donne :
    ActiveWorkbook.PrintOut Copies:=2

    Tu as juste à remplacer le 2 par la référence de ta cellule (ou bien utiliser inputbox).

    eric

    En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
    Merci
    0
  2. Ju
     
    Merci de ta reponse, j'ai utilise l'enregistreur et j'ai reussis a faire quelaue chose qui fonctionne:

    a = 1
    Sheets("RecapSheet").Select
    nb = Range("F3").Value

    Sheets("MySheet").Select
    If nb <> 0 Then
    Do While a <= nb
    ActiveSheet.PrintOut copies:=1
    a = a + 1
    Loop
    End If
    Sheets("Print sheet").Select

    Bye,

    Julie
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      pourquoi faire une boucle alors que tu peux mettre le nombre d'exemplaires voulus dans copies:= ?
      Et tu n'as pas besoin d'activer une feuille pour y récupérer une valeur :
      nb = Sheets("RecapSheet").Range("F3").Value
      suffit.

      eric
      0
    2. Ju
       
      Simplement parce que ca ne marchait pas avec une variable (Ce n'ai qu'un morceau de ma Sub, j'ai une 50aine de feuilles a imprimer avec des nombres de copies qui varient) du coup j'ai fais comme je pouvais vu que je suis debutante. Ok merci, je pensais qu'il fallait activer.

      Merci pour tes reponses
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Aucune raison que ça ne fonctionne pas :
      Dim nb As Long
      nb = Sheets("RecapSheet").Range("F3").Value
      ActiveSheet.PrintOut copies:=nb
      

      ou même sans variable, en une seule ligne :
      ActiveSheet.PrintOut copies:=Sheets("RecapSheet").Range("F3").Value

      eric
      0
    4. Ju
       
      Ok merci pour le temps passer a m'aider.
      Hum... Et est ce que c'est possible de d'imprimer une page d'un autre classeur avec cette commande?

      En fait je voudrais que ma macro n'imprime non plus des feuilles du classeur mes des feuilles dans des classeur ouvert via des liens dans IE.
      J'arrive a ouvrir un fichier via un lien dans IE mais si j'ai des instructions apres celle qui ouvre le classeur celui ci ne s'ouvre plus.


      Sheets("RecapSheet").Select
      nb = Range("F3").Value
      Set IE = CreateObject("internetExplorer.Application")
      IE.Visible = True

      IE.navigate "https://Lien/MonFichier.xls"
      'Si j'arrete la ca ouvre bel et bien mon classeur mais Si je rajoute une instruction d'impression de la feuille active, cela n'ouvre plus la feuille..
      Set Wb = Workbooks("MonFichier")
      'La ca plante, mon instruction est fausse
      Wb.Activate
      If nb <> 0 Then
      ActiveSheet.PrintOut copies:=Sheets("RecapSheet").Range("F3").Value
      'Il doit manquer quelque chose ici aussi pour dire que ce n'est pas le meme classeur mais de toute facon ca plante avant
      End If
      0