Intégrer Macro SaveAsPDF
#1
Débutant XLPages

Inscription: 03/11/2009
De 78

Messages: 13

Système d'exploitation:
PC
Version Excel utilisée:
excel 2007
Posté le : 03-11-2009 18h08
Bonjour,
Pour mon activitée professionnelle j'ai créer mon propre devis avec quelques interactions simples.
Je souhaiterais mettre sur ma feuille principale un bouton avec comme fonction, une fois cliquer de sauvegarder ce document ( la zone délimité, le devis) en format PDF sur mon Bureau de l'ordinateur et éventuellement, cela serait mieux de sauvegarder (en PDF) et expédier par mail.
Malgré quelques notions en Excel je suis perdu avec VBA, je sais que c'est possible, mais je sais pas comment.
Ci-joint mon devis pour analyse et compréhension.
Votre aide me serait très utile, en vous remerciant d'avance.
Cordialement
Antonio
Pièce jointe:
xlsx Futur Devis Pro.xlsx   [ Taille: 35.09 Ko - Téléchargements: 1148 ]
Hors Ligne
Rapport   Haut 

Re: Intégrer Macro SaveAsPDF
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 03-11-2009 19h40
Bonsoir Antoniomiguel, bienvenue sur XLpages.com

Citation :
Antoniomiguel a écrit :
...Je souhaiterais mettre sur ma feuille principale un bouton avec comme fonction, une fois cliquer de sauvegarder ce document ( la zone délimité, le devis) en format PDF sur mon Bureau de l'ordinateur...

Tu trouveras ci-joint une version de ton fichier répondant, je pense, à cette première demande.

J'ai utilisé un bouton ActiveX inséré sur la feuille "Devis" et dont le code VBA est le suivant :
DANS LE MODULE DE CODE DE LA FEUILLE "Devis"
Private Sub btnPDF_Click()
'myDearFriend!  -  www.mdf-xlpages.com
Dim Chemin As String
    'Créer le fichier PDF sur le bureau Windows avec le numéro de devis comme titre
    With Sheets("Devis")
        Chemin = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\Devis " & .Range("C22").Text & ".pdf"
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
            IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End With
End Sub

Pour l'envoi du document, quel client Mail utilises-tu ? Outlook ?

(je ne suis pas un grand spécialiste de ce type de procédure, mais si tu utilises Outlook, je devrais sans doute pouvoir te proposer une solution)

