Microsoft 365 Comment enregistrer chaque onglet d'un fichier xls en pdf au nom de chaque onglet ?

  • Initiateur de la discussion Initiateur de la discussion Tchett
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tchett

XLDnaute Nouveau
Bonjour à Tous,

Merci d'avance pour l'aide que vous pourrez m'apporter

J’ai un fichier XLS qui peux comporter un nombre d’onglets différents suivant les cas.
Le nom de chaque onglet se trouve dans une cellule définie (BC24) et qui est une copie de la cellule adjacente qui résulte d’une concaténation. (=BB10&" "&BB12&" _ Num Cadastal "&BB14)

En fin d’utilisation je souhaite créer un bouton qui me permettra d’enregistrer chaque onglet en PDF dans le même dossier que celui du fichier XLS et dont le nom des PDF sera celui indiqué dans la cellule BC24.

J’ai déjà fait une macro qui me permet d’enregistrer l’onglet en pdf qui fonctionne pour un onglet et que j’ai placé dans le code VBA du bouveau bouton mais ça ne fonctionne plus …

Un fois que j’ai cliqué sur le bouton, les onglets s’ouvrent un a un dans internet explorer (a priori en format PDF) mais le nom n’est plus correct et l’enregistrement ne se fait plus

Je ne suis pas un pro du VBA, je bidouille un peu mais là je suis bloqué.

Pouvez-vous m’aider sur ce coup-là ?



Merci d’avance !

Tchett



Voici une copie de mon code :

Private Sub CommandButton1_Click()

' Bouton "Enregistrement, 1 à 1, des onglets en PDF"

' Calcul le nombre d'onglet

' se positionne sur l'onglet 1, l'imprime en PDF en reprenant le nom de l'onglet

' passe à l'onglet suivant et ce jusqu'au dernier onglet

' Calcul du nombre d'onglet => OK

Nbfeuilles = ThisWorkbook.Sheets.Count

' Indique dans la cellule BD28 (=> BD=56eme colonne) le nombre d'onglet

Cells(28, 56) = Nbfeuilles

' Création d'une boucle

For i = 1 To Nbfeuilles

' Copie de la macro qui enregistre l'onglet en PDF dans le même répertoire que le fichier XLS et qui est affectée au premier bouton d'impression

' Changement d'onglet "en boucle" => OK fonctionne

Sheets(i).Select

' Impression de l'onglet en PDF => ne fonctionne pas correctement => NO OK

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=[BC24] & ".pdf" _

, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _

:=False, OpenAfterPublish:=True

Next



End Sub
 
Solution
Merci pour vos réponses Kiki et CP.
La réponse de CP est plus "clé sur porte" si je peux dire et s'adapte mieux à mon fichier.
Je viens de l'intégrer le code dans mon fichier et j'ai travaillé cet après midi.
Mais je viens constater que le nom de l'onglet ne peux pas comporter plus de 31 caractères je m'arrange donc pour raccourcir ce nom. par contre pour le nom du fichier là j'ai besoin d'un nom plus long. qui ce trouve dans la cellule BC24 (en fait c'est un nom de rue + le N° + le num cadastral)
CP, comment puis-je modifier ton code pour y arriver ?
Merci d'avance

Tchett
Bonjour Tchett,

En effet, on ne peut pas nommer un onglet avec plus de 31 caractères.
Ta question était d'enregistrer toutes les feuilles de ton Classeur en...
Salut, voir ici et adapter à ton contexte.

Avec la possibilité de fusion en 1 seul pdf de l'ensemble des feuilles, ou de génération des feuilles sélectionnées de façon séparée, de gestion des doublons via un indice, le tout dans un dossier créé automatiquement et nommé par défaut Dossier PDFs à la racine de l'application. L'ensemble des feuilles ( visibles ou pas ) est listé via le bouton Récap
 
Bonjour Tchett🙂, kiki29😉,

Une proposition créant un pdf pour chaque onglet dans le même répertoire courant du classeur.
VB:
Option Explicit

Sub OngletsEnPDF()
Dim Ws As Worksheet, Fichier As String
'Boucle sur toutes les feuille de calcul du classeur.
For Each Ws In ThisWorkbook.Worksheets
Fichier = ThisWorkbook.Path & "\" & Ws.Name & ".pdf"
    'Crée un pdf de chaque feuille
   Ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Ws.Name & ".pdf", _
      Quality:=xlQualityStandard, IncludeDocProperties:=True, _
      IgnorePrintAreas:=False, OpenAfterPublish:=True
Next Ws
End Sub
A+
 
Merci pour vos réponses Kiki et CP.
La réponse de CP est plus "clé sur porte" si je peux dire et s'adapte mieux à mon fichier.
Je viens de l'intégrer le code dans mon fichier et j'ai travaillé cet après midi.
Mais je viens constater que le nom de l'onglet ne peux pas comporter plus de 31 caractères je m'arrange donc pour raccourcir ce nom. par contre pour le nom du fichier là j'ai besoin d'un nom plus long. qui ce trouve dans la cellule BC24 (en fait c'est un nom de rue + le N° + le num cadastral)
CP, comment puis-je modifier ton code pour y arriver ?
Merci d'avance

Tchett
 
Merci pour vos réponses Kiki et CP.
La réponse de CP est plus "clé sur porte" si je peux dire et s'adapte mieux à mon fichier.
Je viens de l'intégrer le code dans mon fichier et j'ai travaillé cet après midi.
Mais je viens constater que le nom de l'onglet ne peux pas comporter plus de 31 caractères je m'arrange donc pour raccourcir ce nom. par contre pour le nom du fichier là j'ai besoin d'un nom plus long. qui ce trouve dans la cellule BC24 (en fait c'est un nom de rue + le N° + le num cadastral)
CP, comment puis-je modifier ton code pour y arriver ?
Merci d'avance

Tchett
Bonjour Tchett,

En effet, on ne peut pas nommer un onglet avec plus de 31 caractères.
Ta question était d'enregistrer toutes les feuilles de ton Classeur en fichier PDF, avec comme nom de fichier le nom de l'onglet.
Si, j'ai bien compris, tu veux récupérer le nom du fichier de la cellule BC24.
Remplace ceci --- > Filename:=Ws.Name
Par ceci ----------->Filename:=Ws.Range("BC24")
Faire Attention aux caractères spéciaux! Ils sont pas acceptés dans les noms de fichiers.

Edit: Attention! Il faut au préalable définir les zones d'impression. Sinon tu auras toutes les feuilles même vide jusqu'à la cellule BC24.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
535
Réponses
2
Affichages
544
Retour