Bonjour
Combien de fois je me suis retrouvé avec 2 fois plus de pages sorties que ce que j'attends....
Bref, comment contrôler les marges d'un état avant l'impression
D'avance Merci
Bonjour
Combien de fois je me suis retrouvé avec 2 fois plus de pages sorties que ce que j'attends....
Bref, comment contrôler les marges d'un état avant l'impression
D'avance Merci
Salut
Quand tu es en mode Création Etat
Fichier\Mise En page
Je ne sais pas par contre si c'est possible dynamiquement
Starec
J'aurais dû préciser :Envoyé par CBleu
comment contrôler dynamiquement les marges d'un état avant l'impression
j'ai trouvé ce code dans l'aide d'access sur la propriété PrtMip ...
le pb c'est que ca ne marche que en mode creation, mais cela permet de tester que les marges sont OK, et donc de valider ou d'annuler l'impression sur ouverture de l'état...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 Exemple de propriété PrtMip L'exemple de propriété PrtMip suivant indique comment configurer l'état pour qu'il possède 2 colonnes horizontales. Type ch_PRTMIP chRGB As String * 28 End Type Type type_PRTMIP xMargeGauche As Long yMargeHaut As Long xMargeDroite As Long yMargeBas As Long fDonnéesSeulement As Long xLargeur As Long yHauteur As Long fTailleDesEléments As Long xNombreDeColonnes As Long yEspacementDeColonnes As Long xEspacementDeLignes As Long rDisposition As Long fImpressionRapide As Long fFeuilleDeDonnées As Long End Type Sub PrtMipColonnes(chNom As String) Dim ChaînePrtMip As ch_PRTMIP Dim PM As type_PRTMIP Dim rpt As Report Const PM_HORIZONTALCOLS = 1953 Const PM_VERTICALCOLS = 1954 DoCmd.OpenReport chNom, acDesign Set rpt = Reports(chNom) ChaînePrtMip.chRGB = rpt.PrtMip LSet PM = ChaînePrtMip ' Crée deux colonnes. PM.entColonnes = 2 ' Définit 0,25 pouces d'espacement entre les lignes. PM.entEspacementDeLignes = 0.25 * 1440 ' Définit 0,5 pouces d'espacement entre les colonnes. PM.entEspacementDeColonnes = 0.5 * 1440 PM.entDisposition = PM_HORIZONTALCOLS LSet ChaînePrtMip = PM ' Met à jour la propriété. rpt.PrtMip = ChaînePrtMip.RGB End Sub L'exemple suivant de la propriété PrtMip indique comment définir toutes les marges pour qu'elles aient 1 pouce de large. Sub DéfinirMargesParDéfaut(chNom As String) Dim ChaînePrtMip As ch_PRTMIP Dim PM As type_PRTMIP Dim rpt As Report DoCmd.OpenReport chNom, acDesign Set rpt = Reports(chNom) ChaînePrtMip.chRGB = rpt.PrtMip LSet PM = ChaînePrtMip PM.entMargeGauche = 1 * 1440 ' Définit les marges. PM.entMargeHaut = 1 * 1440 PM.entMargeDroite = 1 * 1440 PM.entMargeBas = 1 * 1440 LSet ChaînePrtMip = PM ' Met à jour la propriété. rpt.PrtMip = ChaînePrtMip.chRGB End Sub
Bonjour à tous,
J'ai rencontré le même problème : malgré la mise en page de mes états, les marges se 'déparamétraient' tout le temps (très très énervant !).
Le problème vient d'un bug d'access 2000 (pour ceux qui sont sous Access 2000). Il existe un correctif ( SR 1 ) à télécharger sur le site de microsoft.
Depuis, mes états gardent la mise en page que je leur ai donné.
Bonjour,
Même principe que ce qui est proposé par Cbleu, mais où il est possible de mettre en paramètre les tailles des marges.
Bon courage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 ' *** Début du module Impression *** Option Compare Database Option Explicit Type ch_DEVMODE RGB As String * 94 End Type Type type_DEVMODE chNomPériphérique As String * 16 entSpécVersion As Integer entVersionGestionnaire As Integer entTaille As Integer entExtraGestionnaire As Integer lngChamps As Long entOrientation As Integer entTaillePapier As Integer entLongueurPapier As Integer entLargeurPapier As Integer entEchelle As Integer entCopies As Integer entSourceDéfaut As Integer entQualitéImpression As Integer entCouleur As Integer entRectoverso As Integer entResolution As Integer entOptionTT As Integer entAssembler As Integer entNomFormulaire As String * 16 lngPad As Long lngBits As Long lngPW As Long lngPH As Long lngDFI As Long lngDFr As Long End Type Type ch_PRTMIP chRGB As String * 28 End Type Type type_PRTMIP entMargeGauche As Long entMargeHaut As Long entMargeDroite As Long entMargeBas As Long entDonnéesSeulement As Long entLargeur As Long entHauteur As Long entTailleDesEléments As Long entColonnes As Long entEspacementDeColonnes As Long entEspacementDeLignes As Long entDisposition As Long entImpressionRapide As Long entFeuilleDeDonnées As Long End Type Public Sub ModifierMarges(txtNom As String, lngHaut As Long, lngBas As Long, lngGauche As Long, lngDroite As Long) ' Modifier les marges d'un rapport avant de l'imprimer ' paramètres : 1- le nom du rapport en texte ' 2- la marge du haut en cm ' 3- la marge du bas en cm ' 4- la marge du gauche en cm ' 5- la marge du droite en cm ' exemple : ModifierMarges "Contacts", 1, 1, 1.5, 1.5 ' DoCmd.OpenReport "Contacts", acViewPreview Dim ChaînePrtMip As ch_PRTMIP Dim PM As type_PRTMIP Dim rpt As Report DoCmd.OpenReport txtNom, acDesign ' Ouvre l'état en mode Création. Set rpt = Reports(txtNom) ChaînePrtMip.chRGB = rpt.PrtMip LSet PM = ChaînePrtMip PM.entMargeHaut = lngHaut * 567 ' Définit les marges. PM.entMargeBas = lngBas * 567 PM.entMargeGauche = lngGauche * 567 PM.entMargeDroite = lngDroite * 567 LSet ChaînePrtMip = PM ' Met à jour la propriété. rpt.PrtMip = ChaînePrtMip.chRGB DoCmd.Save End Sub
Bonjour à tous,
Je prends le train en route ...
Je suis confronté au même pb et je voudrais tout simplement qu'à l'ouverture d'un Etat en mode aperçu avant impression, les marges de celui-ci se positionnent sur 1 cm chacunes.
J'ai essayé d'utiliser le code de ActionAccess pour en faire une fonction appelée à l'ouverture de mes Etats en mode aperçu avant impression, mais sans résultat.
De plus, si j'ai bien compris, ce code ouvrirait l'état en mode création pour indiquer les paramètres des marges.
Naïvement, j'ai cherché un truc du genre :mais chou blanc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Screen.ActiveReport.MargeDeGauche = 10
Pourtant, ces valeurs de marges sont forcément stockées quelque part
Merci d'un petit coup de pouce supplémentaire.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager