Imprimer en VBA en fonction des dates

Bonjour,

Je vous explique mon projet. J’ai un tableau Excel que je remplis à l’aide d’un formulaire et tout marche bien. À partir de ce tableau j’ai besoin d’imprimer en fonction d’une date de départ et une date d’arrivée, le nombre de colonnes ne change pas seul les dates changent. J’avais pensé faire un formulaire qui ressemblera à ça, mais malheureusement je ne sais pas quoi mettre comme code pour les dates et le bouton imprimer. Les colonnes sont: B.C.D.E.F.G.H.I. Si une personne bien intentionnée pouvait m’aider cela serait super sympa.

Bonsoir,

Pas bien compris ton problème. Si tu dois imprimer selon certaines conditions, quelles qu'elles soient, tu définis la zone d'impression avant d'imprimer, en masquant éventuellement des lignes intermédiaires si elles ne doivent pas être imprimées.

[propriété PrintArea de l'objet PageSetup qui rassemble les propriétés d'impression d'une feuille ou d'un classeur]

Re bonjour,

Je me suis mal expliquer, pour faciliter l’impression je voudrais créer un formulaire avec une date de début et une date de fin et un bouton imprimer afin de ne pas avoir de zone d’impression à définir.

Quelle est donc l'utilité des dates, si ce n'est en fin de compte pour définir une zone d'impression ?

Si pas de zone d'impression définie, tout est imprimé...

Effectivement il y aura bien une zone d'impression mais elle serait définie automatiquement car le fichier sera utiliser par plusieurs personnes et quelque une ne maîtrise pas très bien l'informatique

C'est bien toi qui définit ce qui doit être automatique ! Si ce n'est pas défini, il ne se passera rien.

Et pour l'instant, tu n'as strictement rien défini !!

111essai.xlsm (296.43 Ko)
111essai.xlsm (296.43 Ko)

Re bonjour

Afin de mieux me faire comprendre, je joins un fichier. Dans le fichier joint, il y a un userform dans lequel si je remplis la date du début et la date de fin j’aimerais que la zone d’impression se définisse en fonction des dates pour les lignes et des colonnes de B à I (se seront toujours les mêmes colonnes à imprimer). Donc j’aimerais savoir quel code mettre pour le bouton imprimer et quel code pour définir la date du début et la date de fin. En espérant avoir était plus clair dans mes explications.

Bonjour,

Question bête : pourquoi n'utilises-tu pas le filtre chronologique 'Entre...'du filtre auto en B2 ?

C'est si gênant que ça d'avoir la colonne A d'imprimée en plus ?

eric

Bonjour,

Tu aurais précisé d'emblée que tu veux imprimer une feuille comportant des dates en colonne B à partir de la ligne 3 en ne laissant apparaître à l'impression que les lignes comprises entre 2 dates (incluses) prédéfinies au moyen d'un formulaire, et les colonnes B à I,, le tableau étant trié par ordre croissant de ces dates, il n'aurait pas été besoin de poser des questions pour enquêter sur ce que tu voulais faire.

Il reste d'ailleurs à confirmer qu'il s'agit bien de cela et que toutes les informations ou particularités dont il conviendra de tenir compte ont bien été exprimées.

Pour ma part, je suis absent pour la journée et repasserai en soirée voir où l'on en est...

Cordialement.

Bonjour ,

Merci de votre patience, je répond à ériiic, le filtre chronologique pourrait faire l'affaire mais il faudrait définir une zone d'impression manuellement et moi je recherche plutôt une automatisation de la zone d'impression car les personnes qui doivent se servir de se tableau ne sont absolument pas concernés par l'informatique.

Pour Mferrand, vous avez tout bien compris c'est exactement mon souhait et donc si vous avez encore un peu de patience pour vous pencher sur mon problème je vous en serais reconnaissant.

Merci par avance

Bonjour,

le filtre chronologique pourrait faire l'affaire mais il faudrait définir une zone d'impression manuellement

Pouquoi faire une zone d'impression ? Seules les lignes filtrées seront imprimées.

car les personnes qui doivent se servir de se tableau ne sont absolument pas concernés par l'informatique.

Faut pas exagérer. Faire 2 clics n'est pas de l'informatique et est à la portée d'un enfant de 5 ans une fois qu'on lui a montré.

eric

Bonjour,

En Fait le tableau complet fait 27 colonnes mais le fichier joins ne comprend que les colonnes à imprimer. Merci de vos réponses , c'est vrai que définir une zone d'impression c'est pas la mer à boire.

Ah ben si tu ne dis que la moitié des choses...

Tu peux sélectionner les colonnes pour définir (peut-être une fois pour toute) la zone d'impression et qu'après ils filtrent avec les fonctionnalités d'excel.

Je pars du principe que plus les gens en connaissent, plus c'est bénéfique pour tout le monde.

eric

Bonjour,

Avec un peu de retard, une version 'automatisée', sachant qu'elle n'apporte pas spécialement de gain par rapport à l'impression manuelle, le choix des dates dans le Userform est à peu équivalent au filtrage (d'autant que le programme utilise les dates pour filtrer !)

Petite modification par rapoort à ton Userform initial : les TextBox sont verrouillés et le choix des dates se fait au moyen de SpinButtons, à l'ouverture les dates sont initialisés sur la plus ancienne et la plus récente (après tri du tableau sur la colonne B).

Le bouton Impression du Userform filtre sur les dates choisies et lance l'impression. L'affichage de l'aperçu est mis juste pour tester sans avoir à imprimer (supprimer l'argument de PrintOut pour imprimer directement).

Bouton Imprimer sur la feuille, pour lancer la procédure.

NB- Les dates sont stockées dans des variables de type entier long (et non date), ce qui évite les inversions mois-jour auxquelles se livre fréquemment VBA...

Cordialement.

Bonjour MFerrand,

ton fichier n'a pas suivi.

eric

Ah ! Pourtant il m'avait bien semblé... Merci. Je remets.

De ma faute ! Pas vu qu'avec le code cela le faisait basculer au-dessus de 300 ko.

A+

118toutoune-essai.zip (93.49 Ko)

Bonjour,

Merci pour le fichier qui correspond parfaitement à mes attentes. Sans abuser de votre gentillesse pouvez-vous m’aider à résoudre un problème, votre fichier marche très bien, mais quand je veux transposer le code et le formulaire sur le vrai tableau, au moment d’imprimer un message erreur 424 apparaît et le débogage s’arrête sur:

Sub imprimer ()

Facture.Show

Unload Facture

Encore merci de bien vouloir m'aider.

Je suppose que tu as nommé ton Userform Facture...

Si l'erreur se produit sur Show, c'est que le Userform ne peut pas s'initialiser.

Qu'est-ce qui peut différer sur ton fichier par rapport au modèle ?

Protection peut-être ?

Si c'est le cas :

Sub imprimer ()
   ActiveSheet.Unprotect "motdepasseéventuel"
   Facture.Show
   ActiveSheet.Protect "motdepasseéventuel"
   Unload Facture
End Sub

Re bonjour

J’ai essayé votre solution, mais rien ni fait, si vous êtes d’accord je pourrais peut être vous envoyer le fichier original en message privé.

OK !

Rechercher des sujets similaires à "imprimer vba fonction dates"