CLASS POUR IMPRIMER UNE DATAGRIDVIEW

ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 - 16 juil. 2007 à 08:24
abenji95 Messages postés 5 Date d'inscription mardi 19 avril 2011 Statut Membre Dernière intervention 12 juin 2011 - 12 juin 2011 à 09:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43448-class-pour-imprimer-une-datagridview

abenji95 Messages postés 5 Date d'inscription mardi 19 avril 2011 Statut Membre Dernière intervention 12 juin 2011
12 juin 2011 à 09:29
BLQ peux tu m'expliquer ta solution avec plus de détail svp !
abenji95 Messages postés 5 Date d'inscription mardi 19 avril 2011 Statut Membre Dernière intervention 12 juin 2011
11 juin 2011 à 12:23
quelqu'un a t il réussit à faire marcher les imprimantes ( car il prend toujours l'imprimante par défaut !!!)
cs_moutanabi Messages postés 4 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 21 mai 2011
21 mai 2011 à 02:49
une autre question svp quand je click sur preview la fenetre de l'apercu ne s'affiche pas mais plutot la meme fenetre ke celle ki sort quand je click sut print merci pour l'aide
cs_moutanabi Messages postés 4 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 21 mai 2011
21 mai 2011 à 02:40
slt je vous remercier pr votre générosité c 5/5 vs m'avez trop aidé j'ai un pti blem quand j'imprime un datagridview de 3colonnes les headerstext sont intitulé column1,column2,column3 comment ferai-je pour k'ils affichent expression,valeur,unitée
je vous remerci une otre fois
blq Messages postés 97 Date d'inscription vendredi 22 octobre 1999 Statut Membre Dernière intervention 13 juin 2016 1
16 mai 2011 à 16:11
en réponse à la seconde question de Robinwood01

Si l'imprimante choisie n'est pas la bonne au final, c'est que l'objet MyPrintDocument défini dans la la Form1 du code en exemple n'est pas correctement initialisé dans ton utilisation. Pour s'en rendre compte, il suffit de faire un Point d'Arrêt avant l'impression via l'appel MyPrintDocument.Print() et de vérifier la valeur MyPrinterDocument.PrinterSettings.PrinterName, si elle ne correspond pas à la sélection, c'est qu'il y a un souci en amont. Il ne reste donc qu'a remonté jusqu'à la perte ou la non initialisation du nom de l'imprimante, a priori après If MyPrintDialog.ShowDialog() <> DialogResult.OK Then dans le code de la fonction SetupThePrinting()

J'ai fait la même erreur en intégrant le code et en voulant le modifier pour lui ajouter du fonctionnel comme la non prise en compte des colonnes invisibles (à faire dans SetupThePrinting() dans la boucle de création de la liste des colonnes à cocher : If c.Visible = True Then AvailableColumns.Add(c.HeaderText) )

Bref, normalement c'est initialisé dans la fonction SetupThePrinting()

Personnellement, j'ai réutilisé le code en créant l'objet PrintDocument directement dans la fenêtre PrintOptions et en ajoutant la fenêtre comme un élément de la Classe. Je considère que la fenêtre fait partie du code utile (!...), ainsi j'initialise directement l'objet avec la fenêtre de dialogue système :

PrintOptions.MyPrintDocument.PrinterSettings = MyPrintDialog.PrinterSettings

Donc pas de souci de ne pas pointer sur la mauvaise imprimante.

A noter que j'ai testé avec Visual Basic 2010 Express
sylvainhotte Messages postés 1 Date d'inscription mardi 3 mai 2011 Statut Membre Dernière intervention 10 mai 2011
10 mai 2011 à 17:09
Bonjour,

Merci pour le code. Vraiment super 10/10

Bonne journée
Sylvain
Robinwood01 Messages postés 153 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 3 juillet 2014
17 févr. 2011 à 12:58
Bonjour

Très bien ce code merci.
Je recontre cependant différent problème, quelqu'un aurrait il mis à jour la classe afin de corriger les problèmes :

1) Choix de l'orientation, même sélectionnant paysage dans les propriétés de l'imprimante.
2) Si je choisi une autre imprimante que celle par defaut cela imprime tout de même sur l'imprimante par defaut.
3) Les colonnes que l'on choisi dans la liste sont bien nommé par contre quand il imprime il prend le nom de l'objet colonne qui est moins jolie.


Merci d'avance

Edouard
blq Messages postés 97 Date d'inscription vendredi 22 octobre 1999 Statut Membre Dernière intervention 13 juin 2016 1
20 nov. 2010 à 20:34
Impeccable, cela fonctionne très bien avec la dernière version de Visual Basic
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
3 oct. 2009 à 10:05
Cela remonte a loin et ne vas peut etre pas t'aider, mais si je me souvien bien il y a une ligne en trop :-)
tchouny Messages postés 19 Date d'inscription samedi 25 février 2006 Statut Membre Dernière intervention 3 octobre 2013
2 oct. 2009 à 19:07
Salut à tous.
Perso j'utilise la première classe "Old version" qui me convient très bien. Merci pour cela. Le seul prob avec celle là c'est la numérotation des pages. Avez-vous une solution pour éviter que la numérotation continue à l'impression (ex: 1à 3 en preview et 4 à 6 en impression)
Merci
Kalimshar1 Messages postés 2 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 15 septembre 2009
15 sept. 2009 à 17:04
Merci pour ce super exemple.

Est ce que qq1 a réussi à résoudre les problèmes suivants? (je suis en vb.net)

- choix de l'imprimante par défaut malgré le choix de la boite de dialogue
- possibilité d'imprimer un checkbox - bouton

merci d'avance pour le travail
prepseb Messages postés 1 Date d'inscription lundi 14 novembre 2005 Statut Membre Dernière intervention 14 juillet 2009
14 juil. 2009 à 16:03
Wow bravo! Ça fonctionne superbement bien! 10/10
cs_othinakiway Messages postés 30 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 10 juin 2009 2
9 juin 2009 à 20:58
oups ,j'ai utilisé the old version, mais avec la nouvelle ça a marché parfaitement, merci
manulegosny Messages postés 18 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 4 janvier 2009
8 juin 2009 à 21:42
Je n'ai pas ce problème .... j'imprime en pdf avec pdf creator ... et avec une imprimante réelle quand il le faut !
Quelle version de ce code utilises-tu ?
cs_othinakiway Messages postés 30 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 10 juin 2009 2
8 juin 2009 à 18:57
très bon code , ms il ya un petit prob, c que l'impression ne se fait qu'avec l'imprimante par défaut, mm si qu'on choisi une imprimante dans la printdialog....!
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
3 mars 2009 à 18:54
je pense que le probleme de la double impression suite a un "aperçu" viens de collection non nettoyé :
Fichier "DataGridViewPrinter.vb" :
Ajouter les deux clear comme suit :

' The function that calculate the height of each row (including the header row), the width of each column (according to the longest text in all its cells including the header cell), and the whole DataGridView width
Private Sub Calculate(ByVal g As Graphics)
If PageNumber = 0 Then
' Just calculate once
Dim tmpSize As New SizeF()
Dim tmpFont As Font
Dim tmpWidth As Single
mColumnPoints.Clear()
mColumnPointsWidth.Clear()
Soncar59880 Messages postés 1 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 1 décembre 2008
1 déc. 2008 à 16:21
vraiment très très bon ce code par contre dommage que la forme des cellules ne soit pas conservé

exemple une colonne avec des sommes monétaires devant s'afficher à droite de la colonne s'affiche actuellement sans forme et à gauche

du coup la note 10 x 10 n'est pas possible mais un bon 9 / 10 oui ^^
frnecct Messages postés 10 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 24 novembre 2008
24 nov. 2008 à 11:15
bonjours,

super code mais plusieurs buggs sont apparu avec la version du 28/10/2008
principalement du au fait de la création d'une datagridview intermédiaire pour faire la selection des lignes et colonnes.
liste:
format des dates pas respecté
impréssion de la clé et pas de la valeur affiché pour les champs combobox
N° de page pas correcte
affiche les colonnes cachées dans la fenetre de paramêtre.
imprime le nom des colonnes "Name" et pas le libélé (HeaderText)
Ne respecte pas les marges physique d'impression (pas corrigé)
etc...
Je les ais presque tous corrigés mais je ne sais pas comment mettre à disposition le nouveau code
rida_riad Messages postés 10 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 3 avril 2009
13 nov. 2008 à 11:44
Bonjour tous,pour le problème des colonnes qui se décalent il fallait donner la largeur de la colonne au lieu de mesurer le texte
le plus long d'une cellule,
Maintenant le nouveau problème c'est quand une cellule contient deux lignes l'impression donne seulement une ligne
alors si vous avez une idée et Merci
rida_riad Messages postés 10 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 3 avril 2009
8 nov. 2008 à 12:46
Très bonne source elle m'était très utile merci
Pourtant j'ai un problème lorsqu'une colonne contient un long texte les autres colonnes se décalent
et au lieu de les imprimer a coté elles sautent dans la 2 ème page ya t il un moyen pour fixer les colonnes
tel qu'elles sont dans le formulaire?
djguana Messages postés 5 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 7 novembre 2008
7 nov. 2008 à 12:01
J'ai corrigé le problème du numero de page :
Pour cela il faut :
-Ajouter une variable
Private bPrintStart As Boolean

-Modifier la fonction MyPrintDocument_PrintPage

Private Sub MyPrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles MyPrintDocument.PrintPage
If bPrintStart = True Then
MyDataGridViewPrinter.ResetPageNumberCount()
bPrintStart = False
End If
Dim more As Boolean = MyDataGridViewPrinter.DrawDataGridView(e.Graphics)
If more = True Then
e.HasMorePages = True
Else
bPrintStart = True
End If
End Sub

-Dans la classe DataGridViewPrinter: ajout de la fonction suivante :
Public Sub ResetPageNumberCount()
PageNumberCount = 0
End Sub

-Dans la classe DataGridViewPrinter: Modification de Private Sub DrawHeader
Il faut ajouter la ligne suivant juste apres PageNumber += 1

PageNumberCount += 1

Voila.

Il ne manque plus le fait que cela imprime la datagrid que sur une seul page (un peu comme Excel) et ca serait cool.
cs_ha_montreal Messages postés 1 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 4 novembre 2008
4 nov. 2008 à 10:38
j 'arrive a imprimer, mais jamais comme affiché sur le datagrid..2 principaux problemes:
-j ai une colonne multiligne qui ne s'imprime qu'en une seule ligne, contrairement au datagrid et a la bdd.
-j'ai 2 colonnes date qui a l'impression s'impriment en ajoutant des 00:00:00 (genre 27-03-2008 00:00:00)
si quelqu'un a une idée ca serait tres apprecié.
un grand merci pour votre travail formidable
cs_mabrouklepoux Messages postés 84 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 25 juillet 2008 1
29 oct. 2008 à 19:56
Merci de ta réponse, cependant, mes deux datagrid ont des colonnes différentes.
j'y suis plus ou moins parvenu sans trop d'efforts, mais quand il va s'agir de multi pages, là ca va devenir compliqué, donc j'ai un peu laissé tomber.
riadhh05 Messages postés 17 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 16 juin 2008
29 oct. 2008 à 17:27
Salut mabrouklepoux,
J'ai pas compris votre question?
La nouvelle version permet d'imprimer plusieurs datagridview, voir la fonction qui existe dans l'exemple (SetupThePrinter(mondatagridview)).
Par contre d'après ce que j'ai compris tu veux imprimer deux tableaux dans la même page, pkoi ne pas les assembler dans une nouvelle datagridview avant de les imprimer, ca sera plus simple et plus efficace, nn?
bonne programmation,
Riadh
cs_mabrouklepoux Messages postés 84 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 25 juillet 2008 1
29 oct. 2008 à 14:43
J'ai une toute pitite question ...
Comment faire pour imprimer non pas un, mais deux datagrids sur la même page ?
j'ai un peu regardé, j'ai pas trouvé de moyen simple.
Si vous aviez une piste sans réécrire toute la classe ca m'intéresse !
cs_mabrouklepoux Messages postés 84 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 25 juillet 2008 1
28 oct. 2008 à 11:58
bonjour,
très bonne source, très utile dans mon cas.
j'ai juste du bidouiller car je voulais que les couleurs affichées de la grille s'impriment.
j'ai donc ajouter une jambe de bois:
dans la fonction drawrows:
j'ai ajouté juste après les définitions de variables:

Dim PrintRowColors As Boolean
If MsgBox("Imprimer les couleurs affichées de la grille ?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
PrintRowColors = True
Else
PrintRowColors = False
End If

j'ai remplacé
' Filling the back of the CurrentRow
If CurrentRow Mod 2 = 0 Then
g.FillRectangle(RowBackBrush, RowBounds)
Else
g.FillRectangle(RowAlternatingBackBrush, RowBounds)
End If

par

' Filling the back of the CurrentRow
If PrintRowColors = False Then
If CurrentRow Mod 2 = 0 Then
g.FillRectangle(RowBackBrush, RowBounds)
Else
g.FillRectangle(RowAlternatingBackBrush, RowBounds)
End If
End If

et enfin j'ai remplacé:

ColumnWidth = ColumnsWidth(CurrentCell)
Dim CellBounds As New RectangleF(CurrentX, CurrentY, ColumnWidth, RowsHeight(CurrentRow))
' Printing the cell text

par

ColumnWidth = ColumnsWidth(CurrentCell)
Dim CellBounds As New RectangleF(CurrentX, CurrentY, ColumnWidth, RowsHeight(CurrentRow))
If PrintRowColors = True Then
' printing the cell backcolor
g.FillRectangle(New SolidBrush(TheDataGridView.Rows(CurrentRow).Cells(CurrentCell).Style.BackColor), CellBounds)
End If
' Printing the cell text

ainsi, le prg va vous demander si vous voulez imprimer les couleurs de lignes alternées, ou les couleurs par cellules que vous auriez définies par programmation.
riadhh05 Messages postés 17 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 16 juin 2008
28 oct. 2008 à 07:20
Salut DJGUANA,
Désolé j'ai pas eu le temps pour corriger ce pb. Je vais poster bientôt une version améliorée. Par contre j'attends tjrs vos améliorations.
Amicalement,
Riadh
djguana Messages postés 5 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 7 novembre 2008
23 oct. 2008 à 12:00
Est ce que le probleme de numero de page a t-il ete corrigé ?
la version dans le zip ne contient pas ce correctif.

Merci pour la source, c'est magnifique !
riadhh05 Messages postés 17 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 16 juin 2008
11 sept. 2008 à 07:20
Merci pour vos encouragements et commentaires sympatiques,
Je vous invite, dans le cas où vous avez des corrections à contribuer à l'améliorations de cette source.
Dans ce cas, veuillez m'envoyer un courriel avec la modification effectuée, et je la testerais et mettrais à jour la classe (tout en mentionnant, la correction et l'auteur).
Bonne programmation à tous,
Riadh
moogliber Messages postés 40 Date d'inscription lundi 26 septembre 2005 Statut Membre Dernière intervention 5 janvier 2012
10 sept. 2008 à 18:46
Bravo pour cette source, vraiment très utile ! elle mérite 10/10
Une amélioration très pratique serait de pouvoir imprimer les colonnes dans l'ordre ou elles apparaissent dans le DatagridWiew. En effet l'utilisateur peut très bien modifier l'ordre des colonnes (par drag drop) mais ce changement d'ordre n'est pas répercuté dans l'impression.

J'ai essayé de faire la modif, cela ne marche qu'à moitié, car l'affichage ne se fait pas correctement.
Quelqu'un pourrait-il m'aider à compléter/ou corriger le code ?

Ma modif consiste à remplacer tout les
TheDataGridView.Columns(i)
par
TheDataGridView.Columns(ColonneDansOrdre(i))

dans laquelle Colonne ColonneDansOrdre(i) est une fonction qui permet de savoir l'ordre dans laquelle apparaissent les colonnes :


Public Function ColonneDansOrdre(ByVal numColonne As Integer) As Integer

