Macro-automatisation PDF factures

Bonjour,

Grâce au forum, et à l'aide apportée, j'ai réalisé (c'est beaucoup bricolé je pense) un système de suivi des inscriptions à un centre de loisir associatif, qui permet aussi à la directrice d'éditer des factures.

Là pour le moment, il est nécessaire pour utiliser le classeur :

  • Remplir dans la feuille 'mois' les participations en renseignant à chaque date 1, 2, 3 en fonction du type de prestation
  • Les prestations et leurs coûts sont détaillés dans la feuille 'tableau tarifs modulés' (il y a plusieurs tranches en fonction des revenus des familles)

Pour éditer les factures, une à une, il faut :

  • changer la cellule cible en (I,6) dans la feuille 'Facture mois'
  • donner une référence à cette facture en (c,13)

Mon problème (et j'essaie avec les macros découvertes sur le site, mais encore sans résultat), c'est trouver comment automatiser l'édition des factures.

Je joints le fichier en question pour plus de clarté. Merci par avance !

167essai.xlsx (78.37 Ko)

Bonsoir Aleck04,

Un fichier joint à adapter

Cdt

Henri

224aleck04-v1.xlsm (70.00 Ko)

Bonsoir,

Merci de ta réponse. Je teste et chez moi cela me demande : Etendue impression imprimer tout ?

Si oui -> erreur d'exécution 424 objet requis

Si non -> impression d'une seule facture.

Merci encore !


En fait cela me va très bien déjà !

Je viens de comprendre ce que tu proposais ... choisir la facture a éditer dans la liste, puis cliquer sur imprimer. Ta macro automatise la sélection de la zone d'impression. Cela accélère déjà bien la tâche.

Est-il possible qu'une macro automatise : "je choisis "essai1" + imprimer factures + je choisis "essai2"+imprimer facture ...." ?

Bonjour Aleck04

La macro Imprimer permet soit d'éditer la totalité des factures du mois (en répondant OUI) et les numéros de facture s'incrémente de 1 (voir cellule O1 à mettre à zéro au départ), soit d'éditer à la demande en sélectionnant en I6 (en répondant NON).

ActiveWindow.SelectedSheets.PrintPreview 'Aperçu avant impression
           'ActiveWindow.SelectedSheets.PrintOut '

Modifier le code du module1 ci-dessus pour désactiver l'aperçu avant impression et activer la 2ème option.

Mettre en C13 la formule ="/" & J2

Cdt

Henri

Bonjour Henri,

Je vous remercie encore pour l'intérêt porté à mon problème.

Si je comprends bien (je découvre tout juste la partie macro, j'en suis aux tous premiers exercices du site...), il me faut supprimer cette partie du module1 pour que "Oui" fonctionne. (J'ai essayé sans résultat)

ActiveWindow.SelectedSheets.PrintPreview 'Aperçu avant impression
          'ActiveWindow.SelectedSheets.PrintOut '

Concernant

Mettre en C13 la formule ="/" & J2

, je comprends qu'il s'agit de numéroter les factures, il faut la rajouter où cette formule ? Dans la macro ?

Encore mille merci,

Cdt,

Alexandre

Bonjour Alexandre,

Voici le fichier avec la bonne macro. J'ai ajouté une colonne AS dans la feuille "Avril" correspondant aux N°s de facture.

A tester.

Réponse OUI= Imprimer la totalité des factures présentes dans Avril

Réponse NON= Imprimer la facture à l'écran en choisissant le nom en cellule I6(menu déroulant)

Bon courage

Henri

104aleck04-v1b.xlsm (72.84 Ko)

Merci Henri,

J'ai regardé la Macro pour essayer de la comprendre et dans l'ensemble je peux la comprendre (pas encore le faire ...).

Là où ça se complique c'est là :

 imprimer tout
        Application.ScreenUpdating = False
        savSelection = [I6]
        For Each c In [N_P] 'Nom et Prénom
            [I6] = c.Value
           ' ActiveWindow.SelectedSheets.PrintPreview 'Aperçu avant impression
           ActiveWindow.SelectedSheets.PrintOut 'Imprimer la totalité des factures
        Next cL

A ce niveau d'imprimer tout, j'ai une erreur quand je demande à imprimer toutes les factures du mois. (cf. capture d'écran)

Quand je choisis "débogage" ça renvoie à :

 For Each c In [N_P] 'Nom et Prénom

Je m'y prends sans doute mal quelque part, mais où ?

Merci,

Alexandre

capture d ecran 2015 04 07 a 22 26 52

Bonjour,

Non tout est OK pour moi qui utilise un PC, mais toi tu dois travailler avec un MAC , et c'est ça qui pose problème.

Je vais modifier le fichier en conséquence, et j'ajouterai d'autres nouveautés.

Patience et à plus tard,

Henri

Bonsoir Alexandre,

Voici une autre approche avec une page d'accueil comprenant 4 boutons

1. Enregistrement des données principales par formulaire dans la feuille "Mois"

2. Prise en compte des jours de présence et des codes (1, 2 ou 3) dans la feuille "Mois"

3. Accès à la feuille "Facture Mois" avec possibilité d'imprimer comme l'autre version. Voir si maintenant ça fonctionne. J'ai remplacé N_P par Dénomination.

4. Changement de mois. Le mois sauvegardé se nomme par ex "Mois_04" pour avril et une nouvelle feuille Mois est créée, prête pour le nouveau mois.

Merci de me tenir au courant

Cdt

Henri

142aleck04-v2.xlsm (74.95 Ko)

Bonjour,

Whaou ! Quel travail Henri. Merci beaucoup.

Là ça devient très compliqué, pour moi. J'essaierai sur PC demain (là je n'en ai pas chez moi).

J'espère bien comprendre la "structure" de pouvoir l'expliquer aux usagers, qui viennent avec moi d'apprendre à faire des sommes et des tableaux avec excel... Formation domino, encore bravo pour ça !

Je vous tiens au courant.

Cdt

Alexandre

Bonjour,

J'ai regardé sur PC le fichier envoyé. C'est exactement (en beaucoup mieux) ce que je voulais créer. Sur pc ça fonctionne parfaitement. Les personnes qui travailleront dessus sont toutes sur PC, dont l'incompatibilité ne devrait pas être un problème.

Quel travail réalisé Henri ! Bravo pour ce partage !

J'ai encore beaucoup de chose à apprendre avant d'arriver à un tel résultat.

Juste par curiosité, pourquoi y'a t-il des incompatibilités sur les macros entre PC et MAC alors que l'on travaille sur excel ?

bonjour Alexandre et le forum,

Voici une autre idée pour continuer dans ma lancée.

La feuille Mois est toujours le Mois en cours.

Dès l'impression de toutes les factures du Mois effectuée, la date de facture est renseignée en colonne AT.

Possibilité de faire un suivi des paiements par la touche "Suivi des paiements" en choisissant le nom du Mois (il faut que l'onglet existe). Si le paiement est effectué, renseigner la date qui alimentera la colonne AU.

En fin d'année, sauvegarde du fichier sous la forme "Gestion_2015" et création d'un nouveau fichier "Gestion_2016" vierge.

A découvrir et me faire remonter les anomalies constatées.

Cdt

Bon WE

Henri

38aleck04-v3.xlsm (119.21 Ko)

Bonjour,

Les touches E, R, I, M, C de mon clavier commencent à s'user à force d'écrire merci !

J'ai regardé (sur pc, mac ça fonctionne pas) le nouveau document, qui devient là un logiciel tant il dispose de fonctions !

Tout marche très bien ! C'est plus que parfait !

Des précisions :

-Je ne trouve plus la feuille 'tableau tarifs modulés' alors que les cellules y faisant référence fonctionnent ?

-(Il y avait une petite coquille dans la facture qui comptait une trop grande plage, comptant le "1" du n° fact)

=NB.SI(DECALER(MOIS!$B$1;EQUIV($I$6;MOIS!$B$2:$B$100;0);11;1;[b]31[/b]);$A24)

-Aussi, je ne comprends pas à quoi sert dans 'MOIS, en AR de compte le nombre de 3 ?

=NB.SI(M4:AQ4;3)

Merci beaucoup,

Alexandre

Bonjour Alexandre,

Je ne suis pas à la maison avant mercredi.

Je regarderai et te répondrai plus tard.

Bonne semaine.

Henri

Bonsoir Alexandre,

Désolé pour le retard mais je me suis absenté un peu.

Voici une nouvelle version qui a l'air de bien fonctionner (sauf sans doute avec MAC).

La feuille "Tableau Tarifs Modulés" est simplement masquée. Pour la démasquer, clic droit sur un onglet et afficher puis OK.

La colonne AR de la feuille MOIS est présente depuis le début avec ta 1ére version. C'est donc toi qui l'a initialisée. Le nombre 3 indique tout simplement combien de fois dans le mois l'enfant a été en demi-journée+repas.

Le suivi des paiements est modifié en ne donnant accès qu'aux mois écoulés.

Bonne Découverte avec le mois d'avril

Cdt

Henri

28gestion-2015.xlsm (95.27 Ko)

Bravo Henri pour ce travail fantastique, qui j'espère profitera à d'autre usagers du forum.

Cela va beaucoup plus loin que mes attentes et j'espère finir par comprendre comment produire ce type de fichier !

D'énormes remerciements en tout cas Henri !

Admirativement,

Alexandre

Merci Alexandre mais j'ai pris plaisir à te rendre service.

Le titre de ton fil contient aussi "PDF Factures"

Pour le plaisir encore, voici la version Gestion_2015b qui propose la solution de sauvegarder les factures en format pdf.

Un nouveau bouton dans l'onglet "Facture Mois" permet cette solution. Mais auparavant il faudra créer dans le répertoire où se trouve le fichier un sous-répertoire que j'ai nommé "Factures". Même principe que l'impression: soit la facture à l'écran, soit la totalité des factures.

Les factures sont sauvegardées sous la forme : NOM PRENOM_AAAA_M_NNN

AAAA=Année

M=Mois

NNN=N° de facture

Une nouvelle page d'accueil pour le fun

Bon WE et bon courage

Cdt

Henri

42gestion-2015b.xlsm (105.98 Ko)

Bonsoir et bonne fête Alexandre,

Ce fil est clos mais je me suis aperçu que la macro "Changer-A" ne collait pas.

Aussi voici une nouvelle version.

J'ai modifié certaines lignes de la macro "Imprimer" pour voir si MAC acceptait cette nouvelle macro. Si c'est le cas il faudrait faire de même avec Imprimer_PDF.

cdt

Henri

45gestion-2015t.xlsm (92.60 Ko)

Merci pour l'(les) attention(s) Henri !

Quel professionnalisme. Je n'avais pas testé la fonction changer A ...

Sur Mac, l'impression fonctionne maintenant sans aucun problème ! Bravo.

Tout mes remerciements,

Cdt,

Alexandre

Bonjour Alexandre,

Merci de me confirmer que la manip fonctionne bien avec MAC.

Il suffit de faire la même chose avec la macro suivante en faisant un copier-coller dans le module2.

Public Sub ImprimerPDF()
    Dim wsd As Worksheet
    Dim rng, c As Range, choix As Long, Repertoire, savSelection As String
    Set wsd = Worksheets("Facture Mois")
    Set rng = wsd.Range("A1:J50") 'délimiter la sauvegarde
    S_Rep = "Factures" 'Sous répertoire à créer éventuellement
    Repertoire = ThisWorkbook.Path & Application.PathSeparator & S_Rep & Application.PathSeparator 'répertoire à adapter
    choix = MsgBox("Imprimer tout ?", vbQuestion + vbYesNoCancel + vbDefaultButton2, "Etendue impression")
    If choix = vbCancel Then Exit Sub
    If choix = vbNo Then
        ' sauvegarde de la feuille en PDF
       ' rng.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Repertoire & [L6] & "_" & [J2] & ".pdf"
        rng.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Repertoire & Range("L6") & "_" & Range("J2") & ".pdf"

    Else
        ' Sauvegarder tout en PPF
        Application.ScreenUpdating = False
        'savSelection = [L6]
        savSelection = Range("L6")
       ' For Each c In [Dénomination]
       For Each c In Range("Dénomination")
          '  [L6] = c.Value
          Range("L6") = c.Value
           ' rng.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Repertoire & [L6] & "_" & [J2] & ".pdf"
           rng.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Repertoire & Range("L6") & "_" & Range("J2") & ".pdf"
        Next c
    End If
     Sheets("Accueil").Select
    MsgBox "Enregistrement terminé"
End Sub

Content de t'avoir rendu service.

Cdt

Henri

Rechercher des sujets similaires à "macro automatisation pdf factures"