OVH Cloud OVH Cloud

Changement de Bac

77 réponses
Avatar
o.0
Est-ce que le changement de bac est censé être automatique sous Word
lorsqu'il y a un saut de section ?

10 réponses

1 2 3 4 5
Avatar
Geo
Re

démonstration (j'espère)
La amcro suivante passe en revue tous les codes indiqués
les applique apr défaut à l'imprimante par défaut elle aussi
et donne en clair le bac utilisé.
La liste apprait dans la fenêtre d'exécution de vba.
On remarque immédiatement que l'imprimante onterprète plusieurs codes
de la même manière.
Voici qce que j'obtiens avec la mienne
7 7 Automatique
0 0 Utiliser config. imprimante
5 0 Utiliser config. imprimante
15 0 Utiliser config. imprimante
11 0 Utiliser config. imprimante
10 0 Utiliser config. imprimante
2 2 Bac Supérieur
6 2 Bac Supérieur
4 2 Bac Supérieur
3 3 Bac Optionel
1 1 Bac Multifonctions
14 1 Bac Multifonctions
9 1 Bac Multifonctions
8 1 Bac Multifonctions
1 1 Bac Multifonctions


Sub Correspondance()
Dim i
Debug.Print ActivePrinter
For Each i In Array(wdPrinterAutomaticSheetFeed, _
wdPrinterDefaultBin, wdPrinterEnvelopeFeed, _
wdPrinterFormSource, wdPrinterLargeCapacityBin, _
wdPrinterLargeFormatBin, wdPrinterLowerBin, _
wdPrinterManualEnvelopeFeed, wdPrinterManualFeed, _
wdPrinterMiddleBin, wdPrinterOnlyBin, _
wdPrinterPaperCassette, wdPrinterSmallFormatBin, _
wdPrinterTractorFeed, wdPrinterUpperBin)

Options.DefaultTrayID = i
Debug.Print i, Options.DefaultTrayID, Options.DefaultTray
Next
End Sub
Avatar
geo
Plus efficace et met en évidence que la liste des valeurs
de word ne couvre pas tous les cas :
Sub Correspondance()
Dim i
Debug.Print ActivePrinter
For i = 0 To 1000
Options.DefaultTrayID = i
If Left(Options.DefaultTray, 3) = "Bac" Then
Debug.Print i, Options.DefaultTrayID, _
Options.DefaultTray
End If
Next
End Sub

Reste plus qu'à faire la liaison entre le type
d'imprimante et la valeur à mettre pour avoir le bac
souhaité, ça ne doit pas être très compliqué.

A+
Avatar
Gisele
-----Message d'origine-----
Est-ce que le changement de bac est censé être
automatique sous Word

lorsqu'il y a un saut de section ?


Qu'entendez-vous pas "bac" ?

Avatar
o.0
bac 1 ou bac 2 d'une imprimante (ou bac 3)...
ou bac haut ou bac bas ça dépend...

"Gisele" a écrit dans le message de
news:c22401c47a26$f166d250$

-----Message d'origine-----
Est-ce que le changement de bac est censé être
automatique sous Word

lorsqu'il y a un saut de section ?


Qu'entendez-vous pas "bac" ?

Avatar
geo
ceci devrait faire l'affaire
Vérifier le paramétrage intermédiaire :
P1 = ValBac1 ' page 1 de la section 1
etc

Sub SectionsAvecBacsAlternés()
Dim i As Integer
Dim ValBac1 As Long
Dim ValBac2 As Long
Dim ValBac3 As Long
Dim ValBac4 As Long
Dim P1 As Long
Dim S1 As Long
Dim P2 As Long
Dim S2 As Long
Dim P3 As Long
Dim S3 As Long

Debug.Print ActivePrinter
ValBac1 = 0
ValBac2 = 0
ValBac3 = 0
ValBac4 = 0
For i = 0 To 1000
Options.DefaultTrayID = i
Select Case Options.DefaultTray
Case "Bac 1"
ValBac1 = Options.DefaultTrayID
Debug.Print "Valbac1 : " & ValBac1
Case "Bac 2"
ValBac2 = Options.DefaultTrayID
Debug.Print "Valbac2 : " & ValBac2
Case "Bac 3"
ValBac3 = Options.DefaultTrayID
Debug.Print "Valbac3 : " & ValBac3
Case "Bac 4"
ValBac4 = Options.DefaultTrayID
Debug.Print "Valbac4 : " & ValBac4
End Select
Next

' choix de bacs A PROGRAMMER :
P1 = ValBac1 ' page 1 de la section 1
S1 = ValBac2 ' autres pages de la section 1
P2 = ValBac3 ' page 1 des sections 2, 4, 6, etc
S2 = ValBac3 ' autres pages des sections 2, 4, 6, etc
P3 = ValBac1 ' page 1 des sections 3, 5, 7, etc
S3 = ValBac2 ' autres pages des sections 3, 5, 7, etc

' Première section (traitée à part)
With ActiveDocument.Sections(1).PageSetup
'première page du document
.FirstPageTray = P1
' le reste de la première section
.OtherPagesTray = S1
End With
'Autres sections
For i = 2 To ActiveDocument.Sections.Count
If i Mod 2 = 1 Then
' sections 3, 5, 7, etc
With ActiveDocument.Sections(i).PageSetup
'première page
.FirstPageTray = P3
' autres pages
.OtherPagesTray = S3
End With
Else
' sections 2, 4, 6, 8, etc
With ActiveDocument.Sections(i).PageSetup
'première page
.FirstPageTray = P2
' autres pages
.OtherPagesTray = S2
End With
End If
Next
End Sub
Avatar
o.0
- alors je crée la macro avec ton code
- j'ouvre un doc (les fameux docs avec saut de section)
- je lance la macro
- et j'imprime ?

Comme tu peux le voir j'ai besoin d'un guide !

Merci pour ton aide en tout cas

"geo" a écrit dans le message de
news:c2f701c47a39$49790910$
ceci devrait faire l'affaire
Vérifier le paramétrage intermédiaire :
P1 = ValBac1 ' page 1 de la section 1
etc

Sub SectionsAvecBacsAlternés()
Dim i As Integer
Dim ValBac1 As Long
Dim ValBac2 As Long
Dim ValBac3 As Long
Dim ValBac4 As Long
Dim P1 As Long
Dim S1 As Long
Dim P2 As Long
Dim S2 As Long
Dim P3 As Long
Dim S3 As Long

Debug.Print ActivePrinter
ValBac1 = 0
ValBac2 = 0
ValBac3 = 0
ValBac4 = 0
For i = 0 To 1000
Options.DefaultTrayID = i
Select Case Options.DefaultTray
Case "Bac 1"
ValBac1 = Options.DefaultTrayID
Debug.Print "Valbac1 : " & ValBac1
Case "Bac 2"
ValBac2 = Options.DefaultTrayID
Debug.Print "Valbac2 : " & ValBac2
Case "Bac 3"
ValBac3 = Options.DefaultTrayID
Debug.Print "Valbac3 : " & ValBac3
Case "Bac 4"
ValBac4 = Options.DefaultTrayID
Debug.Print "Valbac4 : " & ValBac4
End Select
Next

' choix de bacs A PROGRAMMER :
P1 = ValBac1 ' page 1 de la section 1
S1 = ValBac2 ' autres pages de la section 1
P2 = ValBac3 ' page 1 des sections 2, 4, 6, etc
S2 = ValBac3 ' autres pages des sections 2, 4, 6, etc
P3 = ValBac1 ' page 1 des sections 3, 5, 7, etc
S3 = ValBac2 ' autres pages des sections 3, 5, 7, etc

' Première section (traitée à part)
With ActiveDocument.Sections(1).PageSetup
'première page du document
.FirstPageTray = P1
' le reste de la première section
.OtherPagesTray = S1
End With
'Autres sections
For i = 2 To ActiveDocument.Sections.Count
If i Mod 2 = 1 Then
' sections 3, 5, 7, etc
With ActiveDocument.Sections(i).PageSetup
'première page
.FirstPageTray = P3
' autres pages
.OtherPagesTray = S3
End With
Else
' sections 2, 4, 6, 8, etc
With ActiveDocument.Sections(i).PageSetup
'première page
.FirstPageTray = P2
' autres pages
.OtherPagesTray = S2
End With
End If
Next
End Sub
Avatar
Geo
Bonjour o.0


- alors je crée la macro avec ton code


Tu vérifies que le paramétrage est bon

- j'ouvre un doc (les fameux docs avec saut de section)
- je lance la macro
Tu peux vérifier que chaque section est bien sur le bon bac

- et j'imprime ?


Oui, mais ça ne marche qu'avec l'imprimante par défaut.
En installant cette macro sur tous les postes et en la nommant
documentbeforeprint, ça devrait être transparent pour les
utilisateurs, car elle sera lancée automatiquement lors de
l'impression.

C'est testé vite fait car à la maison je n'ai pas de bac 1, 2 etc.
Et il faut respecter les majuscules et minuscules des noms.

--

A+

Avatar
Anacoluthe
Bonjour !

'Gisele' nous a écrit ...
Qu'entendez-vous pas "bac" ?


Le réservoir à papier !

Si vous lisiez la ficelle, Gisèle, vous auriez compris
que le grand spécialiste des bacs est Geo qui possède
des imprimantes comportant un nombre hallucinant de bacs :-)

