Imprimer une sélection de feuilles

faltric

XLDnaute Nouveau
Bonjour,
J'ai un classeur avec plusieurs feuilles et je voudrais, à l'aide d'un bouton dans la feuille 1, pouvoir imprimer une certaine quantitée de feuilles indiquée dans une cellule. voir fichier ci-joint.
Par avance merci.
 

Pièces jointes

  • Classeur1.xls
    46 KB · Affichages: 56
  • Classeur1.xls
    46 KB · Affichages: 68
  • Classeur1.xls
    46 KB · Affichages: 65

Bichon 94

XLDnaute Junior
Re : Imprimer une sélection de feuilles

Bonjour,

Pas sur d'avoir bien compris ta question.

Si ton objectif est d'imprimer un certain nombre de copie, voici la formule :
ActiveWindow.SelectedSheets.PrintOut Copies:=Range("G7").Value, Collate:=True

Si par contre tu souhaite imprimer le contenu des trois premiers onglets en mettant 3 dans G7, je ne vois pas trop.

Bonne journée
 

mercant76

XLDnaute Impliqué
Re : Imprimer une sélection de feuilles

Bonjour,

Pas compris ton problème.

tu veux imprimer 3 fois la même feuille ? laquelle ?

tu veux imprimer 3 feuilles différentes ? lesquelles ?

les zones d'impression ne sont pas définies si tu veux imprimer environ 180 lignes soit # 3 feuilles.

peux tu préciser ton besoin ?

@+
 

guigui87

XLDnaute Nouveau
Re : Imprimer une sélection de feuilles

bonsoir

je reprend le flambeau de mon collègue Faltric

d'abord merci pour vos réponse , je vais essayer de vous expliquer ce que nous voudrions faire

dans le classeur de Faltric nous voulons que en rentrant un nombre dans la cellule que cela imprime le nombre correspondant de feuilles en partant de 1 jusqu a ce nombre

en fait je pense que le code sera plus parlant que des phrases

Code:
Private Sub CommandButton1_Click()

Dim X As Integer
X = Range("G7")

If X = 1 Then
Sheets("1").PrintOut
End If

If X = 2 Then
Sheets(Array("1", "2")).PrintOut
End If

If X = 3 Then
Sheets(Array("1", "2", "3")).PrintOut
End If

If X = 4 Then
Sheets(Array("1", "2", "3", "4")).PrintOut
End If

If X = 5 Then
Sheets(Array("1", "2", "3", "4", "5")).PrintOut
End If

If X = 6 Then
Sheets(Array("1", "2", "3", "4", "5", "6")).PrintOut
End If

If X = 7 Then
Sheets(Array("1", "2", "3", "4", "5", "6", "7")).PrintOut
End If

If X = 8 Then
Sheets(Array("1", "2", "3", "4", "5", "6", "7", "8")).PrintOut
End If



End Sub


on a ébauchè le code ci dessus qui est fonctionnel mais qui est assez lourd et très long a taper si comme dans certains classeur on atteint un nombre de pages élevé

serait il possible de le simplifier du genre

Code:
X = Range("G7")
sheets(array("1" to X)).printout

nous ne savons pas quel genre de syntaxe utiliser

merci pour votre aide:p

Guillaume
 

Pièces jointes

  • Classeur1.zip
    13.3 KB · Affichages: 28
  • Classeur1.zip
    13.3 KB · Affichages: 28
  • Classeur1.zip
    13.3 KB · Affichages: 30
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Imprimer une sélection de feuilles

Bonsoir


A tester
Code:
Sub impression() 
Dim i As Integer 
 Dim X As Integer
X = Sheets(1).Range("G7") 
If X=0 Or X > Sheets.Count Then Exit Sub   
For i = 1 To X
 With Sheets(i)
    .PrintOut
  End With 
Next 
End Sub
 
Dernière édition:

guigui87

XLDnaute Nouveau
Re : Imprimer une sélection de feuilles

merci pour votre rapidité

Je viens de mettre votre bout de code mais cela n'a pas l'air de fonctionner mais pourriez vous quand même contrôler que je l'ai inséré correctement car je ne connais que très peu la programmation vba .
 

Pièces jointes

  • Classeur1(2).zip
    14.2 KB · Affichages: 47
  • Classeur1(2).zip
    14.2 KB · Affichages: 46
  • Classeur1(2).zip
    14.2 KB · Affichages: 46

Staple1600

XLDnaute Barbatruc
Re : Imprimer une sélection de feuilles

Re

Essayes comme ça
Code:
Private Sub impression_Click()
Dim i As Integer
 Dim X As Integer
X = Sheets("[B]Relevé[/B]").Range("G7")
If X = 0 Or X > Sheets.Count Then Exit Sub
For i = 1 To X
 With Sheets(i)
    .PrintOut
  End With
Next
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Imprimer une sélection de feuilles

Re


Pour ne pas gacher de papier ;)
Code:
Private Sub impression_Click()
Dim i As Integer
 Dim X As Integer
X = Sheets("Relevé").Range("G7")
If X = 0 Or X > Sheets.Count Then Exit Sub
For i = 1 To X
 With Sheets(i)
    .[B]PrintPreview[/B]
  End With
Next
End Sub

Test ok chez moi
 

Discussions similaires