Cordialement,
Pièce jointe:
zip PourAntoniomiguel.zip   [ Taille: 43.67 Ko - Téléchargements: 1373 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Intégrer Macro SaveAsPDF
#3
Débutant XLPages

Inscription: 03/11/2009
De 78

Messages: 13

Système d'exploitation:
PC
Version Excel utilisée:
excel 2007
Posté le : 03-11-2009 23h59
Sincérement, je suis en admiration par la réactivité de votre réponse, je ne l'ai pas encore essayer, mais le geste me fascine davantage.
Je vous tiens au courant et je ferais tout le nécéssaire pour faire de votre site un lieu d'excellence.
Sinon oui j'utilise Outlook comme mail.

Je vais essayer votre proposition, merci d'avance.
Cordialement.
Antonio
Hors Ligne
Rapport   Haut 

Re: Intégrer Macro SaveAsPDF
#4
Débutant XLPages

Inscription: 03/11/2009
De 78

Messages: 13

Système d'exploitation:
PC
Version Excel utilisée:
excel 2007
Posté le : 04-11-2009 00h22
Bonsoir Didier,
Encore une fois merci pour ton aide.
J'ai ouvert le classeur, cliquer sur le bouton et malheureusement il me renvoye le message suivant:

Option Explicit

Private Sub btnPDF_Click()

'myDearFriend! - www.mdf-xlpages.com

Dim Chemin As String

'Créer le fichier PDF sur le bureau Windows avec le numéro de devis comme titre

With Sheets("Devis")

Chemin = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\Devis " & .Range("C22").Text & ".pdf"

ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _

IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False

End With

End Sub

Sinon pour moi c'est super , c'est déjà entrevoir les futurs devis plus sereinnement.
Je te renvoye le dossier Excel au cas ou.Merci encore.
Cordialement.

Pièce jointe:
xlsm Futur Devis Pro.xlsm   [ Taille: 48.19 Ko - Téléchargements: 813 ]
Hors Ligne
Rapport   Haut 

Re: Intégrer Macro SaveAsPDF
#5
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 04-11-2009 00h41
Re,

Question Antoniomiguel : sur ta version XL2007, dans l'option Enregistrer sous, as-tu bien l'option PDF ou XPS ?



Si tel n'est pas le cas, c'est que tes applications Microsoft ne sont pas à jour. Je te conseille de lire et mettre en pratique ce qui est indiqué sous ce lien : Générer un document PDF avec Excel 2007 du site Vulgarisation-informatique.com.

Si le problème est ainsi réglé, je te fournirai (demain car il se fait tard) une solution pour l'envoi.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Intégrer Macro SaveAsPDF
#6
Débutant XLPages

Inscription: 03/11/2009
De 78

Messages: 13

Système d'exploitation:
PC
Version Excel utilisée:
excel 2007
Posté le : 04-11-2009 00h45

Didier,
La bonne nouvelle c'est que j'ai réussi à avoir sur mon bureau deux Devis en format PDF exactement comme prévu, faut juste que je recadre la position de l'adresse Client pour avoir un devis impeccable.

Au bout du 3° essai je reçois un rectangle qui m'indique
"Erreur d'exécution "1004" Document non enregistré. Le document est peut être ouvert ou une erreur s'est produite lors de l'enregistrement.

Avec en dessous 4 propositions, dont 3 disponibles
Continuer, Fin; Débogage; Aide

Merci encore de ton aide
Antonio


Pièce jointe:
xlsm Futur Devis Pro.xlsm   [ Taille: 47.46 Ko - Téléchargements: 803 ]
Hors Ligne
Rapport   Haut 

Re: Intégrer Macro SaveAsPDF
#7
Débutant XLPages

Inscription: 03/11/2009
De 78

Messages: 13

Système d'exploitation:
PC
Version Excel utilisée:
excel 2007
Posté le : 04-11-2009 00h52
Désoler, j'ai pas vu l'heure, j'ai exactement ce format là PDF ou XPS.
Merci encore à demain.

Super ton site et ton dévouement.

Bravo

Antonio
Hors Ligne
Rapport   Haut 

Re: Intégrer Macro SaveAsPDF
#8
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 04-11-2009 00h58
Je ne peux reproduire le problème que tu décris (après plusieurs essais consécutifs)...

En premier lieu, en faisant Débogage dans la boite d'alerte, regarde si le code s'arrête toujours au même endroit.
Ensuite, il faudrait que tu arrives à cerner le pourquoi de cette réaction bloquante à retardement... (peut être que la sauvegarde du dit document directement sur le bureau Windows n'est pas une si bonne idée que ça et peut être que ton problème n'est pas étranger à ça...)
Indique moi également si tu es sous XP ou Vista.

A demain.

Cordialement,
EDITION:
Autre piste: si tu crées un .pdf avec un numéro X de devis, et que tu l'ouvres dans Acrobat Reader pour le visualiser (sans le refermer ensuite). En relançant la macro (par le bouton) sans changer ce numéro de devis déjà utilisé, la macro plantera car ton document, étant déjà ouvert, ne peut être recréé.



Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Intégrer Macro SaveAsPDF
#9
Débutant XLPages

Inscription: 03/11/2009
De 78

Messages: 13

Système d'exploitation:
PC
Version Excel utilisée:
excel 2007
Posté le : 05-11-2009 10h13
Salut Didier,
Encore une fois merci, moi pour l'instant j'abandonne, j'ai beau tourner dans tout les sens, je n'arrive pas à créer un devis automatiser.
Il faudrait que je trouve un système simple afin d'automatiser certaines tâches et de sortir mon devis.
J'ai 12 familles de services, dans chaque famille plusieurs offres de prestations.
Je souhaiterais par exemple quand j'ai un chantier avec au moins 4 familles différentes, pouvoir ouvrir chaque famille via un formulaire ou autre, cliquez sur l'offre ou la prestation et que elle s'affiche sur une ligne de mon devis et ainsi de suite.
Je t'envoye à nouveau mon modèle type, tu comprendras vite, je t'nvoye aussi un devis déjà rempli( onglet 2 - Devis). J'en ai vraiment besoin, pourrais tu m'aider stp. Je suis prêt à payer pour avoir un truc fonctionnel.
Tout les logiciels déjàs formatés comme Ciel ou autres ne me correspondent pas et j'ai juste besoin de faire des devis.
Merci d'avance.
Hors Ligne
Rapport   Haut 

Re: Intégrer Macro SaveAsPDF
#10
Accro XLPages

Inscription: 23/05/2008
De La Varenne Saint-Hilaire

Messages: 356

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 05-11-2009 15h55
Bonjour Antoniomiguel, bonjour Didier, le forum.

Je me permets de m'immiscer dans la conversation en repartant du fichier que tu as déposé la dernière fois, le dernier n'étant pas passé.

J'ai modifié certaines choses, peut-être cette proposition (qui reste largement perfectible) pourra-t-elle t'aider un peu.

Tu verras que j'ai éliminé les onglets pour regrouper les lots dans une seule feuille nommée "Lots".

J'ai également modifié tes zones nommées, puis éliminé le haut de ton devis où tu avais inscrit toutes tes listes déroulantes car (et ça n'engage que moi) je trouvais plus judicieux de les mettre directement dans le corps du devis.

