2017-10-20 9 views
0

Salut J'essaie d'obtenir l'impression d'un formulaire utilisateur. Pendant l'impression, il est toujours demandé d'enregistrer le formulaire utilisateur (une boîte d'invite s'affiche). Je ne le veux pas.Modifier la méthode d'impression du PDF à l'imprimante par défaut pour une impression de formulaire

Je veux obtenir l'impression directement après avoir choisi l'imprimante sans l'enregistrer.

code ci-dessous:

Private Sub CommandButton2_Click() 
    CommandButton2.Visible = False 
    CommandButton1.Visible = False 

    Application.Dialogs(xlDialogPrinterSetup).Show 
    Me.PrintForm 

    CommandButton2.Visible = True 
    CommandButton1.Visible = True 
End Sub 
+1

Avez-vous essayé Application.DisplayAlerts = False, juste avant la ligne PrintForm? –

+0

Hi.No. Même en ajoutant cela n'aide pas – umakant

Répondre

0

A la fin de votre code, vous pouvez forcer un classeur pour fermer sans enregistrer les modifications, tapez le code suivant dans un module Visual Basic de ce classeur:

Sub Auto_Close() 
    ThisWorkbook.Saved = True 
End Sub 

Étant donné que la propriété Saved est définie sur True, Excel répond comme si le classeur avait déjà été enregistré et aucun changement ne s'est produit depuis cette dernière sauvegarde.

EDIT:

Maintenant, je sais ce que vous êtes après que je vais présumer que vous avez créé une pression sur un bouton pour votre forme, donc je pense que quelque chose comme https://www.mrexcel.com/forum/excel-questions/544657-specifying-printer-printing-userform-using-vba.html. Cela vous aidera avec ce que vous voulez, car il vous montrera comment changer la méthode d'impression par défaut, formulaire PDF.

+0

Salut, Merci pour la réponse. Je veux imprimer le formulaire d'utilisateur pas la feuille d'Excel. Comme je veux imprimer le document sans l'enregistrer. Est-il possible? Chaque fois qu'il demande d'imprimer le document sans enregistrer – umakant

+0

Est-ce un userform dans un classeur d'Excel? si c'est alors que cela va vous permettre de fermer le classeur sans enregistrer comme alors vous pouvez Dim le classeur et wb.close – Kyoujin

+0

Oui le userform est dans le classeur Excel. Et je dois prendre l'impression de feuille d'utilisateur pas Excel . – umakant

1

Vous pouvez ne pas aimer cette réponse, car elle implique plus de travail, mais vous souhaitez probablement que le formulaire utilisateur ajoute les données dans une feuille de calcul formatée, puis utilise la méthode d'impression de la feuille de calcul.

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/sheets-printout-method-excel

Worksheets.("yourWorksheet").printout _ 
activeprinter:= yourPDFprinter, _ 
PrintTofFile:= True, _ 
PrToFileName:= filePathAndName 

Si vous voulez le faire à travers le UserForm, vous allez probablement finir par faire un tas d'appels API Windows.