VBA - Endregistrement classeur excel au même emplacement en pdf
Résolu/Fermé
safrancq
Messages postés
1
Date d'inscription
vendredi 15 novembre 2013
Statut
Membre
Dernière intervention
15 novembre 2013
-
15 nov. 2013 à 09:04
boban90 - 5 mai 2015 à 12:07
boban90 - 5 mai 2015 à 12:07
A voir également:
- Vba enregistrer sous pdf
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Enregistrer en pdf - Guide
- Audacity enregistrer son pc - Guide
- Save as pdf - Télécharger - Bureautique
- Enregistrer son ecran - Guide
3 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 19/05/2014 à 18:20
Modifié par pijaku le 19/05/2014 à 18:20
Bonjour,
Vous dites :
enregistrer un macro dans l'onglet affichage.
j'en déduis dons que votre version d'excel est supérieure ou égale à 2007...
Donc.
Vous souhaitez :
enregistrer le classeur excel ouvert - quel qu'il soit- sous format pdf
Question 1 :
- le classeur entier (toutes les feuilles du classeur) ?
- juste la feuille active ?
Pour trouver :
1- l'emplacement du classeur ouvert (s'il a été préalablement enregistré...) :
il faut utiliser :
2- le nom du fichier ouvert :
il faut utiliser :
Lors de l'enregistrement de la feuille active au format pdf, l'enregistreur de macro nous donne le code suivant :
Si nous utilisons les propriétés path et name de ThisWorkbook citées plus haut, le code devient :
Ensuite, pour rendre ce code accessible depuis n'importe quel classeur, regarde ce tuto "Dans le classeur de macros personnelles PERSO.XLS"
Bon courage
Cordialement,
Franck
Vous dites :
enregistrer un macro dans l'onglet affichage.
j'en déduis dons que votre version d'excel est supérieure ou égale à 2007...
Donc.
Vous souhaitez :
enregistrer le classeur excel ouvert - quel qu'il soit- sous format pdf
Question 1 :
- le classeur entier (toutes les feuilles du classeur) ?
- juste la feuille active ?
Pour trouver :
1- l'emplacement du classeur ouvert (s'il a été préalablement enregistré...) :
il faut utiliser :
ThisWorkbook.Path
2- le nom du fichier ouvert :
il faut utiliser :
ThisWorkbook.Name
Lors de l'enregistrement de la feuille active au format pdf, l'enregistreur de macro nous donne le code suivant :
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\franck\Desktop\Classeur1.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False
Si nous utilisons les propriétés path et name de ThisWorkbook citées plus haut, le code devient :
Dim Chemin As String, NomFic As String, extens As String, nbcarExt As Byte Chemin = ThisWorkbook.Path 'extension du fichier : extens = Split(ThisWorkbook.Name, ".")(1) 'nombre de caractères contenus dans l'extension du fichier : nbcarExt = Len(extens) 'extraction du nom du fichier, sans l'extension, mais avec le point : NomFic = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - nbcarExt) ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ Chemin & "\" & NomFic & "pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False
Ensuite, pour rendre ce code accessible depuis n'importe quel classeur, regarde ce tuto "Dans le classeur de macros personnelles PERSO.XLS"
Bon courage
Cordialement,
Franck
D-H
Messages postés
1
Date d'inscription
lundi 2 septembre 2013
Statut
Membre
Dernière intervention
19 mai 2014
19 mai 2014 à 16:24
19 mai 2014 à 16:24
Merci beaucoup pijaku !
Fonctionne super rien à redire ;)
Bonne fin de journée.
Fonctionne super rien à redire ;)
Bonne fin de journée.
xuorel
Messages postés
250
Date d'inscription
samedi 24 novembre 2012
Statut
Membre
Dernière intervention
25 novembre 2024
19 juil. 2014 à 18:02
19 juil. 2014 à 18:02
bonjour,
pourriez-vous m'expliquer comment fonctionne la fonction split ? Par ailleurs à quoi sert le (1) en bout de ligne ?
Merci
pourriez-vous m'expliquer comment fonctionne la fonction split ? Par ailleurs à quoi sert le (1) en bout de ligne ?
Merci
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
20 juil. 2014 à 08:20
20 juil. 2014 à 08:20
Bonjour,
Split(chaine, séparateur) scinde une chaine de caractères en fonction d'un séparateur. Le résultat est obtenu sous forme de tableau.
Exemple :
La chaine
"Bonjour,comment,allez,vous"
scindée avec le séparateur "," donnera :
Split("Bonjour,comment,allez,vous", ",")(0) => Bonjour
Split("Bonjour,comment,allez,vous", ",")(1) => comment
Split("Bonjour,comment,allez,vous", ",")(2) => allez
Split("Bonjour,comment,allez,vous", ",")(3) => vous
Split(chaine, séparateur) scinde une chaine de caractères en fonction d'un séparateur. Le résultat est obtenu sous forme de tableau.
Exemple :
La chaine
"Bonjour,comment,allez,vous"
scindée avec le séparateur "," donnera :
Split("Bonjour,comment,allez,vous", ",")(0) => Bonjour
Split("Bonjour,comment,allez,vous", ",")(1) => comment
Split("Bonjour,comment,allez,vous", ",")(2) => allez
Split("Bonjour,comment,allez,vous", ",")(3) => vous
Bonjour,
Je tombe sur ce sujet un an plus tard, mais il est très intéressant, à l'image de la solution proposée par pijaku!
J'ai une petite question liée à ce sujet : par quoi faut-il modifier NomFic dans la macro pour enregistrer le pdf non plus selon le nom du fichier excel mais selon le nom de l'onglet?
J'ai fait plusieurs tentatives avec ActiveSheets.name mais ai visiblement un problème de syntaxe :-)
Je tombe sur ce sujet un an plus tard, mais il est très intéressant, à l'image de la solution proposée par pijaku!
J'ai une petite question liée à ce sujet : par quoi faut-il modifier NomFic dans la macro pour enregistrer le pdf non plus selon le nom du fichier excel mais selon le nom de l'onglet?
J'ai fait plusieurs tentatives avec ActiveSheets.name mais ai visiblement un problème de syntaxe :-)
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
>
boban90
Modifié par pijaku le 5/05/2015 à 12:00
Modifié par pijaku le 5/05/2015 à 12:00
Bonjour boban90,
Peut être que :
Mais attention :
1- aux caractères spéciaux pouvant composer le nom d'une feuille mais étant exclus par Windows dans un nom de fichier,
2- à ne pas avoir déjà un fichier du même nom.
Peut être que :
NomFic = ActiveSheet.Name
Mais attention :
1- aux caractères spéciaux pouvant composer le nom d'une feuille mais étant exclus par Windows dans un nom de fichier,
2- à ne pas avoir déjà un fichier du même nom.