Erreur sur macro d'impression

  • Initiateur de la discussion Initiateur de la discussion Flop
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Flop

XLDnaute Occasionnel
Bonjour j'ai récuperer cette macro sur ce ou un autre forum et elle marche très bien si ce n'est que quand je clique sur annuler l'impression se lance quand même. j'appelle la macro par la macro imprimer :

merci d'avance de votre aide. 😱

'macro d'impression
Sub imprimer()
Call Select_Imprime
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
'####################################################################################'

Sub Select_Imprime()
'Liste les imprimantes, donne le choix et le nombre de pages à imprimer.
Dim BookName As String
BookName = Sheets("Accueil").Range("A2").Value
If Not Printer_Choice(BookName) Then Workbooks(BookName).Sheet(1).PrintOut Copies:=1
End Sub

'Sélection imprimante pour impression
Function Printer_Choice(nBook As String) As Boolean
' Const msgPart1 = " page(s) à imprimer sur "
Const msgPart2 = "Imprimante active :"
Const msgPart3 = "Voulez-vous changer d'imprimante ?"
Dim Reply As Byte, Actual_Printer As String, nbPages As String
Printer_Choice = True
If Not nBook = "" Then
Workbooks(nBook).Activate
nbPages = ExecuteExcel4Macro("GET.DOCUMENT(50)") & msgPart1
End If
Actual_Printer = Left(ActivePrinter, Len(ActivePrinter) - 10)
Reply = MsgBox(msgPart2 & vbLf & Actual_Printer & " !" & _
vbLf & vbLf & msgPart3, 3 + 32 + 256, "Info utilisateur")
If Reply = vbYes Then
Application.Dialogs(xlDialogPrinterSetup).Show
MsgBox "Imprimante modifiée"
End If
If Reply = vbNo Then
Printer_Choice = True
End If
If Reply = vbCancel Then
Printer_Choice = True

End If
End Function

'####################################################################################'
 
Re : Erreur sur macro d'impression

Salut,

Normal que ton impression se lance quand meme puisque le but de ce code est de choisir l'imprimante et eventuellement de la changer pour imprimer et non de dire si oui ou non tu veux imprimer.
Tu epux tout simplement modifier le code de cette manière pour demander de confirmer l'impression.
Code:
Sub imprimer()
Call Select_Imprime
rep = MsgBox("Voulez-vous imprimer ?", vbInformation + vbYesNo)
If rep = 6 Then ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
177
Réponses
7
Affichages
163
Réponses
2
Affichages
511
Réponses
9
Affichages
580
  • Question Question
Microsoft 365 Macro vba excel
Réponses
6
Affichages
489
Réponses
10
Affichages
547
Retour