J'ai considéré que les lignes fonctionnaient par deux, la première ligne indiquant le libellé du lot (par exemple Lot peintures), et la ligne immédiatement en dessous indiquant les différents choix possibles en fonction du choix de la ligne du dessus, ( donc par exemple uniquement les items faisant partie du lot peinture).

Pour la première ligne, la formule utilisée dans la source de validation est :

=ChoixLot
ChoixLot est une zone nommée, en dynamique, afin de pouvoir fonctionner même si tu rajoutes plus tard d'autres lots.
La formule de cette zone nommée est:

=DECALER(Lots!$A$2;;;NBVAL(Lots!$A:$A)-1;)
Tu peux consulter l'article expliquant comment nommer une zone dynamique à l'aide de DECALER() et NBVAL() ICI

Pour la ligne suivante, j'ai placé une liste de validation dont le contenu varie en fonction de ce qui a été choisi sur la ligne précédente, le menu pour y accéder est le même que ci-dessus soit Données/Validation de données/autoriser "Liste", (attention il faut au préalable retirer la fusion de cellules) tu y trouveras la formule suivante:

=DECALER(INDIRECT(SUBSTITUE($B18;" ";"_"));1;;NBVAL(INDIRECT(SUBSTITUE($B18;" ";"_")))-1)
Le principe est exactement celui qui est expliqué dans le lien que je viens de t'indiquer, mais avec en plus l'aide des fonctions INDIRECT() et SUBSTITUE(), car dans le nom des zones nommées les espaces ont été remplacés par des tirets (sans quoi ça ne fonctionnerait pas les noms des zones n'acceptant pas les espaces)

Une fois ceci fait, tu te promènes dans ton devis, en choisissant ligne 1 ton lot, ligne 2 ton item, ligne 3 un autre lot, etc ...


Pour ce qui est des unités, toutes les données étant regroupées dans l'onglet "Lots"
j'utilise cette formule pour les retrouver:
=SI(B18="";"";RECHERCHEV(B19;INDIRECT("Lots!"&CAR(65+EQUIV($B18;Lots!$1:$1;0)-1)&":"&CAR(65+EQUIV($B18;Lots!$1:$1;0)));2;FAUX))
un SI() et un RECHERCHEV() comme tu l'avais fait, mais aussi la fonction EQUIV() pour rechercher le numéro de colonne, puis la fonction CAR() pour retrouver la lettre correspondant à ce numéro de colonne, le tout imbriqué dans la fonction INDIRECT() pour pouvoir lire tout ça.
Tu peux bien sûr consulter la précieuse aide Excel sur ces fonctions, mais tu trouveras également un article ICI et un fichier d'exercices sur la fonction CAR() ICIqui sont assez proches du problème traité et qui pourront sans doute t'aider.

La formule de la colonne prix est la même, simplement avec une colonne de plus dans le RECHERCHEV().

Voilà Antoniomiguel, je ne sais si cela s'approche de ce que tu voulais faire mais peut-être y trouveras-tu une petite source d'inspiration pour t'aider.

Bon courage pour ton travail et à bientôt,

mth
Pièce jointe:
zip Futur_Devis_Pro 2.zip   [ Taille: 28.45 Ko - Téléchargements: 1028 ]
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes