Divers Macro (enregister et envoie par mail)
Résolu/Fermé
Cabrina
Messages postés
248
Date d'inscription
samedi 5 avril 2008
Statut
Membre
Dernière intervention
13 mars 2024
-
5 oct. 2015 à 14:29
Cabrina Messages postés 248 Date d'inscription samedi 5 avril 2008 Statut Membre Dernière intervention 13 mars 2024 - 8 oct. 2015 à 15:58
Cabrina Messages postés 248 Date d'inscription samedi 5 avril 2008 Statut Membre Dernière intervention 13 mars 2024 - 8 oct. 2015 à 15:58
A voir également:
- Divers Macro (enregister et envoie par mail)
- Yahoo mail - Accueil - Mail
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Publipostage mail - Accueil - Word
- Macro word - Guide
- Windows live mail - Télécharger - Mail
4 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
5 oct. 2015 à 14:42
5 oct. 2015 à 14:42
Bonjour,
Tu as oublié de répondre à ce post et en plus tu l'as mal recopié:
https://forums.commentcamarche.net/forum/affich-32597348-enregister-sous
Tu as oublié de répondre à ce post et en plus tu l'as mal recopié:
https://forums.commentcamarche.net/forum/affich-32597348-enregister-sous
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
5 oct. 2015 à 15:25
5 oct. 2015 à 15:25
Le problème c'est que tu as mis toutes les macros bout à bout. C'est pas comme cela que l'on procède. La macro d'enregistrement que je t'avais donné est à mettre dans ThisWorkbook:
Dans ce cas il ne faut pas mettre l'extension pdf.
Pour mettre l'extension pdf, ouvre l'enregistreur de macro et enregistre ton classeur en Pdf, tu auras ta macro
Private Sub Workbook_BeforeClose(Cancel As Boolean) ActiveWorkbook.SaveAs Filename:="C:\Users\DUPMA.MTR\Desktop\Test BL" & Range("A1").Value & ".pdf", _ FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False
Dans ce cas il ne faut pas mettre l'extension pdf.
Pour mettre l'extension pdf, ouvre l'enregistreur de macro et enregistre ton classeur en Pdf, tu auras ta macro
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
5 oct. 2015 à 15:25
5 oct. 2015 à 15:25
j'ai oublié End Sub
Cabrina
Messages postés
248
Date d'inscription
samedi 5 avril 2008
Statut
Membre
Dernière intervention
13 mars 2024
6
5 oct. 2015 à 15:37
5 oct. 2015 à 15:37
J'ai réussi ça marche mais si je veux faire un envoie automatique par mail je le met ou du coup dans "ThisWorkbook" ou dans "Feuil1"
Comment le mettre en forme ?
Existe-il un document pour apprendre à faire des marcos !?!
Comment le mettre en forme ?
Existe-il un document pour apprendre à faire des marcos !?!
Cabrina
Messages postés
248
Date d'inscription
samedi 5 avril 2008
Statut
Membre
Dernière intervention
13 mars 2024
6
5 oct. 2015 à 16:18
5 oct. 2015 à 16:18
Extension c'est bien dans la ligne :
FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
Et je remplace en gras par xlPDF ?
FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
Et je remplace en gras par xlPDF ?
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
Cabrina
Messages postés
248
Date d'inscription
samedi 5 avril 2008
Statut
Membre
Dernière intervention
13 mars 2024
5 oct. 2015 à 18:50
5 oct. 2015 à 18:50
Tu mets ta macro Envoi dans ThisWorkbook et tu l'appelles comme ceci:
Private Sub Workbook_BeforeClose(Cancel As Boolean) ta macro Envoi ta macro enregistrer End Sub Sub envoi() blabla End Sub
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
Cabrina
Messages postés
248
Date d'inscription
samedi 5 avril 2008
Statut
Membre
Dernière intervention
13 mars 2024
5 oct. 2015 à 18:55
5 oct. 2015 à 18:55
Cette extension n'existe pas: xlPDF!!!
La macro d'enregistrement est faite pour un classeur Excel et non un PDF
As-tu fait ta macro avec l'enregistreur pour l'enregistrement en PDF?
La macro d'enregistrement est faite pour un classeur Excel et non un PDF
Private Sub Workbook_BeforeClose(Cancel As Boolean) ActiveWorkbook.SaveAs Filename:="C:\Users\DUPMA.MTR\Desktop\Test BL" & Range("A1").Value & ".xls", _ FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False End Sub
As-tu fait ta macro avec l'enregistreur pour l'enregistrement en PDF?
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
6 oct. 2015 à 11:25
6 oct. 2015 à 11:25
Il ne suffit pas de changer l'extension pour enregistrer en PDF!
Si tu ne veux pas faire l'effort de te servir de l'enregistreur de macro, ce n'est pas moi qui vais le faire.
Je peux corriger la macro que tu vas obtenir avec l'enregistreur à la rigueur pour l'adapter à ton cas.
Il faut faire un petit effort. Si tu te contentes de faire des copier-coller, tu seras vite bloqué.
Sinon tu postes ton classeur sur C-joint en disant ce que tu veux obtenir, il y aura peut-être une âme charitable qui fera le travail pour toi.
Ce n'est pas dans ma conception pour apprendre le vba
Bon courage
Si tu ne veux pas faire l'effort de te servir de l'enregistreur de macro, ce n'est pas moi qui vais le faire.
Je peux corriger la macro que tu vas obtenir avec l'enregistreur à la rigueur pour l'adapter à ton cas.
Il faut faire un petit effort. Si tu te contentes de faire des copier-coller, tu seras vite bloqué.
Sinon tu postes ton classeur sur C-joint en disant ce que tu veux obtenir, il y aura peut-être une âme charitable qui fera le travail pour toi.
Ce n'est pas dans ma conception pour apprendre le vba
Bon courage
Cabrina
Messages postés
248
Date d'inscription
samedi 5 avril 2008
Statut
Membre
Dernière intervention
13 mars 2024
6
6 oct. 2015 à 11:33
6 oct. 2015 à 11:33
Il ne faut pas s'énerver ! Je fais mon possible ce n'est pas mon d 'job !
Si je ne veux pas faire l'effort pourquoi me réponde vous sur ce ton !?!
J'essaye juste de faire ce que mon supérieur me demande, désolé de ne pas être du métier...
Merci tout de même de m'avoir apporté tant de temps pour les conseils que j'ai pu demander, je vais dès maintenant essayer de me dépatouiller dans toute cette merde (pardonné mon expression)
Cdlt,
Si je ne veux pas faire l'effort pourquoi me réponde vous sur ce ton !?!
J'essaye juste de faire ce que mon supérieur me demande, désolé de ne pas être du métier...
Merci tout de même de m'avoir apporté tant de temps pour les conseils que j'ai pu demander, je vais dès maintenant essayer de me dépatouiller dans toute cette merde (pardonné mon expression)
Cdlt,
Cabrina
Messages postés
248
Date d'inscription
samedi 5 avril 2008
Statut
Membre
Dernière intervention
13 mars 2024
6
6 oct. 2015 à 12:29
6 oct. 2015 à 12:29
Si une bonne âme charitable peut m'aider car là je suis perdu !
Ce que je cherche c'est comme dit au-dessus :
"le but de ma macro est de faire simultanément :
- agrémenté mon n° de BL.
- Faire un enregistrer sous en format PDF.
- Faire un envoi par mail de mon PDF.
- Faire une sauvegarde dans mon historique."
Le pivert m'a donné de bons conseils mais je n'arrive pas à le mettre en exécution il doit y avoir quelques choses que je ne comprends pas ou que je n'arrive pas à faire (je ne prends peut-être pas le temps de le faire correctement également je ne sais pas...)
Ci-après mon fichier:
https://www.cjoint.com/c/EJgkyChTYXi
Un grand merci par avance à la personne qui pourra m'aider...
Ce que je cherche c'est comme dit au-dessus :
"le but de ma macro est de faire simultanément :
- agrémenté mon n° de BL.
- Faire un enregistrer sous en format PDF.
- Faire un envoi par mail de mon PDF.
- Faire une sauvegarde dans mon historique."
Le pivert m'a donné de bons conseils mais je n'arrive pas à le mettre en exécution il doit y avoir quelques choses que je ne comprends pas ou que je n'arrive pas à faire (je ne prends peut-être pas le temps de le faire correctement également je ne sais pas...)
Ci-après mon fichier:
https://www.cjoint.com/c/EJgkyChTYXi
Un grand merci par avance à la personne qui pourra m'aider...
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
6 oct. 2015 à 14:21
6 oct. 2015 à 14:21
Bonjour Cabrina,
80% du temps, je ne sais pas comment faire les trucs en Excel.
Je prend l'enregistreur de macro, et je fais un truc, je regarde le code, et je google les mots clef.
Je prend un fichier excel, je fais "Enregistrer une macro".
Ensuite, je fais fichier -> enregistrer sous,
Je choisi le format PDF, et j'enregistre le fichier en PDF.
Je retourne dans l'onglet développement, et je fais arreter l'enregistrement.
Bon, ensuite je vais dans l'éditeur visual basic, et voici le code enregistré.
Après, il faut développer des réflexes de programmation.
Il faut savoir ce qu'est un objet, une méthode, et ce qu'est un paramêtre.
Pour mon objet Activesheet, j'appelle la méthode ExportAsFixedFormat.
Et je lui passe les paramêtre Type, Filename, etc.
La prochaine étape GOOGLE !
Tu tappes VBA suivi des termes.
Exemple VBA ExportasFixedformat
Je trouve
https://docs.microsoft.com/en-us/office/vba/api/Excel.Workbook.ExportAsFixedFormat
Et je lis, ca donne une explication de tout les paramêtre et de leur différente valeur possible.
Ensuite, je cherche encore sur google pour trouver des exemple de code, et ensuite essai erreur.
Et quand je tombe dans un cul de sac, je reviens sur comment ca marche et je met ou je suis rendu avec mon code.
Donc avec l'enregistreur de macro, google et du temps, de la patience et malheureusement des réflèxes de programmation, tu peux pas mal tout faire.
Le plus dur c'est d'apprendre ce qu'est un objet (habituellement les mots qui précède un point), et ce qu'est une méthode (habituellement ce qui a après le dernier point)
80% du temps, je ne sais pas comment faire les trucs en Excel.
Je prend l'enregistreur de macro, et je fais un truc, je regarde le code, et je google les mots clef.
Je prend un fichier excel, je fais "Enregistrer une macro".
Ensuite, je fais fichier -> enregistrer sous,
Je choisi le format PDF, et j'enregistre le fichier en PDF.
Je retourne dans l'onglet développement, et je fais arreter l'enregistrement.
Bon, ensuite je vais dans l'éditeur visual basic, et voici le code enregistré.
Sub Macro1() ' ' Macro1 Macro ' ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\temp\Classeur1.pdf", Quality:=xlQualityStandard, IncludeDocProperties _ :=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End Sub
Après, il faut développer des réflexes de programmation.
Il faut savoir ce qu'est un objet, une méthode, et ce qu'est un paramêtre.
Pour mon objet Activesheet, j'appelle la méthode ExportAsFixedFormat.
Et je lui passe les paramêtre Type, Filename, etc.
La prochaine étape GOOGLE !
Tu tappes VBA suivi des termes.
Exemple VBA ExportasFixedformat
Je trouve
https://docs.microsoft.com/en-us/office/vba/api/Excel.Workbook.ExportAsFixedFormat
Et je lis, ca donne une explication de tout les paramêtre et de leur différente valeur possible.
Ensuite, je cherche encore sur google pour trouver des exemple de code, et ensuite essai erreur.
Et quand je tombe dans un cul de sac, je reviens sur comment ca marche et je met ou je suis rendu avec mon code.
Donc avec l'enregistreur de macro, google et du temps, de la patience et malheureusement des réflèxes de programmation, tu peux pas mal tout faire.
Le plus dur c'est d'apprendre ce qu'est un objet (habituellement les mots qui précède un point), et ce qu'est une méthode (habituellement ce qui a après le dernier point)
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
Modifié par PlacageGranby le 6/10/2015 à 14:33
Modifié par PlacageGranby le 6/10/2015 à 14:33
Autre conseil,
L'enregistreur de macro n'a pas de cerveau.
Il reproduit exactement TOUT ce qui est fait.
Si tu clic sur un onglet, si tu clique dans la feuille, il va t'écrire le code pour toutes ces actions et ca devient difficile de s'y retrouver.
Si tu as besoin de faire plusieurs choses, fait quand même un truc à la fois pour avoir le moins de code possible écrit par l'enregistreur.
Cela permet plus facilement d'identifier quelle ligne de code fait quoi.
Tu veux faire 4x trucs, tu fais 4x enregistrements.
On apprend beaucoup en regardant des exemples, on cherche du code sur internet qu'on copie. Et Essai erreur... essai erreur.
Ca ne fonctionne pas, on google le mot clef, on chercher les paramêtres et les valeurs possible.
Ca ne marche pas ? On recommence google avec notre question précédé de VBA.
On trouve d'autre exemple de code, on re-google les mots clef pour voir encore plus d'exemple et encore plus de paramêtre.
Ta réponse est quelque part sur internet, ca c'est sûr, tu n'est probablement pas la première personne qui veut envoyé un PDF par courriel.
Tu peux aussi avoir de la chance et trouver quelqu'un qui va coder ton fichier excel pour toi. Mais sache que si ton Boss demande une modification, tu ne pourras pas la faire et le bon samaritain ne sera peut-être plus là. Donc il est crucial de comprendre le code, et la seule façon, c'est de se retrousser les manches et d'essayer d'en faire le plus possibls soi-même
L'enregistreur de macro n'a pas de cerveau.
Il reproduit exactement TOUT ce qui est fait.
Si tu clic sur un onglet, si tu clique dans la feuille, il va t'écrire le code pour toutes ces actions et ca devient difficile de s'y retrouver.
Si tu as besoin de faire plusieurs choses, fait quand même un truc à la fois pour avoir le moins de code possible écrit par l'enregistreur.
Cela permet plus facilement d'identifier quelle ligne de code fait quoi.
Tu veux faire 4x trucs, tu fais 4x enregistrements.
On apprend beaucoup en regardant des exemples, on cherche du code sur internet qu'on copie. Et Essai erreur... essai erreur.
Ca ne fonctionne pas, on google le mot clef, on chercher les paramêtres et les valeurs possible.
Ca ne marche pas ? On recommence google avec notre question précédé de VBA.
On trouve d'autre exemple de code, on re-google les mots clef pour voir encore plus d'exemple et encore plus de paramêtre.
Ta réponse est quelque part sur internet, ca c'est sûr, tu n'est probablement pas la première personne qui veut envoyé un PDF par courriel.
Tu peux aussi avoir de la chance et trouver quelqu'un qui va coder ton fichier excel pour toi. Mais sache que si ton Boss demande une modification, tu ne pourras pas la faire et le bon samaritain ne sera peut-être plus là. Donc il est crucial de comprendre le code, et la seule façon, c'est de se retrousser les manches et d'essayer d'en faire le plus possibls soi-même
Cabrina
Messages postés
248
Date d'inscription
samedi 5 avril 2008
Statut
Membre
Dernière intervention
13 mars 2024
6
6 oct. 2015 à 14:47
6 oct. 2015 à 14:47
Bonjour,
Un grand merci pour votre message réconfortant !
Je suis entiérement d'accord avec vous, chaque chose en sont temps.
Pour le moment je bloque sur l'enregistrement de mon fichier en PDF « Le Pivert » m'a indiqué une macro pour faire mon enregistrement qui fonctionne très bien mais je veux faire la modifications sur les deux partie en gras :
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.SaveAs Filename:="C:\Users\....\Documents\" & Range("A1").Value & ".xls", _
FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
La première OK .pdf
La deuxième FileFormat je ne sais pas quoi mettre, j'avais trouvée xlPDF, xlTypepdf mais rein ne fonctionne et je ne sais plus comment faire...
Mon PDF se crée mais je ne peux pas l'ouvrir.
Un grand merci pour votre message réconfortant !
Je suis entiérement d'accord avec vous, chaque chose en sont temps.
Pour le moment je bloque sur l'enregistrement de mon fichier en PDF « Le Pivert » m'a indiqué une macro pour faire mon enregistrement qui fonctionne très bien mais je veux faire la modifications sur les deux partie en gras :
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.SaveAs Filename:="C:\Users\....\Documents\" & Range("A1").Value & ".xls", _
FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
La première OK .pdf
La deuxième FileFormat je ne sais pas quoi mettre, j'avais trouvée xlPDF, xlTypepdf mais rein ne fonctionne et je ne sais plus comment faire...
Mon PDF se crée mais je ne peux pas l'ouvrir.
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
6 oct. 2015 à 14:53
6 oct. 2015 à 14:53
Bonjour Cabrina,
La réponse est dans mon exemple.
Saveas permet d'enregistrer un fichier excel.
PDF ce n'est pas du excel, donc le fichier est "converti" et non pas seulement enregistré.
Donc ce ne sera pas SaveAs, mais ExportAsFixedFormat
C'est avec l'enregistreur de macro que j'ai découvert cela en enregistrant en format PDF.
La réponse est dans mon exemple.
Saveas permet d'enregistrer un fichier excel.
PDF ce n'est pas du excel, donc le fichier est "converti" et non pas seulement enregistré.
Donc ce ne sera pas SaveAs, mais ExportAsFixedFormat
C'est avec l'enregistreur de macro que j'ai découvert cela en enregistrant en format PDF.
Cabrina
Messages postés
248
Date d'inscription
samedi 5 avril 2008
Statut
Membre
Dernière intervention
13 mars 2024
6
6 oct. 2015 à 15:00
6 oct. 2015 à 15:00
Je viens donc de changer mon SaveAs par ExportAsFixedFormat effectivement quant je le fait manuellement j'ai ça également.
Par contre je n'ai pas d'enregistrement de fichier et ça me surligne "Private Sub Workbook_BeforeClose(Cancel As Boolean)"
Par contre je n'ai pas d'enregistrement de fichier et ça me surligne "Private Sub Workbook_BeforeClose(Cancel As Boolean)"
5 oct. 2015 à 15:11
Désolé de me pas avoir répondu plus tôt.
Mais je pensais que le problème ne venait pas de votre macro mais du tout.