avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 2012
-
21 janv. 2007 à 17:29
avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 2012
-
21 janv. 2007 à 18:39
Bonjour à tous,
Je veux imprimer mon userform en 3 copies pour facturation.
Je rencontre un probleme sur se code:
<hr size= "2" width="100%" />
Private Sub CommandButton1_Click()
msg = "Voulez-vous continuer l'impression ?"
Style = vbYesNo + vbDefaultButton1
Réponse = MsgBox(msg, Style, Title)
If Réponse = vbYes Then
Dim Ws As Worksheet
'Copie d'écran de la forme active
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
'Ajoute une feuille pour coller l'image de la forme
Set Ws = Sheets.Add
Ws.PageSetup.Orientation = xlLandscape
Ws.Paste
'impression centrée dans la page
With Ws
.PageSetup.CenterHorizontally = True
.PageSetup.CenterVertically = True
'test1
ActiveWindow.SmallScroll Down:=18
Selection.ShapeRange.ScaleWidth 0.87, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.87, msoFalse, msoScaleFromTopLeft
ActiveWindow.SmallScroll Down:=-21
msg = "Voulez-vous continuer l'impression pour la copie comptabilité?"
Style = vbYesNo + vbDefaultButton1
Réponse = MsgBox(msg, Style, Title)
If Réponse = vbYes Then
End With
End If
End Sub
<hr size="2" width="100%" />Avez-vous une idée pourquoi il arret sur keybd_event ?
Pourtant dans un autre document, il fonctionne très bien
avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 20123 21 janv. 2007 à 17:39
javais oublié de mettre se code:
<hr size="2" width="100%" />
Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
<hr size="2" width="100%" />Parcontre, l'impression ne s'affiche pas tout au complet, seulement une partie du userform. Comment faire pour que le userform complet s'imprime?
avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 20123 21 janv. 2007 à 17:47
L'impression ce fait maintenant, le problème que je rencontre en ce moment, c'est que lorsque le userform s'imprime, ayant dans le userform une barre de défillement, il imprime que la partie affiché et non la totalité du userform.
Le code complet que j'ai écrit plus haut, je n'arrive pas à figurer ou je doit modifier pour imprimer la totalité.
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 21 janv. 2007 à 18:23
Personne ?
Bon alors moi (je ne connais rien à VBA mais ça n'a pas d'importance) :
Ce que tu as sur ton userform sont des contrôles qui ont des propriétés (dont la propriété Text pour le textboxes, etc...)
Ce n'est pas en faisant une copie d'écran que l'on établit une facture mais en se servant de ces éléments pour la définir et l'imprimer (énorme gain de temps et d'encre)
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 21 janv. 2007 à 18:35
Et si tu es sous Excel, rien ne t'interdit, en plus, d'envoyer ces données vers des cellules préformatées d'une feuille réservée à celà, puis d'imprimer cette feuille !