Impression Noir et Blanc : ou couleur
Bonjour,
j'ai un petit bout de code me permettant de sélectionner une imprimante spéciale, imprimer une sélection pour ensuite revenir à mon imprimante par défaut
Cela fonctionne parfaitement.
Sub EditionFiche()
'EditionFiche Macro
Imprimante = Application.ActivePrinter 'Mémorise le choix de l'imprimante avant l'impression
Range("R1:AH27").Select
Selection.PrintOut Copies:=1, ActivePrinter:="RICOH MPC307 BYPASS A6"
Application.ActivePrinter = Imprimante 'Retour à l'imprimante choisie avant l'impression
End SubJ'aimerai maintenant avoir la possibilité de choisir si je veux imprimer en Noir et Blanc ou en Couleur.
Je pense que le plus simple serait d'avoir deux boutons (un N&B et un couleur) et je choisit celui que je veux pour lancer l'impression.
J'ai essayé de mettre un
.BlackAndWhite = Truepour lancer l'impression en noir et blanc (bouton impression N&B)
et un
.BlackAndWhite = Falsepour lancer l'impression en couleur. (bouton impression COULEUR)
Soit mon bout de code est mauvais, soit je le met pas au bon endroit, mais quoi qu'il arrive ça ne marche pas.
Est ce que qqn aurait la gentillesse de m'aider la dessus ?
Merci
Bonjour
Votre version excel est renseignée sur 2011. Vous êtes sous Excel MAC ? Si oui, veillez à ajouter MAC dans le profil Excel de votre compte
Pour votre demande, peut être ceci pour le Noir et Blanc
Sub EditionFiche()
'EditionFiche Macro
Dim imprimante As String
imprimante = Application.ActivePrinter 'Mémorise le choix de l'imprimante avant l'impression
With ActiveSheet
.PageSetup.BlackAndWhite = True
.Range("R1:AH27").PrintOut Copies:=1, ActivePrinter:="RICOH MPC307 BYPASS A6"
.PageSetup.BlackAndWhite = False
End With
Application.ActivePrinter = imprimante 'Retour à l'imprimante choisie avant l'impression
End SubFaites un test sachant qu'il faut que votre imprimante soit placée en couleur par défaut
Vous pourriez aussi peut être prévoir un message qui vous demande si vous voulez en couleur ou pas. Cela peut vous éviter deux boutons...
Cordialement
Bonjour,
j'ai une erreur d'exécution 424 (objet requis) sur cette ligne là :
Pour info je vous met le code entier de ma macro qui en réalité (Peut être que cela à un impact sur l'erreur)
Fait une incrémentation de +1 sur une cellule (compteur )
Enregistre au format PDF une sélection
Imprime cette même sélection
Si un message popup pour me demander le type d'impression est plus simple. Je suis preneur. Mais je ne sais pas non plus comment le faire.
PageSetup.BlackAndWhite = TrueSub EditionFicheNetB()
'EditionFicheNetB Macro
Sheets(1).Range("B8").Value = Sheets(1).Range("B8").Value + 1
Dim imprimante As String
imprimante = Application.ActivePrinter 'Mémorise le choix de l'imprimante avant l'impression
Range("R1:AH27").Select
ChDir "C:\Users\georges\Desktop\Fiche Journalière"
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\georges\Desktop\Fiche Journalière\" & Range("R3") & "-" & Range("V3") & "-" & Range("F1") & "-" & Range("F2") & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
With ActiveSheet
PageSetup.BlackAndWhite = True
Range("R1:AH27").Select
Selection.PrintOut Copies:=1, ActivePrinter:="RICOH MPC307 BYPASS A6"
PageSetup.BlackAndWhite = False
End With
Application.ActivePrinter = imprimante 'Retour à l'imprimante choisie avant l'impression
End Subj'ai une erreur d'exécution 424 (objet requis) sur cette ligne là :
Sur quelle ligne ?
Et c'est la Sheet(1) que vous imprimez ?
sur cette ligne la
PageSetup.BlackAndWhite = TrueJe n'imprime que la selection de cellule R1:AH27 (j'enregistre cette selection en pdf et je l'imprime)
Il faudrait déjà que vous recopiiez le code comme je vous l'ai donné pour tester. Ce qui n'est pas le cas
Ensuite je vous ai posé deux questions aussi.
Bonjour Georges Thomas, Dan,
Refait le point...
En comparant bien le code proposé et le tien.
Veuillez m'excuser. Ca marche parfaitement bien... J'essaye de comprendre en même temps votre code et plutôt que de faire un copier coller je modifie moi même mon code. Ca me permet de faire cela par étape et de mieux comprendre. (Ca marche habituellement mais c'est évident qu'en recopiant que quelques bouts de code ca ne peut pas fonctionner... Encore désolé)
Merci beaucoup DAN, c'est exactement ce que je cherchais à avoir.
Qu'en est t'il de la boite de dialogue qui me permettrai d'avoir qu'un seul bouton ? Je n'y avait pas pensé mais je dois avouer que cette solution m'intéresse également. Si vous avez le temps je suis preneur de la solution.
Pour ce qui est des deux questions il me semble que je vous ai répondu ?
Pour ce qui est des deux questions il me semble que je vous ai répondu ?
A la première oui mais pas à la deuxième qui est la plus importante.
Qu'en est t'il de la boite de dialogue qui me permettrai d'avoir qu'un seul bouton ? Je n'y avait pas pensé mais je dois avouer que cette solution m'intéresse également. Si vous avez le temps je suis preneur de la solution.
A voir lorsque j'aurai l'info sur la deuxième question
Je ne vois que ces deux questions :
j'ai une erreur d'exécution 424 (objet requis) sur cette ligne là :
Sur quelle ligne ?
PageSetup.BlackAndWhite = TrueEt c'est la Sheet(1) que vous imprimez ?
Je n'imprime que la sélection de cellule R1:AH27 (j'enregistre cette sélection en pdf et je l'imprime)
Je ne sais pas si cela change qqch mais j'ai une trentaine d'onglets sur ce classeur Excel qui ont tous ce bouton impression (impression et enregistrement de la même plage de cellule)
Lorsque j'appuie sur ce bouton, ca enregistre et imprime la sélection de l'onglet actif.
Je ne sais pas si cela change qqch mais j'ai une trentaine d'onglets sur ce classeur Excel qui ont tous ce bouton impression (impression et enregistrement de la même plage de cellule)
Lorsque j'appuie sur ce bouton, ca enregistre et imprime la sélection de l'onglet actif.
Ok là oui cela change évidemment
1. Je vois que vous incrémentez la cellule B8. C'est uniquement sur la feuille 1 ou sur chaque feuille ?
2. Le nom du fichier vient des cellules R3, V3, F1 et F2 de chaque feuille ou de la feuille 1 ?
Je vous explique vite fait le fichier excel, cela vous éclairera peut être.
Ce ficher est utilisé dans des bureaux, il permet d'éditer des fiches de fabrications qui sont ensuite envoyé en atelier pour fabrication.
La feuille 1 (onglet 1) est l'onglet DATA dans lequel tout plein de paramètres sont enregistré. (principalement de la data pour des listes déroulantes et autres datas diverses permettant de ne pas surcharger tous les autres onglets)
Tous les autres onglets correspondent à des formes (pour la fabrication) exemple onglet 2 (forme rectangulaire) onglet 3 (forme Ronde) , onglet 4 (forme ovale) etc. etc. il y'a une bonne trentaine d'onglet.
Lorsque je reçoit une commande, je sélectionne la forme qui est demandé en choisissant l'onglet correspondant et commence a remplir dans cet onglet tous pleins de champs qui viennent enrichir une fiche de fabrication (sélection R1:AH27). Tous les onglets ont le même aspect, seul la forme globale représenté dans la sélection R1:AH27 change.
Vous aurez donc compris que le la macro EditionFiche vient :
- incrémenter un numéro (qui correspond à un numéro de commande)
- Enregistrer au format .pdf une fiche de fabrication qui est délimité par la sélection R1:AH27
- Imprimer cette même sélection
1. Je vois que vous incrémentez la cellule B8. C'est uniquement sur la feuille 1 ou sur chaque feuille ?
Uniquement sur la feuille 1. Cela ne doit pas avoir d'impact, mais il y'a sur chaque onglet un rappel de la valeur de cette cellule (=sheet1!B8). de sorte que tous les onglets partage cette même incrémentation. (Ce numéro apparait sur la fiche de fabrication que j'édite et d'une fiche a l'autre, peut importe l'onglet utilisé, il n'y a jamais le même numéro étant donné que je l'incrémente à chaque édition de fiche de fabrication) Vous aurez compris que c'est la solution que j'ai trouvé pour que toutes mes commandes ai un numéro unique.
2. Le nom du fichier vient des cellules R3, V3, F1 et F2 de chaque feuille ou de la feuille 1 ?
Le nom du fichier PDF est le résultat de la concaténation de plusieurs cellules qui sont sur l'onglet sur lequel je me trouve (onglet de fiche de fabrication et non l'onglet DATA) . Peut importe l'onglet, ce sont toujours les mêmes cellules.
Lors du traitement de la commande, je disais plus haut que je devais sélectionner la forme correspondante pour ensuite remplir divers champs (ici F1 et F2 sont certains de ces champs). Le fichier .pdf que j'édite porte donc ce nom la :
R3 = date du jour
V3 = Cellule qui copie (=sheet1!B8) et qui est donc le résultat du compteur de commande
F1 = Nom client
F2 = Ref Client.
Tous mes fichiers ont donc pour nom (23février2023-4532-DAN-REMERCIEMENT.pdf)
Voila.
Merci des explications.
Essayez votre code comme ceci
Sub EditionFicheNetB()
'EditionFicheNetB Macro
Dim imprimante As String, chemin As String, fichier As String
Sheets("DATA").Range("B8").Value = Sheets("DATA").Range("B8").Value + 1
imprimante = Application.ActivePrinter 'Mémorise le choix de l'imprimante avant l'impression
chemin = "C:\Users\georges\Desktop\Fiche Journalière"
With ActiveSheet
If MsgBox("Voulez-vous imprimer en Noir et Blanc ?", vbYesNo + vbDefaultButton2, "Couleur Impression") = vbYes Then .PageSetup.BlackAndWhite = True
.Range("R1:AH27").PrintOut Copies:=1, ActivePrinter:="RICOH MPC307 BYPASS A6"
.PageSetup.BlackAndWhite = False
fichier = .Range("R3") & "-" & .Range("V3") & "-" & .Range("F1") & "-" & Range("F2") & ".pdf"
.Range("R1:AH27").ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & fichier, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End With
Application.ActivePrinter = imprimante 'Retour à l'imprimante choisie avant l'impression
End SubSeul chose, on imprime d'abord puis on réalise le fichier PDF qui reprendra les couleurs de la feuille. De ce coté cela importe peu de toute façon.
si ok -->
Cordialement
Merci beaucoup.
Ca fonctionne parfaitement.