ColonneDansOrdre= 0
For i As Integer = 1 To MaDataGridView.ColumnCount - 1
If MaDataGridView.Columns(i).DisplayIndex = numColonne Then
ColonneDansOrdre= i
Exit Function
End If
Next
End Function
Toumar Messages postés 7 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 29 octobre 2008
28 juil. 2008 à 13:11
Et un petit 10 qui va bien :p
Toumar Messages postés 7 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 29 octobre 2008
28 juil. 2008 à 13:10
Merci infiniment pour la source !
Yurf98 Messages postés 10 Date d'inscription samedi 9 décembre 2000 Statut Membre Dernière intervention 10 juillet 2008
17 juin 2008 à 16:41
Magnifique classe, qui fais economiser pas mal d heure...

Ssns parler du fait que tu l es diffuser au Grand Public!

10/10
manulegosny Messages postés 18 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 4 janvier 2009
9 avril 2008 à 15:18
Hello
Dans mon cas ça ne fonctionne pas car les value dans mes cellules sont de type bitmap et non byte ... mais ça ne devrai pas être très différent ... en revanche un truc que j'ai remarqué c'est que l'impression des colonnes se fait dans l'ordre de création et non l'ordre réel d'affichage ...
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
9 avril 2008 à 11:10
Bonjour,

Super classe, mais j'ai apporter quelques modifications pour gérer les images (colonnes de type Byte() ) :

Dans la procédure :
DrawRows :
' Printing the cell text
g.DrawString(TheDataGridView.Rows(CurrentRow).Cells(CurrentCell).EditedFormattedValue.ToString(), RowFont, RowForeBrush, CellBounds, CellFormat)

remplacée par :
' Printing the cell text
'Modification NH : gestion des images
If TypeOf TheDataGridView.Rows(CurrentRow).Cells(CurrentCell).Value Is Byte() Then
Dim lLocation As Point = New Point(CInt(CellBounds.Location.X), CInt(CellBounds.Location.Y))
g.DrawImageUnscaled(Bitmap.FromStream(ByteArrayToStream(DirectCast(TheDataGridView.Rows(CurrentRow).Cells(CurrentCell).Value, Byte()))), lLocation)
Else
g.DrawString(TheDataGridView.Rows(CurrentRow).Cells(CurrentCell).EditedFormattedValue.ToString(), RowFont, RowForeBrush, CellBounds, CellFormat)
End If

Note : code de la fonction ByteArrayToStream :
''' <summary>
''' Transforme un tableau d'octet en flux
''' </summary>
''' Tableau à convertir

''' <returns></returns>
''' <remarks></remarks>
Public Function ByteArrayToStream(ByRef pBytes As Byte()) As IO.Stream
Dim lMem As New IO.MemoryStream
lMem.Write(pBytes, 0, pBytes.Length)
Return lMem
End Function

Et dans Calculate :
tmpSize = g.MeasureString(TheDataGridView.Rows(j).Cells(i).EditedFormattedValue.ToString(), tmpFont)

remplacé par :

'Modification NH : gestion des images
If TypeOf TheDataGridView.Rows(j).Cells(i).Value Is Byte() Then
tmpSize = Bitmap.FromStream(ByteArrayToStream(DirectCast(TheDataGridView.Rows(j).Cells(i).Value, Byte()))).Size
Else
tmpSize = g.MeasureString(TheDataGridView.Rows(j).Cells(i).EditedFormattedValue.ToString(), tmpFont)
End If

Sinon, j'ai une question, que faut-il modifier pour forcer l'impression sur une seule page en largeur (comme dans Excel) ?

Je note rarement les sources, mais là je fais une exception (9/10, car ne gérait pas les images et pas trouvé la possibilité de mettre sur une seule page).
chafaqitaha Messages postés 2 Date d'inscription dimanche 20 novembre 2005 Statut Membre Dernière intervention 3 avril 2008
3 avril 2008 à 14:51
Excellent code 10/10
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
25 mars 2008 à 21:33
Ma foi, très bonne preuve du "spirit community", rien que ça, sans même lire la source, puisque de nombreux commentaire, ho joice, en témoigne, je te met un 10/10.
@++ et bonne prog.

