Macro excel: exporter en pdf à chaque saut de page
Fermé
hogun06
Messages postés
4
Date d'inscription
dimanche 23 février 2014
Statut
Membre
Dernière intervention
26 février 2014
-
23 févr. 2014 à 22:24
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 26 févr. 2014 à 21:32
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 26 févr. 2014 à 21:32
A voir également:
- Vba exporter en pdf
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
5 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
24 févr. 2014 à 09:53
24 févr. 2014 à 09:53
Bonjour,
Comme tu pratiques vba, je te donne la séquence pour sauvegarder ta page en PDF :
Tu remplace B1 par la cellule concernée dans ta page.
Comme tu pratiques vba, je te donne la séquence pour sauvegarder ta page en PDF :
Dim rep As String rep = "ton répertoire\" Range("A1:I5").Copy ' page à sélectionner Workbooks.Add ActiveSheet.Paste ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=rep & [B1].Value & ".PDF", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, _ OpenAfterPublish:=False ActiveWorkbook.Close SaveChanges:=False
Tu remplace B1 par la cellule concernée dans ta page.
hogun06
Messages postés
4
Date d'inscription
dimanche 23 février 2014
Statut
Membre
Dernière intervention
26 février 2014
24 févr. 2014 à 16:42
24 févr. 2014 à 16:42
Bonjour gbinforme et merci pour ta réponse.
Malheureusement cela ne sera pas suffisant pour ce que je cherche à faire car je dois faire cette extraction pour chacune de pages ainsi générées (et pas seulement à la fois).
De plus l'idée de créer une nouvelle feuille excel à chaque fois puis la refermer risque de rendre la macro trop lourde pour être intéressante non?
N'y a t'il pas moyen de créer une boucle pour cela (là on dépasse mes compétences en vba).
Malheureusement cela ne sera pas suffisant pour ce que je cherche à faire car je dois faire cette extraction pour chacune de pages ainsi générées (et pas seulement à la fois).
De plus l'idée de créer une nouvelle feuille excel à chaque fois puis la refermer risque de rendre la macro trop lourde pour être intéressante non?
N'y a t'il pas moyen de créer une boucle pour cela (là on dépasse mes compétences en vba).
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
24 févr. 2014 à 18:05
24 févr. 2014 à 18:05
Bonjour hogun06,
l'idée de créer une nouvelle feuille excel à chaque fois puis la refermer risque de rendre la macro trop lourde
Tu veux créer un PDF par page, comment veux-tu le faire sans en générer la structure ?
Cette feuille ne sert que de support à la sauvegarde du PDF, si tu as une idée plus lumineuse, je veux bien t'aider à la coder.
Ta centaine de PDF que tu veux créer est-elle dans le même répertoire que ton classeur ?
N'y a t'il pas moyen de créer une boucle pour cela
Bien sûr qu'il faut créer une boucle, mais pour cela il faut avoir la connaissance de la structure de tes données.
Si tu pouvais nous mettre un exemple de classeur avec la structure des données, sans éléments personnels mais avec ta macro actuelle, se serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu.
l'idée de créer une nouvelle feuille excel à chaque fois puis la refermer risque de rendre la macro trop lourde
Tu veux créer un PDF par page, comment veux-tu le faire sans en générer la structure ?
Cette feuille ne sert que de support à la sauvegarde du PDF, si tu as une idée plus lumineuse, je veux bien t'aider à la coder.
Ta centaine de PDF que tu veux créer est-elle dans le même répertoire que ton classeur ?
N'y a t'il pas moyen de créer une boucle pour cela
Bien sûr qu'il faut créer une boucle, mais pour cela il faut avoir la connaissance de la structure de tes données.
Si tu pouvais nous mettre un exemple de classeur avec la structure des données, sans éléments personnels mais avec ta macro actuelle, se serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu.
hogun06
Messages postés
4
Date d'inscription
dimanche 23 février 2014
Statut
Membre
Dernière intervention
26 février 2014
24 févr. 2014 à 22:34
24 févr. 2014 à 22:34
Bonsoir gbinforme, désolé soirée chargée d'où la réponse tardive.
En fait pour créer ma "structure" de pages j'utilise l'instruction "Pagebreaks=true" dans ma fonction de sous-total (issu d'un enregistrement de macro).
Tu verras dans le fichier joint: https://www.cjoint.com/?DBywCYxkO5t
J'ai simplifié au maximum en ne prenant que 3-4 noms (et modifiant les infos) histoire de pouvoir travailler sur un fichier plus "léger" que celui d'origine. Ca me permet de faire des tests sans risquer perdre des données.
J'y ai mis deux macros:
la première qui me fait mes sous-totaux comme indiqué plus haut dans le topic.
Une seconde où j'ai tenté une boucle (je débute en vba alors ne sois pas trop regardant sur la qualité du code...) mais j'échoue lamentablement à afficher mon sous-total dedans (probablement une déclaration qui m'échappe).
Encore un grand merci de t'être penché sur mon problème.
Si tu as d'autres questions n'hésites pas.
En fait pour créer ma "structure" de pages j'utilise l'instruction "Pagebreaks=true" dans ma fonction de sous-total (issu d'un enregistrement de macro).
Tu verras dans le fichier joint: https://www.cjoint.com/?DBywCYxkO5t
J'ai simplifié au maximum en ne prenant que 3-4 noms (et modifiant les infos) histoire de pouvoir travailler sur un fichier plus "léger" que celui d'origine. Ca me permet de faire des tests sans risquer perdre des données.
J'y ai mis deux macros:
la première qui me fait mes sous-totaux comme indiqué plus haut dans le topic.
Une seconde où j'ai tenté une boucle (je débute en vba alors ne sois pas trop regardant sur la qualité du code...) mais j'échoue lamentablement à afficher mon sous-total dedans (probablement une déclaration qui m'échappe).
Encore un grand merci de t'être penché sur mon problème.
Si tu as d'autres questions n'hésites pas.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
25 févr. 2014 à 10:28
25 févr. 2014 à 10:28
Merci du classeur, je te fais cela pour demain car je m'absente.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
25 févr. 2014 à 23:48
25 févr. 2014 à 23:48
Bonjour,
Je t'ai laissé tes macros et avec celle qui fonctionnait j'ai rajouté :
- la saisie de la date choisie (à saisir comme date : j/m/aa)
- la sélection du répertoire des PDF
(tu peux le créer avec la fenêtre : nouveau dossier)
- la création des PDF sélectionnés avec le titre pour chacun, le nom de la colonne B et la mise en page paysage ligne complète
- un bouton pour lancer la macro
https://www.cjoint.com/c/DBzxJyvmpbR
Ton classeur test est parfaitement constitué puisque l'on peut tester 2 dates et 1 ou 3 PDF.
Bon test
Je t'ai laissé tes macros et avec celle qui fonctionnait j'ai rajouté :
- la saisie de la date choisie (à saisir comme date : j/m/aa)
- la sélection du répertoire des PDF
(tu peux le créer avec la fenêtre : nouveau dossier)
- la création des PDF sélectionnés avec le titre pour chacun, le nom de la colonne B et la mise en page paysage ligne complète
- un bouton pour lancer la macro
https://www.cjoint.com/c/DBzxJyvmpbR
Ton classeur test est parfaitement constitué puisque l'on peut tester 2 dates et 1 ou 3 PDF.
Bon test
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hogun06
Messages postés
4
Date d'inscription
dimanche 23 février 2014
Statut
Membre
Dernière intervention
26 février 2014
26 févr. 2014 à 12:19
26 févr. 2014 à 12:19
Bonjour,
merci pour ta macro je n'en demandais pas tant...
Je mets en test tout cela et je repasse sur ce topic si jamais j'ai besoin d'un ajustement.
Encore merci pour cet énorme coup de main.
merci pour ta macro je n'en demandais pas tant...
Je mets en test tout cela et je repasse sur ce topic si jamais j'ai besoin d'un ajustement.
Encore merci pour cet énorme coup de main.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 712
26 févr. 2014 à 21:32
26 févr. 2014 à 21:32
Bonsoir,
Tu peux accélérer un peu en rajoutant cette ligne en gras après tes 2 delete :
Bons tests.
Tu peux accélérer un peu en rajoutant cette ligne en gras après tes 2 delete :
.Rows(i).DeleteCela évite de tout parcourir alors que tu n'as qu'un total.
Exit For
Bons tests.