Et comme il a un bac du papier à en-tête de la société
et un autre du papier parfumé à la rose, s'agit pas pour lui
de se tromper de bac ....... ;-)

Anacoluthe
« Hé j'ai bac plus deux, mais aujourd'hui, dis moi, ça sauve de quoi? »
- Cercle Rouge

Avatar
Geo
Bonjour Anacoluthe


Si vous lisiez la ficelle, Gisèle, vous auriez compris
que le grand spécialiste des bacs est Geo qui possède
des imprimantes comportant un nombre hallucinant de bacs :-)


Ah j'en vois un qui suit,
ca fait du bien de se sentir soutenu dans l'effort :-)

Et comme il a un bac du papier à en-tête de la société
et un autre du papier parfumé à la rose, s'agit pas pour lui
de se tromper de bac ....... ;-)


Tiens il faudra que je fasse une demande d'achat pour le deuxième
papier, encore que de la rose cuite au laser ça doit pas être
terrible.

« Hé j'ai bac plus deux,


C'est o.O qui serait content.

--

A+

Avatar
o.0
Oui sur les machines où cela fonctionne, il met automatiquement en bac 1 et
bac 2 à chaque début de section..
1ere page de la section sur bac1 (entête) et pages suivantes sur bac 2.

Sur les bévanes où cela ne fonctionne pas dès qu'on se positionne sur les
mêmes sections, l'alimentation papier est configuré en automatique...

Il existe un *.dot attaché à chaque doc.


"Geo" a écrit dans le message de
news:%
Bonjour o.0


Oui mais toutes les imprimantes ici ont le même nom pour les bacs.
Bac 1 & Bac 2 ce qui explique sans doute la "programmation" du
modèle

de document qui nous est destiné.


Là on n'utilise pas les noms des bacs mais des constantes.
Par exemple : wdPrinterEnvelopeFeed peut correspondre au bac 1 sur une
imprimante, à bac par défaut sur une autre etc.
Pour s'en convaincre, prendre un document sur un poste pour lequel ça
marche pas.
Se mettre dans la section 1 et regarder dans format mise en page
alimentation papier
Et voir quels sont les bacs sélectionnés.
Aller sur la section 2 et faire la même chose.
Même manip sur la machine où ça marche et regarder les mêmes choses.
Il y a bien une différence, non ?


--

A+




1 2 3 4 5