Vive l'opensource!!
riadhh05 Messages postés 17 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 16 juin 2008
9 mars 2008 à 20:27
Réponse à Laurent,
J'ai visité l'outil proposé dans le site. ça reste tjrs un outil commercial! même la version gratuite inclue le logo de CompletIT dans l'export/impression des données.
Même si ça pourrait résoudre l'affaire de quelques developpeurs, ceci ne s'applique sur la majorité!
Développer une application pour un nombre important d'utilisateurs necessite que: soit vous avez le code source/ ou qu'il n'y est pas de publicité pour la société qui a developpé l'API/outil.
Et ça reste tjrs un avis personnel.
Amitié
laurent colas Messages postés 3 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 9 mars 2008
9 mars 2008 à 18:26
Apres avoir cherché pas mal de temps, je suis enfin tomber sur un petit bijou:

http://www.completit.com/Products/DGVE/Downloads.aspx

il s'agit d'un outil à integrer en important les librairies

Ensuite en tres peut de ligne de code avec l'aide (en anglais)on parvient a avoir l'impression, l'export excel (pas reussi en pdf et html)et ce avec un sacré paquet d'options.

je ne suis pas un expert et ca ma couté 2h de boulot a intégrer
manulegosny Messages postés 18 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 4 janvier 2009
10 déc. 2007 à 12:49
J'ai plus ou moins identifié le problème : quand on charge l'aperçu (printpreviewdialog), la classe voit cet évenement comme une impression. Si on décide d'imprimer à partir de l'aperçu, l'impression est rajoutée... d'où les numéros de pages qui ne correspondent plus.
Du coup, lors de l'appel à la classe, je demande à l'utilisateur de prévisualiser OU imprimer direct en ayant fermé la preview au préalable.
rasta_raf Messages postés 20 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 6 mai 2008
5 déc. 2007 à 11:34
Bravo pour le code !
Juste un ptit bug comme l'a souligné manulegosny : la numérotation des pages est incorrecte : pour une seule page ça met Page 2, Pour deux pages ça met Page 3 et PAge 4 ... où peut se trouver le problème ?
Thanks.
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
21 août 2007 à 07:00
Pour le controle PrintDocument je devais pas avoir les yeux en face des trou.
cs_filou Messages postés 98 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 15 janvier 2008
21 août 2007 à 05:03
Bonjour,
Super ce code !!!
J'aimerai supprimer lors de l'impression le redimensionnement/ajustemnt des largeurs de colonnes afin de preserver les largeurs définie par code (.Columns(1).Width = 200).
Comment ajouter le contrôle MyPrintDocument dans une nouvelle form.
manulegosny Messages postés 18 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 4 janvier 2009
27 juil. 2007 à 15:42
Excellent code que je viens d'utiliser avec succès.. bravo !!
10/10

Juste un chti bémol, la numérotation des pages n'est pas tout à fait correcte : si le datagridview prend 2 pages, le printpreviewdialog affiche bien "page 1" et "page 2" mais à l'impression c'est "page 3" et "page 4" !!?
riadhh05 Messages postés 17 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 16 juin 2008
20 juil. 2007 à 12:19
Bonjour,
pour orienter l'impression de portrait en paysage, il suffit dans les paramètres de l'imprimante de selectionner paysage. J'ai essayé ça marche,
Riadh.
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
20 juil. 2007 à 08:17
J'aimerais changer l'orientation d'impression de portrait en paysage.

Comment faire ???

Merci
cs_Dnx Messages postés 16 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 16 juillet 2007
16 juil. 2007 à 09:57
Génial la source, merci pour le partage, bravo!

je mets un 10 aussi!
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
16 juil. 2007 à 08:24
Salut
Félicitation pour ton travail.
Je te mets un 10/10, et ne maquerais pas de mettre un lien lien vers ton post sur mon post Imprimer un DataGridView, http://www.vbfrance.com/codes/IMPRIMER-DATAGRIDVIEW_41261.aspx.

Encore merci pour avoir pris la penne de mettre ton code à la disposition de tous, contrairement à d'autre qui on su developper une dll pour imprimer un datagridview, et qui ne partage pas.

Bonne continuation
ManuAntibes
Rejoignez-nous