Code pour impression formulaire

Bonjour,

j'ai crée un formulaire Excel qui alimente une base(base_données_imp_formulaire)

, j'ai ajouté un bouton enregitrer qui doit normalement me permettrre d'imprimer le formulaire (et non pas pas le classeur excel), ce bouton est lié à la commande suivante:

Private Sub CommandButton2_Click()

UserForm1.printForm

End Sub

Le probleme est que je lance l'impression, le formulaire n'est pas complet plusieurs champs n'apparaisent plus, j'ai mis le resultat en fichier joint (essaie1).

153essaie1.pdf (18.04 Ko)

Salut!

A part le noir qui fait un peu moche autour des radiobox je n'ai pas vu de problème en remplissant les champs et en faisant enregistrer. L'impression passe plutôt bien.

Il y a bien un troncage au niveau de la drote mais tu peux redesigner ton userform pour que ça match avec du A4.

Edit:

Ci joint ce que j'obtient:

Merci,

mais je n'ai plus les noms correspondant à chaque cadre. Je n'ai que des cases avec oui ou non mais on ne sait plus à quoi ça correspond.

On dirait qu'il n'y a pas de solution pour ce problème.

Une méthode Pour contourner le problème est présentée ici:

Mais bon ça fait un printscreen c'est pas l'idéal.

Ce que tu peux faire c'est tranferrer les infos de ton userform sur une sheet excel que tu imprime par la suite.

Bon courage!

J'ai trouvé une solution pour contourner le probleme sur le lien suivant:

Le code à ajouter est:

Option Explicit

Private Declare Sub keybd_event Lib "user32" ( _

ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _

ByVal dwExtraInfo As Long)

Private Sub CommandButton1_Click()

Dim monImage As String

Dim Sh As Shape

'Définit le nom et le lieu de stockage de l'image

monImage = ActiveWorkbook.Path & "\monimage" & ".jpg"

keybd_event vbKeySnapshot, 1, 0&, 0&

DoEvents

Range("A1").Select

ActiveSheet.Paste

'on rogne l'image: à toi de régler suivant ta convenance à l'aide de l'enregistreur de macro

With Selection

.ShapeRange.ScaleWidth 0.68, msoFalse, msoScaleFromTopLeft

.ShapeRange.ScaleHeight 0.68, msoFalse, msoScaleFromTopLeft

End With

'Récupère la dernière forme de la feuille

Set Sh = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)

'Colle l'image dans un graphique

With ActiveSheet.ChartObjects.Add(0, 0, Sh.Width, Sh.Height).Chart

.Paste

'Sauvegarde l'image du graphique au format jpg

.Export monImage, "JPG"

End With

'Supprime le graphique et la forme.

With ActiveSheet

.ChartObjects(ActiveSheet.ChartObjects.Count).Delete

.Shapes(ActiveSheet.Shapes.Count).Delete

End With

Application.ScreenUpdating = True

MsgBox "L'image est sauvegardée dans le dossier du classeur."

End Sub

En mode impression écran et sauvegarde en image. Bien joué!

On trouve toujours quand on cherche bien

En codant un export du graphique en pdf plutôt que JPG tu peux surement obtenir un fichier pdf correspondant.

Bon courage en tout cas

Rechercher des sujets similaires à "code impression formulaire"