[déplacé VB6 -> VBA] code Vba excel entête d'un document

gerardcjf Messages postés 47 Date d'inscription mardi 3 juillet 2007 Statut Membre Dernière intervention 26 décembre 2013 - 15 nov. 2009 à 20:54
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 15 nov. 2009 à 23:55
Bonjour,

Ci-après une macro qui insère avant l'impression une entête sur chaque page qui sera imprimée.

Mon problème est que je voudrais que l'entête apparaisse qu'à compter de la seconde page imprimée et non pas dès la 1ere comme le fait la macro que j'ai faite.

Avez vous une idée ???


Mon code :

Sub impression()

CTRL = Sheets("Paramètres").Range("F3")
numPersonne = Sheets("paramètres").Range("F1")
nomPersonne = Sheets("paramètres").Range("G1")

Dim x As Byte
For x = 1 To Sheets.Count
With Sheets(x).PageSetup
.LeftHeader = "n° de Personne : " & numPersonne & " / " & "Nom de la Personne : " & nomPersonne & Chr(10) & "Nom du controleur : " & CTRL
.RightHeader = "Page" & "&P/&N"
End With
Next x

ActiveWorkbook.PrintPreview (True)
ActiveWorkbook.PrintOut copies:=1, ActivePrinter:=Default
End Sub

7 réponses

us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
15 nov. 2009 à 23:03
Bonsoir,

Oui, une piste... Dans l'explorateur d'objet regardes PrintOut !

Ce qui donne ceci :
PrintOut([From], [To], [Copies], [Preview], [ActivePrinter], [PrintToFile], [Collate], [PrToFileName])

Donc, tu dois organiser ton code en 2 parties... La première tu définis Rien dans l'entete puis tu utilises :
ActiveSheet.PrintOut 1, 1
ensuite tu mets ton entete (comme tu as actuellement), et tu utilises : ActiveSheet.PrintOut 2... Donc j'utilise ici l'identificateur FROM de printOut...

Voilà... je détaille pas plus pour l'instant...

Amicalement,
Us.
0
gerardcjf Messages postés 47 Date d'inscription mardi 3 juillet 2007 Statut Membre Dernière intervention 26 décembre 2013
15 nov. 2009 à 23:13
Effectivement, c'est une bonne idée !

Cependant, dans la seconde partie de code, cela suppose que je connaisse d'avance le nombre de page dans l'impression ... ce qui n'est pas le cas (car aléatoire en fonction du remplissage des feuilles par l'utilisateur)

Amicalement ...
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
15 nov. 2009 à 23:17
Ceci dit, je trouve ta question très intéressante, et cela me donne l'idée d'en faire une petite macro pour une saisie d'entête personnalisé... Je suis certain que cela va intéresser beaucoup de monde...

Amicalement,
Us.
0
gerardcjf Messages postés 47 Date d'inscription mardi 3 juillet 2007 Statut Membre Dernière intervention 26 décembre 2013
15 nov. 2009 à 23:20
Yes ... moi le premier !

Je suis donc preneur !


Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
15 nov. 2009 à 23:20
Oupsss... message croisé...

Non, pas de problème si tu indiques rien, alors l'impression se fera de 2 jusqu'à la fin...

Je répéte le code avec une bonne mise en forme :

ActiveSheet.PrintOut 2


ou encore

ActiveSheet.PrintOut From:=2


Regardes ton code, tu n'indiques rien concernant "Form" et "To", ils sont pris par défaut, donc tout est pris en compte automatiquement...


Amicalement,
Us.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
15 nov. 2009 à 23:21
Oupsss, RE message croisé ! T'es un rapide !

Amicalement,
Us.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
15 nov. 2009 à 23:55
De plus, voici un bon lien sur le sujet :

http://excel.developpez.com/faq/?page=Impression

A la fin, tu as une base de code VBA pour t'inspirer...

Amicalement,
Us.
0
Rejoignez-nous