Automatisation des impressions par macro comment faire?

Salut à tous

Suis un debutant en vba. A vrai dire je ne comprend pas ce langage.

Pourtant mon problème ne peut être solutionné que par ce langage.

Ci-dessous mes difficultés:

J'ai un classeur intitulé « ESSAI ZOMBE » contenant plusieurs feuilles (voir fichier joint).

Je travail sous excel 2007 ;

Je cherche une macro qui me permettra par simple touche de raccourci, d’exécuter les impressions souhaitées lorsque certaines conditions s'avèrent vérifiées.

Voici mes conditions formulées:

1. Si (ou(donne !b4="PS PUBLIQUE";donne !b47<>"";engagement!f16<>"") Si cette condition est vraie, que soient imprimées:

  • les 4 premières pages de la feuille "FRGLE",
  • la feuille "SPECIMEN" (page 1),
  • les 3 premières pages de la feuille "SOLDE",
  • la feuille "CHECKLISTE" (page 1)
  • la feuille "ENGAGEMENT" (page 1)
  • la feuille "VP" (page 1),
Si cette condition est fausse, que soient imprimées:
  • les 4 premières pages de la feuille "FRGLE",
  • la feuille "SPECIMEN" (page 1),
  • les 3 premières pages de la feuille "SOLDE".
  • la feuille "CHECKLISTE" (page 1)
2. Si (ou(donne !b4="PS PRIVE";donne !b47<>"";engagement!f16<>"") En lieu et place de la 1ère condition, si c'est cette condition qui est vraie, que soient imprimées:
  • les 4 premières pages de la feuille "FRGLE",
  • la feuille "SPECIMEN" (page 1),
  • la feuille "DOMPRIVE" (page 1),
  • la feuille "ENGAGEMENT" (page 1)
  • la feuille "VP" (page 1),
  • la feuille "CHECKLISTE" (page 1)
Si cette condition est fausse, que soient imprimées:
  • les 4 premières pages de la feuille "FRGLE",
  • la feuille "SPECIMEN" (page 1),
  • la feuille "DOMPRIVE" (page 1),
  • la feuille "CHECKLISTE" (page 1).
3. Si (ou(donne !b4="CH PRIVE";donne !b47<>"";engagement!f16<>"") En lieu et place de la 1ère et la 2è condition, si c'est cette condition qui est vraie, que soient imprimées:
  • la page 1;3;4 de la feuille "FRGLE",
  • la feuille "SPECIMEN" (page 1),
  • la feuille "DOMPRIVE" (page 1),
  • la feuille "CHECKLISTE" (page 1),
  • la feuille "ENGAGEMENT" (page 1)
  • la feuille "VP" (page 1).
Si cette condition est fausse, que soient imprimées:
  • la page 1;3;4 de la feuille "FRGLE",
  • la feuille "SPECIMEN" (page 1),
  • la feuille "DOMPRIVE" (page 1),
  • la feuille "CHECKLISTE" (page 1)
4. Si (ou(donne !b4="CH PPUBLIQUE";donne !b47<>"";engagement!f16<>"") En lieu et place de la 1ère et la 2è condition, si c'est cette condition qui est vraie, que soient imprimées:
  • la page 1;3;4 de la feuille "FRGLE",
  • les 3 premières pages de la feuille "SOLDE",
  • la feuille "SPECIMEN" (page 1),
  • la feuille "CHECKLISTE" (page 1),
  • la feuille "ENGAGEMENT" (page 1)
  • la feuille "VP" (page 1).
Si cette condition est fausse, que soient imprimées:
  • la page 1;3;4 de la feuille "FRGLE",
  • la feuille "SPECIMEN" (page 1),
  • les 3 premières pages de la feuille "SOLDE",
  • la feuille "CHECKLISTE" (page 1)
5. Si (ou(donne !b4="CL";engagement!f16<>"") Si c'est cette condition qui est vérifiée, que soient imprimées:
  • la page 1 de la feuille "FRGLE",
  • la feuille "SPECIMEN" (page 1),
  • la feuille "ENGAGEMENT" (page 1)
  • la feuille "CHECKLISTE" (page 1)
Si cette condition est fausse, que soient imprimées:
  • la page 1 de la feuille "FRGLE",
  • la feuille "SPECIMEN" (page 1),
  • la feuille "CHECKLISTE" (page 1),

Le fichier joint vous parviendra ulterieurement.

Merci de me donner un coup de main.

Bonjour,

Si tu veux faire simple , mets une page par onglet,

sinon, le découpage devient vite une usine à gaz , alors qu'il est plus simple de prévoir correctement le découpage.

Merci pour votre reponse.

A vrai dire j'ai pas bien compris ce que vous voulez dire.

Pouvez-vous faire un essai à trvers le fichier joint.

Comme cela je pourrai mieux comprendre.

Cdlt

37essai-zombe.xlsx (128.93 Ko)

Bonjour,

Voici....

J'ai pas vérifié tous les cas ,

le principe y est ,

J'ai pas vu de bouton pour enclencher la macro, ajoute un bouton qui appellera la macro 1

tiens moi informé des résultats .

42imprime3.zip (62.26 Ko)

Salut le forum

Juste pour simplifier la procédure d'impression

Sub Macro1()
'Macro d'impression
If Range("donne!b4") = "PS PUBLIQUE" Or Range("donne!b47") <> "" Or Range("engagement!f16") <> "" Then
   'les 4 premières pages de la feuille "FRGLE"
   Call Imprimer("FRGLE", 1, 4)
   'la feuille "SPECIMEN" (page 1)
   Call Imprimer("SPECIMEN", 1, 1)
   'Suite des choix
End If

'Suite du code

End Sub

Public Sub Imprimer(Nom As String, Pg_Deb As Byte, Pg_Fin As Byte)
  Sheets(Nom).PrintOut From:=Pg_Deb, To:=Pg_Fin, Copies:=1, Collate:=True
End Sub

Mytå

Merci pour vos élements de reponses.

J'essaie et je vous revien mais avant pouvez-vous revoir le type du fichier joint.

J'ai pas WINZIP sur ma machine.

Bonjour,

J'ai ajouté un bouton imprime, tu peux su tu veux dans un premier temps imprimer en PDF, pour economiser du papier mais surtout de l'encre .

J'ai vu que l'on pouvait enregistrer en Excel 2007 depuis Excel 2003, le fichier étant moins gros , j'essai donc comme ceci,

Sinon il faudra passer par un autre compacteur 7Z ou autre , ou un site de transfert de document - join, Free

43imprime.xlsm (138.76 Ko)

Merci dejà pour vos élements de reponse.

J'essais votre proposition et vous reviens dès que possible.

Amicalement

salut Myta

J'ai pas bien saisi votre proposition.

Pouvez-vous materialiser cela en tenant compte de tous les critères définis à travers le fichier joint afin que je puisse tester les impression et vous revenir si besoin est.

-- 19 Juil 2011, 21:23 --

Salut Misterno

J'ai essayé votre proposition mai ca ne prend pas en compte toutes les impression.

A chaque condtion, ce sont les meme imprimés qui sortent. C'est notemment la 1ère page de la feuille "FRGLE", la feuille "SPECIMEN" et la feuille "CHECKLISTE". pouvez vous revoir pour que ca respecte les critères demandés.

Amicalement

26essai-zombe.xlsx (128.93 Ko)

Re le forum

Il te suffit d'apater tes conditions

If Range("donne!b4") = "PS PUBLIQUE" Or Range("donne!b47") <> "" Or Range("engagement!f16") <> "" Then
'traitement de l'impression
Exit Sub 'Si on doit arreter ici l'impression
Else
'Traitement de l'impression
Exit Sub 'Si on doit arreter ici l'impression
end if

Tu poursuis le reste avec tes autres conditions.

Edition : Tu aurais au moins du faire l'effort d'inclure le code des macros au fichier.

Mytå

C'est en forgeant que l'on devient forgeron ...

Merci pour le feedback myta.

Comme je l'ai souligner, je n'y connais pas grande chose en vba.

Comment traduire en vba ce qui doit etre imprimé dans la place que t'a reservé pour le traitement de l'impression.

Pe tu faire pour 2 conditions afin que je puisse m'y inspirer.

"Il ne faut jamais enterrer le cadavre et laisser ses pieds dehors".

Amicalement

Bonjour tout le monde,

Voilà j'ai créé ma petite macro pour l'impression et elle est fonctionnelle :

Sub Macro1()

'

' Macro1 Macro

'

' Touche de raccourci du clavier: Ctrl+p

'

ActiveSheet.Buttons.Add(814.5, 91.5, 72, 72).Select

Selection.OnAction = "Macro1"

Selection.OnAction = "Macro1"

ActiveWindow.View = xlPageBreakPreview

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _

IgnorePrintAreas:=False

End Sub

Petit souci quand même, quand je protège ma feuille et mon classeur, j'ai une erreur et ca me renvoie dans le débogage.

Help, I need somebody !!!!!!

Salut Myta

Dans le fivhier joint, j'ai essayé d'utiliser le code suivant que vous m'avez donné :

Sub Macro1()

'Macro d'impression

If Range("donne!b4") = "PS PUBLIQUE" Or Range("donne!b47") <> "" Or Range("engagement!f16") <> "" Then

'les 4 premières pages de la feuille "FRGLE"

Call imprimer("FRGLE", 1, 4)

'la feuille "SPECIMEN" (page 1)

Call imprimer("SPECIMEN", 1, 1)

'les trois premières pages de la feuille "SOLDE"

Call imprimer("SOLDE", 1, 3)

End If

End Sub

Ca ne marche pas bien

J'ai trouvé !!!!!

Bon j'ai un petit bug quand même. Quand je valide ensuite ma protection de feuille et de classeur, mon bouton fonctionne impec, mais pas contre le nom s'incrémente, du style Bouton1, Bouton2, etc...

Alors que je ne voudrais voir marquer qu'Impression sur ce fichu petit bouton

lol

Bon allez ze vais continuer à bidouiller !!!!!

Rechercher des sujets similaires à "automatisation impressions macro comment"