Imprimer MSFlexGrid au format PDF

jctgt Messages postés 60 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 28 juillet 2023 - Modifié le 23 mai 2021 à 14:37
vb95 Messages postés 3416 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 31 mai 2023 - 23 mai 2021 à 14:58
Bonjour,

J'ai une grille que je voudrais imprimer, avec le code suivant:
Private Sub PrintFlexGrid(ByVal ptr As Object, ByVal flx As tfgBillard, ByVal xmin As Single, ByVal ymin As Single)
Const GAP = 60

Dim xmax As Single
Dim ymax As Single
Dim X As Single
Dim c As Integer
Dim r As Integer

    With ptr.Font
        .Name = flxData.Font.Name
        .Size = flxData.Font.Size
    End With
    With flxData
        ' Voyez à quel point le tout est large.
        xmax = xmin + GAP
        For c = 0 To .Cols - 1
            xmax = xmax + .ColWidth(c) + 2 * GAP
        Next c

        ' Imprime chaque rang
        ptr.CurrentY = ymin
        For r = 0 To .Rows - 1
            'Trace une ligne au-dessus de cette ligne.            
If r > 0 Then ptr.Line (xmin, _
                ptr.CurrentY)-(xmax, ptr.CurrentY)
            ptr.CurrentY = ptr.CurrentY + GAP

            ' Imprime les entrées sur cette ligne.
            X = xmin + GAP
            For c = 0 To .Cols - 1
                ptr.CurrentX = X
                ptr.Print BoundedText(ptr, .TextMatrix(r, c), .ColWidth(c));
                X = X + .ColWidth(c) + 2 * GAP
            Next c
            ptr.CurrentY = ptr.CurrentY + GAP

            ' Vaàlaligne suivante.
            ptr.Print
        Next r
        ymax = ptr.CurrentY

        ' Dessine une boîte autour de tout.
        ptr.Line (xmin, ymin)-(xmax, ymax), , B

        ' Dessine une ligne entre les colonnes.
        X = xmin
        For c = 0 To .Cols - 2
            X = X + .ColWidth(c) + 2 * GAP
            ptr.Line (X, ymin)-(X, ymax)
        Next c
    End With
End Sub


J'ai un bouton commande "cmdImprimer" que j'utilise comme cece:
Private Sub PrintFlexGrid_Click()
    Call PrintFlexGrid
End Sub


J'arrive ici: "Private Sub PrintFlexGrid(ByVal ptr As Object, ByVal flx As tfgBillard, ByVal xmin As Single, ByVal ymin As Single"

J'ai l'erreur: "User-defined type not defined"

Il doit certainement y avoir un moyen d'accéder au code ci-dessus pour imprimer cette grille. Ou autre!

Votre aide serait beaucoup appraéciée.


Merci!

1 réponse

vb95 Messages postés 3416 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 31 mai 2023 165
23 mai 2021 à 14:58
Bonjour
La Sub PrintFlexGrid a 4 paramètres en entrée
- ptr, flx, xmin et ymin

Lorsque tu l'appelles cette Sub tu n'en fournis aucun
Private Sub PrintFlexGrid_Click()
    Call PrintFlexGrid
End Sub


En passant inutile de mettre Call
0
Rejoignez-nous