Imprimer sous forme de tableau (msflexgrid entre autre)

Description

Voici un code pour vous simplifier la vie quand vous imprimer. La commande pour imprimer est printer.print, mais elle contient quelques variantes. Donc si vous avez des questions à me poser, n'hésitez surtout pas, je tenterai d'y répondre au meilleurs de mes compétances.

Source / Exemple :


'À mettre dans un module
Type Enregistrement
Solde As Currency
Retrait As Currency
Dépot As Currency
Dates As Date
Times As String * 8
Nip As String * 10
Nom As String * 30
End Type

Public Varenreg As Enregistrement
Public NombreEnreg As Integer
'Ce code n'a rien à voir pour l'impression directement. La seule utilité de ce module
'est de créer et déclarer ma variable "varenreg" pour ne pas créer d'erreur lors de
'l'impression. NombreEnreg sert à définir le nombre d'enregistrement dans le fichier

Private Sub Form_Load()
'Détermine l'endoit où est le fichier à ouvrir (qui contient les données à imprimer)
strFichier = App.Path & "\Exemple.dat"
'Ouvre le fichier
Open strFichier For Random As #1 Len = Len(Varenreg)
End Sub

'À mettre dans un bouton ou autre
Private Sub cmdImprimer_Click()
'Détermine la grosseur du titre
Printer.FontSize = 20
'Imprime le titre
Printer.Print "Historique des transactions"
'Je mets deux print pour que l'imprimante passe 2 lignes
Printer.Print
Printer.Print
Printer.FontSize = 12
'Je mets l'écriture en gras
Printer.FontBold = True
'En metant des vigules, je dis à l'imprimante de changers de "colonne" et de passer à l'autre
'Quand je ne mets pas de virgules, l'imprimante passe à une autre ligne
Printer.Print "Date", "Heure", "Dépots", "Retraits", "Solde"
Printer.FontBold = False

'Je détermine le nombre d'enregistrement que j'ai dans mon fichier
NombreEnreg = LOF(1) / Len(Varenreg)

For i = 1 To NombreEnreg

Get #1, i, Varenreg
'J'imprime la date et l'heure de la première transaction
'"Varenreg" est le de ma variable que j'ai crée
Printer.Print Varenreg.Dates, Varenreg.Times,
 
'Si un dépôt à été effecuté, l'imprimante l'imprime sinon
'elle laisse l'espace vide et continue

If Varenreg.Dépot <> 0 Then
Printer.Print Format(Varenreg.Dépot, "##,##0.00$"),
Else
Printer.Print "",
End If

'Si un retrait à été effecuté, l'imprimante l'imprime sinon
'elle laisse l'espace vide et continue
If Varenreg.Retrait <> 0 Then
Printer.Print Format(Varenreg.Retrait, "##,##0.00$"),
Else
Printer.Print "",
End If

'L'imprimante imprime le solde
Printer.Print Format(Varenreg.Solde, "##,##0.00$")

If i = NombreEnreg Then GoTo fin
'L'imprimante passe à l'autre rangé
Next i
fin:
Printer.EndDoc
End Sub

Conclusion :


Si vous avez plusieurs imprimantes et que vous ne voulez pas que le programme imprime sur votre imprimante par défaut, il faudra donc que vous mettiez le OCX "Microsoft Common Dialog Control 6.0" et que vous insériez au tout début du code "dans le bouton de commance" (lenomducommondialog.ShowPrinter). Vous pourrez alors choisir l'imprimante de votre choix.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.