Quelqu'un pourrait-il me dire comment activer le bouton=20
d'option pages et le contr=F4le de modification qui lui est=20
associ=E9 lorsque l'on utilise un common dialog box en=20
m=E9thode showprinter ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Salut Thierry,
J'ai bien peur que tu ne sois obligé de construire toi même ta boite de dialogue d'impression via l'API windows... En effet, le common dialog est malheureusement très limité et ne contient que des options basiques d'impression.
Tu peux trouver du code source pour cela sur le très bon site (anglais) de http://vbaccelerator.com/
ou tester ce code :
Option Explicit Private Sub Command1_Click() Dim myDatabase As Database Dim rsMyTable As Recordset Dim i As Integer Dim j As Integer Dim startpage As Integer' enable the page range selection option CommonDialog1.Max = 3' set the last page to be printed CommonDialog1.FromPage = 1 CommonDialog1.ToPage = 3' clear flags before showing printer dialog box CommonDialog1.Flags = 0' show the printer dialog box CommonDialog1.ShowPrinter' Enter the page number from which to start printing startpage = CommonDialog1.FromPage' set the font size. This will give 42 lines per page Printer.FontSize = 18' replace with your path to the nwind.mdb Set myDatabase = OpenDatabase("nwind.mdb") Set rsMyTable = myDatabase.OpenRecordset("Customers") rsMyTable.MoveFirst If (CommonDialog1.Flags And cdlPDPageNums) <> 0 Then MsgBox " Printing pages " & CommonDialog1.FromPage & " to " & _ CommonDialog1.ToPage Select Case startpage Case 1 Case 2 ' skip page 1 For i = 1 To 42 rsMyTable.MoveNext Next Case 3 ' skip 2 pages For i = 1 To 84 rsMyTable.MoveNext Next End Select If startpage <> 0 Then For j = startpage To CommonDialog1.ToPage For i = 1 To 42 If rsMyTable.EOF Then Exit For Text1.Text = Text1.Text & rsMyTable!CompanyName & vbCrLf Printer.Print rsMyTable!CompanyName rsMyTable.MoveNext Next Printer.NewPage Next Printer.EndDoc End If ElseIf (CommonDialog1.Flags And cdlPDSelection) <> 0 Then
rsMyTable.MoveLast rsMyTable.MoveFirst For i = 1 To rsMyTable.RecordCount Text1.Text = Text1.Text & rsMyTable!CompanyName & vbCrLf rsMyTable.MoveNext Next MsgBox "Select text to be printed" Else For i = 1 To rsMyTable.RecordCount Text1.Text = Text1.Text & rsMyTable!CompanyName & vbCrLf rsMyTable.MoveNext Next Printer.Print Text1.Text Printer.EndDoc MsgBox "Printing all pages" End If End Sub Private Sub Command2_Click() Printer.Print Text1.SelText Printer.EndDoc End Sub Private Sub Form_Load() Command1.Caption = "Select Printing Option" Command2.Caption = "Print selected text" End Sub
"Thierry" a écrit dans le message de news:021301c37d38$7d359510$ Bonjour tout le monde.
Quelqu'un pourrait-il me dire comment activer le bouton d'option pages et le contrôle de modification qui lui est associé lorsque l'on utilise un common dialog box en méthode showprinter ?
Merci d'avance
Salut Thierry,
J'ai bien peur que tu ne sois obligé de construire toi même ta boite de
dialogue d'impression via l'API windows...
En effet, le common dialog est malheureusement très limité et ne contient
que des options basiques d'impression.
Tu peux trouver du code source pour cela sur le très bon site (anglais) de
http://vbaccelerator.com/
ou tester ce code :
Option Explicit
Private Sub Command1_Click()
Dim myDatabase As Database
Dim rsMyTable As Recordset
Dim i As Integer
Dim j As Integer
Dim startpage As Integer' enable the page range selection option
CommonDialog1.Max = 3' set the last page to be printed
CommonDialog1.FromPage = 1
CommonDialog1.ToPage = 3' clear flags before showing printer dialog box
CommonDialog1.Flags = 0' show the printer dialog box
CommonDialog1.ShowPrinter' Enter the page number from which to start
printing
startpage = CommonDialog1.FromPage' set the font size. This will give 42
lines per page
Printer.FontSize = 18' replace with your path to the nwind.mdb
Set myDatabase = OpenDatabase("nwind.mdb")
Set rsMyTable = myDatabase.OpenRecordset("Customers")
rsMyTable.MoveFirst
If (CommonDialog1.Flags And cdlPDPageNums) <> 0 Then
MsgBox " Printing pages " & CommonDialog1.FromPage & " to " & _
CommonDialog1.ToPage
Select Case startpage
Case 1
Case 2
' skip page 1
For i = 1 To 42
rsMyTable.MoveNext
Next Case 3
' skip 2 pages
For i = 1 To 84
rsMyTable.MoveNext
Next
End Select
If startpage <> 0 Then
For j = startpage To CommonDialog1.ToPage
For i = 1 To 42
If rsMyTable.EOF Then Exit For
Text1.Text = Text1.Text & rsMyTable!CompanyName & vbCrLf
Printer.Print rsMyTable!CompanyName
rsMyTable.MoveNext
Next
Printer.NewPage
Next
Printer.EndDoc
End If
ElseIf (CommonDialog1.Flags And cdlPDSelection) <> 0 Then
rsMyTable.MoveLast
rsMyTable.MoveFirst
For i = 1 To rsMyTable.RecordCount
Text1.Text = Text1.Text & rsMyTable!CompanyName & vbCrLf
rsMyTable.MoveNext
Next
MsgBox "Select text to be printed"
Else
For i = 1 To rsMyTable.RecordCount
Text1.Text = Text1.Text & rsMyTable!CompanyName & vbCrLf
rsMyTable.MoveNext
Next
Printer.Print Text1.Text
Printer.EndDoc
MsgBox "Printing all pages"
End If
End Sub
Private Sub Command2_Click()
Printer.Print Text1.SelText
Printer.EndDoc
End Sub
Private Sub Form_Load()
Command1.Caption = "Select Printing Option"
Command2.Caption = "Print selected text"
End Sub
"Thierry" <thierry.paglia@belgacom.net> a écrit dans le message de
news:021301c37d38$7d359510$a301280a@phx.gbl...
Bonjour tout le monde.
Quelqu'un pourrait-il me dire comment activer le bouton
d'option pages et le contrôle de modification qui lui est
associé lorsque l'on utilise un common dialog box en
méthode showprinter ?
J'ai bien peur que tu ne sois obligé de construire toi même ta boite de dialogue d'impression via l'API windows... En effet, le common dialog est malheureusement très limité et ne contient que des options basiques d'impression.
Tu peux trouver du code source pour cela sur le très bon site (anglais) de http://vbaccelerator.com/
ou tester ce code :
Option Explicit Private Sub Command1_Click() Dim myDatabase As Database Dim rsMyTable As Recordset Dim i As Integer Dim j As Integer Dim startpage As Integer' enable the page range selection option CommonDialog1.Max = 3' set the last page to be printed CommonDialog1.FromPage = 1 CommonDialog1.ToPage = 3' clear flags before showing printer dialog box CommonDialog1.Flags = 0' show the printer dialog box CommonDialog1.ShowPrinter' Enter the page number from which to start printing startpage = CommonDialog1.FromPage' set the font size. This will give 42 lines per page Printer.FontSize = 18' replace with your path to the nwind.mdb Set myDatabase = OpenDatabase("nwind.mdb") Set rsMyTable = myDatabase.OpenRecordset("Customers") rsMyTable.MoveFirst If (CommonDialog1.Flags And cdlPDPageNums) <> 0 Then MsgBox " Printing pages " & CommonDialog1.FromPage & " to " & _ CommonDialog1.ToPage Select Case startpage Case 1 Case 2 ' skip page 1 For i = 1 To 42 rsMyTable.MoveNext Next Case 3 ' skip 2 pages For i = 1 To 84 rsMyTable.MoveNext Next End Select If startpage <> 0 Then For j = startpage To CommonDialog1.ToPage For i = 1 To 42 If rsMyTable.EOF Then Exit For Text1.Text = Text1.Text & rsMyTable!CompanyName & vbCrLf Printer.Print rsMyTable!CompanyName rsMyTable.MoveNext Next Printer.NewPage Next Printer.EndDoc End If ElseIf (CommonDialog1.Flags And cdlPDSelection) <> 0 Then
rsMyTable.MoveLast rsMyTable.MoveFirst For i = 1 To rsMyTable.RecordCount Text1.Text = Text1.Text & rsMyTable!CompanyName & vbCrLf rsMyTable.MoveNext Next MsgBox "Select text to be printed" Else For i = 1 To rsMyTable.RecordCount Text1.Text = Text1.Text & rsMyTable!CompanyName & vbCrLf rsMyTable.MoveNext Next Printer.Print Text1.Text Printer.EndDoc MsgBox "Printing all pages" End If End Sub Private Sub Command2_Click() Printer.Print Text1.SelText Printer.EndDoc End Sub Private Sub Form_Load() Command1.Caption = "Select Printing Option" Command2.Caption = "Print selected text" End Sub
"Thierry" a écrit dans le message de news:021301c37d38$7d359510$ Bonjour tout le monde.
Quelqu'un pourrait-il me dire comment activer le bouton d'option pages et le contrôle de modification qui lui est associé lorsque l'on utilise un common dialog box en méthode showprinter ?