Microsoft 365 Macro enregistrement auto pdf et excel

chris63*

XLDnaute Nouveau
Bonjour à tous !

Toujours dans mes recherches d'automatiser le plus possible le traitement de mes factures, devis...
Pour l'incrémentation auto du n° et de l'historique c'est bon merci à vous ^^)

Je souhaiterais maintenant créer une macro me permettant d'enregistrer automatiquement mes factures sous format pdf et excel
J'ai essayé avec l'enregistreur de macro mais ça ne fonctionne pas.

Ça me donne ça :
Regarde la pièce jointe 1103772


Et forcément, quand je veux enregistrer, j'ai ce message d'erreur :

Regarde la pièce jointe 1103770

J'ai essayé en remplaçant FAC2021079-MICKEY-27-04-21 par les adresses de cellules, mais pas mieux...

Pour résumer, j'aimerais, à partir de mon modèle de facture :
un enregistrement auto (soit dans la même macro, soit via un autre bouton) sous format excel et pdf (si c'est un peu lourd, au moins sous excel)

Merci d'avance pour votre aide :)

Chrislaine
 

Pièces jointes

  • modele facture exemple.xlsm
    63.1 KB · Affichages: 22

kiki29

XLDnaute Barbatruc
Salut, en adaptant dans cette procédure les noms et chemins de fichiers à ton contexte
VB:
Option Explicit

Sub Save_XLSM_PDF()
Dim sChemin As String, FSO As Object, sNomFichier As String
Dim sNomFichierXLSM As String, sNomFichierPDF As String

    Application.StatusBar = ""
    Application.ScreenUpdating = False
    Set FSO = CreateObject("Scripting.FileSystemObject")
    sNomFichier = FSO.GetBaseName(ThisWorkbook.Name)
    Set FSO = Nothing

    sChemin = ThisWorkbook.Path & "\" & "Test"
    sNomFichierXLSM = sNomFichier & ".xlsm"
    sNomFichierPDF = sNomFichier & ".pdf"

    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=sChemin & "\" & sNomFichierXLSM, _
                          FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
                          CreateBackup:=False

    Feuil1.ExportAsFixedFormat Type:=xlTypePDF, _
                               Filename:=sChemin & "\" & sNomFichierPDF, _
                               Quality:=xlQualityStandard, _
                               IncludeDocProperties:=True, _
                               IgnorePrintAreas:=False, _
                               OpenAfterPublish:=False

    Application.DisplayAlerts = True

    With Feuil1
        .Select
        .Range("E1").Select
    End With
End Sub
 
Dernière édition:

chris63*

XLDnaute Nouveau
Bonjour kiki29,

Merci pour ta réponse :)

Malheureusement, je suis vraiment une buse en VBA et pour moi "en adaptant dans cette procédure les noms et chemins de fichiers à ton contexte" c'est du chinois 🙃

J'imagine que le chemin de mon fichier facture c'est ça ? :
F:\CHRISLAINE\FACTURES CLIENTS-FOURNISSEURS\FACTURES CLIENTS\modele facture exemple.xlsm

et celui de destination pour l'enregistrement celui-ci ? :
F:\chrislaine\factures clients-fournisseurs\factures clients\2021ex


Donc, je remplace "sChemin" par : F:\chrislaine\factures clients-fournisseurs\factures clients\2021ex ?
Et "sNomFichier" par : 2021ex
??

(désolée, je viens de voir que mes PJ du message#1 n'étaient pas passées...)

Merci d'avance

Bonne journée

Chris
 

chris63*

XLDnaute Nouveau
Super !!! (il faut que j’appuie plusieurs fois sur le bouton mais ça fonctionne ^^)

Par contre je ne comprends pas où je dois changer le" chemin de destination" .
Pour l'instant, mon modele facture exemple est là : F:\CHRISLAINE\FACTURES CLIENTS-FOURNISSEURS\FACTURES CLIENTS
Et je souhaiterais enregistrer là : F:\CHRISLAINE\FACTURES CLIENTS-FOURNISSEURS\FACTURES CLIENTS\2021
Est-ce-que c'est ça qu'on appelle le "chemin" ? et si oui, je l'intègre où dans la macro ? 🤔

(c'est le chemin pour l'instant c'est là car je bosse sur mon ordi perso et une clé, mais la semaine prochaine, on reçoit le matos informatique et on passe en gestion partagée des données avec une arborescence différente, donc j'imagine qu'il faudra que je change les chemins de mes macros... 🤪)

Merci :)
Chris
 

Phil69970

XLDnaute Barbatruc
@chris63*

(il faut que j’appuie plusieurs fois sur le bouton mais ça fonctionne ^^)
Normalement 1 seul clic fonctionne mais prends tu le bon bouton ?
1620834278031.png


Pour le chemin la macro "regarde" ou le fichier excel de tes factures se trouve et à partir de la il crée plusieurs dossiers sauf si il existe déjà.
1620834525089.png

Donc tu auras :
Dossier Factures
==> 2021 (Il a pris les 4 chiffres qui forme l'année de ton N° de facture)
==> Nom du client de ta facture
Et ensuite nom du fichier ==> N° de facture.pdf

1620834833378.png


Il faut bien avoir à l'esprit que le point de départ c'est l'endroit ou se situe ton fichier excel.

Exemple pour moi j'ai téléchargé le fichier et je l'ai lancé depuis le répertoire temp

1620835043916.png

puis j'ai cliqué sur le bouton "Facture PDF" et à la fin j'ai eu le message expliquant ou est le pdf
Il a bien crée 3 dossiers et le fichier pdf dans le dernier

1620835313174.png

@Phil69970
 
Dernière édition:

chris63*

XLDnaute Nouveau
@Phil69970
Normalement 1 seul clic fonctionne mais prends tu le bon bouton ?
Oui, ça fonctionne maintenant (ma souris est vieille et capricieuse, c'est peut être ça^^)

Pour le chemin la macro "regarde" ou le fichier excel de tes factures se trouve et à partir de la il crée plusieurs dossiers sauf si il existe déjà.
1620834525089.png

Donc tu auras :
Dossier Factures
==> 2021 (Il a pris les 4 chiffres qui forme l'année de ton N° de facture)
==> Nom du client de ta facture
Et ensuite nom du fichier ==> N° de facture.pdf

1620834833378.png


Il faut bien avoir à l'esprit que le point de départ c'est l'endroit ou se situe ton fichier excel.
Ok, je crois que j'ai compris maintenant 😊

Effectivement, je cherchais l'enregistrement au mauvais endroit..
il est là :

1620836776390.png


Donc, en fait, ça me crée un dossier Factures,un sous dossier client dans lequel je trouve mon fichier...
Donc, si j'ai bien compris (il faut m'expliquer longtemps :oops:) si je veux que mon enregistrement soit dans mon dossier 2021 qui existe déjà, il faut que je mette mon modele facture exemple dans mon dossier 2021 existant ?

1620837362361.png


Merci
Chris
 

Phil69970

XLDnaute Barbatruc
@chris63*

Donc, en fait, ça me crée un dossier Factures,un sous dossier client dans lequel je trouve mon fichier...
Euh 🤔 non pas tout a fait.....

1)Le fichier de départ est ici dans le dossier Temp ==> modele facture exemple V2.xlsm
2)Tu le lances et tu cliques sur le bouton Factures PDF

3) 3 dossiers sont crée si il n'existe pas ....
----a)Dossier factures
----b)Les 4 chiffres qui forme l'année de ton N° de facture ici 2021
----c)Nom du client de ta facture ici POUM

1620840430998.png

4)Pour le client suivant tu auras donc :
----a)Dossier factures (déjà crée)
----b)Les 4 chiffres qui forme l'année de ton N° de facture ici 2021(déjà crée)
----c)Nom du nouveau client puisqu'il n'existe pas encore de dossier à ce nom

---------d)Et pour l'exemple j'ai fait 3 factures en pdf pour ce client (2021080, 2021081, 2021082)

1620841605405.png



Si tu veux autre chose il faut le dossier de départ et à partir de là on crée les dossiers que l'on veut puis le pdf en bout de course.
Donc dossier de ton fichier de départ puis arborescence que tu veux mais sous le dossier de départ.

As tu compris le principe ?
Je peux faire avec des autres noms de dossier mais à condition qu'il soit en cascade.

Il est possible de faire autrement mais c'est plus compliqué alors que des dossiers en cascade c'est plus facile....désolé;)

@Phil69970
 

chris63*

XLDnaute Nouveau
@chris63*


Euh 🤔 non pas tout a fait.....

1)Le fichier de départ est ici dans le dossier Temp ==> modele facture exemple V2.xlsm
2)Tu le lances et tu cliques sur le bouton Factures PDF

3) 3 dossiers sont crée si il n'existe pas ....
----a)Dossier factures
----b)Les 4 chiffres qui forme l'année de ton N° de facture ici 2021
----c)Nom du client de ta facture ici POUM

Regarde la pièce jointe 1105381
4)Pour le client suivant tu auras donc :
----a)Dossier factures (déjà crée)
----b)Les 4 chiffres qui forme l'année de ton N° de facture ici 2021(déjà crée)
----c)Nom du nouveau client puisqu'il n'existe pas encore de dossier à ce nom

---------d)Et pour l'exemple j'ai fait 3 factures en pdf pour ce client (2021080, 2021081, 2021082)

Regarde la pièce jointe 1105385


Si tu veux autre chose il faut le dossier de départ et à partir de là on crée les dossiers que l'on veut puis le pdf en bout de course.
Donc dossier de ton fichier de départ puis arborescence que tu veux mais sous le dossier de départ.

As tu compris le principe ?
Je peux faire avec des autres noms de dossier mais à condition qu'il soit en cascade.

Il est possible de faire autrement mais c'est plus compliqué alors que des dossiers en cascade c'est plus facile....désolé;)

@Phil69970
Bonjour Phil69970,

Merci pour explication :)

Pour l'instant je vais laisser comme ça, c'est déjà super ! Je ne sais pas du tout comment sera la nouvelle arborescence, donc c'est peut être plus malin d'attendre... j'imagine que je vais avoir d'autres questionnements à ce sujet..
(J'ai acheté VBA pour les nuls..400 pages de lecture sans doute instructive , mais rien ne vaut des explications de pros ! ;-) )

Bonne journée ^^

Chrislaine
 

Discussions similaires

Réponses
2
Affichages
235

Statistiques des forums

Discussions
311 711
Messages
2 081 799
Membres
101 818
dernier inscrit
tiftouf5757