Comment Adapter l'impression à la taille d'une feuille ?
5 réponses
Bartez
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un
formulaire tout en l'adaptant à la largeur d'une feuille d'impression comme
le fait très bien Excel quant on sélectionne l'option "Ajuster à 1 page en
largeur".
Actuellement j'utilise la commande toute simple
UserFormPerso.PrintForm
mais malheureusement j'ai une partie qui est tronquée :(
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
lSteph
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut : '****** Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _ ByVal hdc As Long) As Long '**** '**et ceci dans l'initialize** Private Sub UserForm_Initialize() Dim DC As Long DC = GetDC(0) Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72 ReleaseDC 0, DC
End Sub
"Bartez" a écrit dans le message de news:
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un formulaire tout en l'adaptant à la largeur d'une feuille d'impression comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1 page en largeur".
Actuellement j'utilise la commande toute simple UserFormPerso.PrintForm mais malheureusement j'ai une partie qui est tronquée :(
Merci pour votre aide et vos idées
@+ Bartez
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut :
'******
Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _
ByVal hdc As Long) As Long
'****
'**et ceci dans l'initialize**
Private Sub UserForm_Initialize()
Dim DC As Long
DC = GetDC(0)
Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72)
Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72
ReleaseDC 0, DC
End Sub
"Bartez" <Bartez@free.fr> a écrit dans le message de news:
u8PPl9HYGHA.3868@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un
formulaire tout en l'adaptant à la largeur d'une feuille d'impression
comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1
page en largeur".
Actuellement j'utilise la commande toute simple
UserFormPerso.PrintForm
mais malheureusement j'ai une partie qui est tronquée :(
essaie mettre ceci dans le code du Userform tout en haut : '****** Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _ ByVal hdc As Long) As Long '**** '**et ceci dans l'initialize** Private Sub UserForm_Initialize() Dim DC As Long DC = GetDC(0) Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72 ReleaseDC 0, DC
End Sub
"Bartez" a écrit dans le message de news:
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un formulaire tout en l'adaptant à la largeur d'une feuille d'impression comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1 page en largeur".
Actuellement j'utilise la commande toute simple UserFormPerso.PrintForm mais malheureusement j'ai une partie qui est tronquée :(
Merci pour votre aide et vos idées
@+ Bartez
Bartez
Salut lSteph,
Merci de ton aide ! Je vais essayer ton code, mais franchement pour moi c'est du chinois, j'y comprend vraiment rien ;-)
Pourais-tu expliquer un peu tes quelques lignes par des commentaires ?
Merci Bartez
"lSteph" a écrit dans le message de news:
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut : '****** Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _ ByVal hdc As Long) As Long '**** '**et ceci dans l'initialize** Private Sub UserForm_Initialize() Dim DC As Long DC = GetDC(0) Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72 ReleaseDC 0, DC
End Sub
"Bartez" a écrit dans le message de news:
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un formulaire tout en l'adaptant à la largeur d'une feuille d'impression comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1 page en largeur".
Actuellement j'utilise la commande toute simple UserFormPerso.PrintForm mais malheureusement j'ai une partie qui est tronquée :(
Merci pour votre aide et vos idées
@+ Bartez
Salut lSteph,
Merci de ton aide !
Je vais essayer ton code, mais franchement pour moi c'est du chinois, j'y
comprend vraiment rien ;-)
Pourais-tu expliquer un peu tes quelques lignes par des commentaires ?
Merci
Bartez
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
emRpSFIYGHA.3704@TK2MSFTNGP03.phx.gbl...
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut :
'******
Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _
ByVal hdc As Long) As Long
'****
'**et ceci dans l'initialize**
Private Sub UserForm_Initialize()
Dim DC As Long
DC = GetDC(0)
Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72)
Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72
ReleaseDC 0, DC
End Sub
"Bartez" <Bartez@free.fr> a écrit dans le message de news:
u8PPl9HYGHA.3868@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un
formulaire tout en l'adaptant à la largeur d'une feuille d'impression
comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1
page en largeur".
Actuellement j'utilise la commande toute simple
UserFormPerso.PrintForm
mais malheureusement j'ai une partie qui est tronquée :(
Merci de ton aide ! Je vais essayer ton code, mais franchement pour moi c'est du chinois, j'y comprend vraiment rien ;-)
Pourais-tu expliquer un peu tes quelques lignes par des commentaires ?
Merci Bartez
"lSteph" a écrit dans le message de news:
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut : '****** Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _ ByVal hdc As Long) As Long '**** '**et ceci dans l'initialize** Private Sub UserForm_Initialize() Dim DC As Long DC = GetDC(0) Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72 ReleaseDC 0, DC
End Sub
"Bartez" a écrit dans le message de news:
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un formulaire tout en l'adaptant à la largeur d'une feuille d'impression comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1 page en largeur".
Actuellement j'utilise la commande toute simple UserFormPerso.PrintForm mais malheureusement j'ai une partie qui est tronquée :(
Merci pour votre aide et vos idées
@+ Bartez
Bartez
Salut lSteph,
Je viens de tester ton code et j'ai pu constater qu'il permettait d'adapter la taille du formulaire à la taille de l'écran. mais à l'impression c'est toujours pareil, j'en ai une partie qui est tronquée.
Ce que je recherche c'est de l'aisser le formulaire dans l'état,mais simplement de le faire apparaitre en entier à l'impression.
Si tu as une autre idée ;-) Merci en core pour ton aide!
@+ Bartez
"lSteph" a écrit dans le message de news:
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut : '****** Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _ ByVal hdc As Long) As Long '**** '**et ceci dans l'initialize** Private Sub UserForm_Initialize() Dim DC As Long DC = GetDC(0) Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72 ReleaseDC 0, DC
End Sub
"Bartez" a écrit dans le message de news:
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un formulaire tout en l'adaptant à la largeur d'une feuille d'impression comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1 page en largeur".
Actuellement j'utilise la commande toute simple UserFormPerso.PrintForm mais malheureusement j'ai une partie qui est tronquée :(
Merci pour votre aide et vos idées
@+ Bartez
Salut lSteph,
Je viens de tester ton code et j'ai pu constater qu'il permettait d'adapter
la taille du formulaire à la taille de l'écran. mais à l'impression c'est
toujours pareil, j'en ai une partie qui est tronquée.
Ce que je recherche c'est de l'aisser le formulaire dans l'état,mais
simplement de le faire apparaitre en entier à l'impression.
Si tu as une autre idée ;-)
Merci en core pour ton aide!
@+
Bartez
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
emRpSFIYGHA.3704@TK2MSFTNGP03.phx.gbl...
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut :
'******
Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _
ByVal hdc As Long) As Long
'****
'**et ceci dans l'initialize**
Private Sub UserForm_Initialize()
Dim DC As Long
DC = GetDC(0)
Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72)
Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72
ReleaseDC 0, DC
End Sub
"Bartez" <Bartez@free.fr> a écrit dans le message de news:
u8PPl9HYGHA.3868@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un
formulaire tout en l'adaptant à la largeur d'une feuille d'impression
comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1
page en largeur".
Actuellement j'utilise la commande toute simple
UserFormPerso.PrintForm
mais malheureusement j'ai une partie qui est tronquée :(
Je viens de tester ton code et j'ai pu constater qu'il permettait d'adapter la taille du formulaire à la taille de l'écran. mais à l'impression c'est toujours pareil, j'en ai une partie qui est tronquée.
Ce que je recherche c'est de l'aisser le formulaire dans l'état,mais simplement de le faire apparaitre en entier à l'impression.
Si tu as une autre idée ;-) Merci en core pour ton aide!
@+ Bartez
"lSteph" a écrit dans le message de news:
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut : '****** Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _ ByVal hdc As Long) As Long '**** '**et ceci dans l'initialize** Private Sub UserForm_Initialize() Dim DC As Long DC = GetDC(0) Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72 ReleaseDC 0, DC
End Sub
"Bartez" a écrit dans le message de news:
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un formulaire tout en l'adaptant à la largeur d'une feuille d'impression comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1 page en largeur".
Actuellement j'utilise la commande toute simple UserFormPerso.PrintForm mais malheureusement j'ai une partie qui est tronquée :(
Merci pour votre aide et vos idées
@+ Bartez
lSteph
Re, Je ne sais pas si cela résoudra ton pb mais cet api windows permet d'ajuster une fenêtre à la taille de l'écran. width indique la largeur height la hauteur. J'ai juste oublié d'enlever ceci 20+ issu de l'adaptation qui me convenait Donc remplacer ceci Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) par Me.Width = GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72
Sinon en complément pour ton souci d'impression peut-être adapter le zoom ex: Me.Zoom = Me.Zoom * 60 / 100
'lSteph
"Bartez" a écrit dans le message de news:
Salut lSteph,
Merci de ton aide ! Je vais essayer ton code, mais franchement pour moi c'est du chinois, j'y comprend vraiment rien ;-)
Pourais-tu expliquer un peu tes quelques lignes par des commentaires ?
Merci Bartez
"lSteph" a écrit dans le message de news:
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut : '****** Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _ ByVal hdc As Long) As Long '**** '**et ceci dans l'initialize** Private Sub UserForm_Initialize() Dim DC As Long DC = GetDC(0) Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72 ReleaseDC 0, DC
End Sub
"Bartez" a écrit dans le message de news:
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un formulaire tout en l'adaptant à la largeur d'une feuille d'impression comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1 page en largeur".
Actuellement j'utilise la commande toute simple UserFormPerso.PrintForm mais malheureusement j'ai une partie qui est tronquée :(
Merci pour votre aide et vos idées
@+ Bartez
Re,
Je ne sais pas si cela résoudra ton pb mais cet api windows permet d'ajuster
une fenêtre à la taille de l'écran.
width indique la largeur height la hauteur.
J'ai juste oublié d'enlever ceci 20+ issu de l'adaptation qui me convenait
Donc remplacer ceci
Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72)
par
Me.Width = GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72
Sinon en complément pour ton souci d'impression peut-être adapter le zoom
ex:
Me.Zoom = Me.Zoom * 60 / 100
'lSteph
"Bartez" <Bartez@free.fr> a écrit dans le message de news:
eUjmvNIYGHA.4144@TK2MSFTNGP04.phx.gbl...
Salut lSteph,
Merci de ton aide !
Je vais essayer ton code, mais franchement pour moi c'est du chinois, j'y
comprend vraiment rien ;-)
Pourais-tu expliquer un peu tes quelques lignes par des commentaires ?
Merci
Bartez
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
emRpSFIYGHA.3704@TK2MSFTNGP03.phx.gbl...
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut :
'******
Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _
ByVal hdc As Long) As Long
'****
'**et ceci dans l'initialize**
Private Sub UserForm_Initialize()
Dim DC As Long
DC = GetDC(0)
Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72)
Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72
ReleaseDC 0, DC
End Sub
"Bartez" <Bartez@free.fr> a écrit dans le message de news:
u8PPl9HYGHA.3868@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un
formulaire tout en l'adaptant à la largeur d'une feuille d'impression
comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1
page en largeur".
Actuellement j'utilise la commande toute simple
UserFormPerso.PrintForm
mais malheureusement j'ai une partie qui est tronquée :(
Re, Je ne sais pas si cela résoudra ton pb mais cet api windows permet d'ajuster une fenêtre à la taille de l'écran. width indique la largeur height la hauteur. J'ai juste oublié d'enlever ceci 20+ issu de l'adaptation qui me convenait Donc remplacer ceci Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) par Me.Width = GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72
Sinon en complément pour ton souci d'impression peut-être adapter le zoom ex: Me.Zoom = Me.Zoom * 60 / 100
'lSteph
"Bartez" a écrit dans le message de news:
Salut lSteph,
Merci de ton aide ! Je vais essayer ton code, mais franchement pour moi c'est du chinois, j'y comprend vraiment rien ;-)
Pourais-tu expliquer un peu tes quelques lignes par des commentaires ?
Merci Bartez
"lSteph" a écrit dans le message de news:
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut : '****** Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _ ByVal hdc As Long) As Long '**** '**et ceci dans l'initialize** Private Sub UserForm_Initialize() Dim DC As Long DC = GetDC(0) Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72 ReleaseDC 0, DC
End Sub
"Bartez" a écrit dans le message de news:
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un formulaire tout en l'adaptant à la largeur d'une feuille d'impression comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1 page en largeur".
Actuellement j'utilise la commande toute simple UserFormPerso.PrintForm mais malheureusement j'ai une partie qui est tronquée :(
Merci pour votre aide et vos idées
@+ Bartez
Bartez
Ok, merci lSteph, j'en comprends un peu plus ;-) Je vais gratter dessus maintenant.
Bonne journée à toi Bartez
"lSteph" a écrit dans le message de news: O%
Re, Je ne sais pas si cela résoudra ton pb mais cet api windows permet d'ajuster une fenêtre à la taille de l'écran. width indique la largeur height la hauteur. J'ai juste oublié d'enlever ceci 20+ issu de l'adaptation qui me convenait Donc remplacer ceci Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) par Me.Width = GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72
Sinon en complément pour ton souci d'impression peut-être adapter le zoom ex: Me.Zoom = Me.Zoom * 60 / 100
'lSteph
"Bartez" a écrit dans le message de news:
Salut lSteph,
Merci de ton aide ! Je vais essayer ton code, mais franchement pour moi c'est du chinois, j'y comprend vraiment rien ;-)
Pourais-tu expliquer un peu tes quelques lignes par des commentaires ?
Merci Bartez
"lSteph" a écrit dans le message de news:
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut : '****** Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _ ByVal hdc As Long) As Long '**** '**et ceci dans l'initialize** Private Sub UserForm_Initialize() Dim DC As Long DC = GetDC(0) Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72 ReleaseDC 0, DC
End Sub
"Bartez" a écrit dans le message de news:
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un formulaire tout en l'adaptant à la largeur d'une feuille d'impression comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1 page en largeur".
Actuellement j'utilise la commande toute simple UserFormPerso.PrintForm mais malheureusement j'ai une partie qui est tronquée :(
Merci pour votre aide et vos idées
@+ Bartez
Ok, merci lSteph, j'en comprends un peu plus ;-)
Je vais gratter dessus maintenant.
Bonne journée à toi
Bartez
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
O%23V9F4IYGHA.1228@TK2MSFTNGP02.phx.gbl...
Re,
Je ne sais pas si cela résoudra ton pb mais cet api windows permet
d'ajuster une fenêtre à la taille de l'écran.
width indique la largeur height la hauteur.
J'ai juste oublié d'enlever ceci 20+ issu de l'adaptation qui me convenait
Donc remplacer ceci
Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72)
par
Me.Width = GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72
Sinon en complément pour ton souci d'impression peut-être adapter le
zoom
ex:
Me.Zoom = Me.Zoom * 60 / 100
'lSteph
"Bartez" <Bartez@free.fr> a écrit dans le message de news:
eUjmvNIYGHA.4144@TK2MSFTNGP04.phx.gbl...
Salut lSteph,
Merci de ton aide !
Je vais essayer ton code, mais franchement pour moi c'est du chinois,
j'y comprend vraiment rien ;-)
Pourais-tu expliquer un peu tes quelques lignes par des commentaires ?
Merci
Bartez
"lSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
emRpSFIYGHA.3704@TK2MSFTNGP03.phx.gbl...
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut :
'******
Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _
ByVal hdc As Long) As Long
'****
'**et ceci dans l'initialize**
Private Sub UserForm_Initialize()
Dim DC As Long
DC = GetDC(0)
Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72)
Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72
ReleaseDC 0, DC
End Sub
"Bartez" <Bartez@free.fr> a écrit dans le message de news:
u8PPl9HYGHA.3868@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un
formulaire tout en l'adaptant à la largeur d'une feuille d'impression
comme le fait très bien Excel quant on sélectionne l'option "Ajuster à
1 page en largeur".
Actuellement j'utilise la commande toute simple
UserFormPerso.PrintForm
mais malheureusement j'ai une partie qui est tronquée :(
Ok, merci lSteph, j'en comprends un peu plus ;-) Je vais gratter dessus maintenant.
Bonne journée à toi Bartez
"lSteph" a écrit dans le message de news: O%
Re, Je ne sais pas si cela résoudra ton pb mais cet api windows permet d'ajuster une fenêtre à la taille de l'écran. width indique la largeur height la hauteur. J'ai juste oublié d'enlever ceci 20+ issu de l'adaptation qui me convenait Donc remplacer ceci Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) par Me.Width = GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72
Sinon en complément pour ton souci d'impression peut-être adapter le zoom ex: Me.Zoom = Me.Zoom * 60 / 100
'lSteph
"Bartez" a écrit dans le message de news:
Salut lSteph,
Merci de ton aide ! Je vais essayer ton code, mais franchement pour moi c'est du chinois, j'y comprend vraiment rien ;-)
Pourais-tu expliquer un peu tes quelques lignes par des commentaires ?
Merci Bartez
"lSteph" a écrit dans le message de news:
Bonjour,
Avant d'appeler
UserFormPerso.PrintForm
essaie mettre ceci dans le code du Userform tout en haut : '****** Private Declare Function GetDC Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function GetDeviceCaps Lib "Gdi32" (ByVal hdc As Long, _ ByVal nIndex As Long) As Long
Private Declare Function ReleaseDC Lib "User32" (ByVal hWnd As Long, _ ByVal hdc As Long) As Long '**** '**et ceci dans l'initialize** Private Sub UserForm_Initialize() Dim DC As Long DC = GetDC(0) Me.Width = 20 + (GetDeviceCaps(DC, 8) / GetDeviceCaps(DC, 88) * 72) Me.Height = GetDeviceCaps(DC, 10) / GetDeviceCaps(DC, 90) * 72 ReleaseDC 0, DC
End Sub
"Bartez" a écrit dans le message de news:
Bonjour à tous,
Je cherche un peu partout le truc qui me permettrait d'imprimer un formulaire tout en l'adaptant à la largeur d'une feuille d'impression comme le fait très bien Excel quant on sélectionne l'option "Ajuster à 1 page en largeur".
Actuellement j'utilise la commande toute simple UserFormPerso.PrintForm mais malheureusement j'ai une partie qui est tronquée :(