Macro pour enregistrer le classeur en xls et les feuille en pdf.
Fermé
Ams
-
24 janv. 2015 à 17:13
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 26 janv. 2015 à 12:03
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 26 janv. 2015 à 12:03
A voir également:
- Macro pour enregistrer le classeur en xls et les feuille en pdf.
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Enregistrer en pdf - Guide
- Audacity enregistrer son pc - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment enregistrer une musique sur youtube en mp3 - Guide
7 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
25 janv. 2015 à 11:13
25 janv. 2015 à 11:13
Bonjour,
Pour que ce classeur fonctionne, il faut avoir Office 2007 ou plus récente:
http://www.cjoint.com/data3/3Azlvr4DstT.htm
Pour que ce classeur fonctionne, il faut avoir Office 2007 ou plus récente:
http://www.cjoint.com/data3/3Azlvr4DstT.htm
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
25 janv. 2015 à 13:50
25 janv. 2015 à 13:50
Les noms des fichiers .pdf devraient avoir en commun: "Feuil4!A2" et "Feuil4!F2" et "Feuil4!F5". Et se différencier à la fin par le nom de la feuille.
a aucun moment il est question de la Cellule C1
comme explication dernier post:
Il faudrait que les feuilles contenant la valeur 1 en cellule A1 soit enregistrée en pdf, dans le meme classeur que celui d'origine avec un nom de fichier qui soit: la valeur de la cellule C1 de la feuille 1 et le nom de la feuille qui est enregistrée en pdf (dans laquelle se trouve le bouton de la macro).
Voici donc la nouvelle mouture:
http://www.cjoint.com/data3/3Azn3xi2hWe.htm
a aucun moment il est question de la Cellule C1
comme explication dernier post:
Il faudrait que les feuilles contenant la valeur 1 en cellule A1 soit enregistrée en pdf, dans le meme classeur que celui d'origine avec un nom de fichier qui soit: la valeur de la cellule C1 de la feuille 1 et le nom de la feuille qui est enregistrée en pdf (dans laquelle se trouve le bouton de la macro).
Voici donc la nouvelle mouture:
http://www.cjoint.com/data3/3Azn3xi2hWe.htm
Pardon je me suis mal exprimé la première fois.
Votre première mouture marche à la perfection pour enregistrer les feuilles présentant 1 en cellule A1 au format pdf.
En fait je voudrais juste ajouter l'enregistrement du classeur au format xls.
J'ai créé cette macro mais je n'arrive pas à combiner celle ci et la votre sur le même boutton.
Sub Rec()
ActiveWorkbook.SaveAs Filename:=[C1].Value & "." & [I1].Value & Format([I4], "_dd_mm_yy") & ".xls"
End Sub
Votre première mouture marche à la perfection pour enregistrer les feuilles présentant 1 en cellule A1 au format pdf.
En fait je voudrais juste ajouter l'enregistrement du classeur au format xls.
J'ai créé cette macro mais je n'arrive pas à combiner celle ci et la votre sur le même boutton.
Sub Rec()
ActiveWorkbook.SaveAs Filename:=[C1].Value & "." & [I1].Value & Format([I4], "_dd_mm_yy") & ".xls"
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
25 janv. 2015 à 14:27
25 janv. 2015 à 14:27
Faire Alt F11 et cliquer dans ThisWorkbook en haut a gauche.
Mettre ce code:
Mettre ce code:
Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean) ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & [C1].Value & "." & [I1].Value & Format([I4], "_dd_mm_yy") & ".xls" End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je suis désolé ça ne fonctionne pas...
Votre dernière version enregistre simplement en pdf la feuille active.
Les autres feuille présentant 1 en A1 ne sont plus enregistrée.
Je suis paumé
Votre dernière version enregistre simplement en pdf la feuille active.
Les autres feuille présentant 1 en A1 ne sont plus enregistrée.
Je suis paumé
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
25 janv. 2015 à 18:37
25 janv. 2015 à 18:37
Dans le classeur envoyé, il n'y a que la Feuil4 qui contient un 1 en A1, il n'a rien en C1!
dans la feuil1 en A1: Nom
dans la feuil5 en A1: 0
dans la feuil6 en A2: 1
Voici le code modifié qui n'enregistre que la feuille4 sans nom car absent!
dans la feuil1 en A1: Nom
dans la feuil5 en A1: 0
dans la feuil6 en A2: 1
Voici le code modifié qui n'enregistre que la feuille4 sans nom car absent!
Option Explicit Dim nom, chemin As String Sub pdf() Dim Ws As Worksheet For Each Ws In Worksheets If Ws.Range("A1").Value = "1" Then nom = Ws.Range("C1").Value save_pdf MsgBox "La feuille: " & nom & " est enregistrée en pdf dans le dossier de ce classeur." End If Next Ws End Sub Sub save_pdf() chemin = ThisWorkbook.Path & "\Feuil4_A2_Feuil4_F2_Feuil4_F5_" & nom & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ chemin, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False 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
26 janv. 2015 à 08:03
26 janv. 2015 à 08:03
J'ai bien tout relu et pour résumer:
Il faut enregistrer en pdf au nom de la feuille les feuilles ayant A1=1
enregistrer le classeur en xls au nom se trouvant sur la feuille1 en C1
donc voici le code:
J'espère avoir tout compris!
Il faut enregistrer en pdf au nom de la feuille les feuilles ayant A1=1
enregistrer le classeur en xls au nom se trouvant sur la feuille1 en C1
donc voici le code:
Option Explicit Dim nom, chemin As String Sub pdf() Dim Ws As Worksheet For Each Ws In Worksheets 'enregistrement en pdf au nom de la feuille If Ws.Range("A1").Value = "1" Then nom = Ws.Name save_pdf MsgBox "La feuille: " & nom & " est enregistrée en pdf dans le dossier de ce classeur." End If Next Ws 'enregistrement du classeur xls au nom se trouvant sur la feuille1 en C1 Sheets("Feuil1").Select ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & [C1].Value & "." & [I1].Value & Format([I4], "_dd_mm_yy") & ".xls" End Sub Sub save_pdf() chemin = ThisWorkbook.Path & "\Feuil4_A2_Feuil4_F2_Feuil4_F5_" & nom & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ chemin, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False End Sub
J'espère avoir tout compris!
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
26 janv. 2015 à 12:03
26 janv. 2015 à 12:03
Bonjour,
Salut Le Pivert,
Ton code m'a l'air correct.
Cependant, à lire ceci : je suis désolé ça ne fonctionne pas...
Votre dernière version enregistre simplement en pdf la feuille active.
Les autres feuille présentant 1 en A1 ne sont plus enregistrée.
Je suis paumé
je me dit qu'Ams ne doit pas lancer la bonne procédure. En effet, ce résultat est celui de ta Sub save_pdf.
Pour pallier ce souci, je mettrais la variable nom, non pas en variable publique, mais en paramètre de ta deuxième Sub.
Comme ceci :
Ainsi, via ALT+F8, tu n'as plus qu'une seule procédure qui apparait.
Cela limite les erreurs.
Salut Le Pivert,
Ton code m'a l'air correct.
Cependant, à lire ceci : je suis désolé ça ne fonctionne pas...
Votre dernière version enregistre simplement en pdf la feuille active.
Les autres feuille présentant 1 en A1 ne sont plus enregistrée.
Je suis paumé
je me dit qu'Ams ne doit pas lancer la bonne procédure. En effet, ce résultat est celui de ta Sub save_pdf.
Pour pallier ce souci, je mettrais la variable nom, non pas en variable publique, mais en paramètre de ta deuxième Sub.
Comme ceci :
Option Explicit Dim chemin As String Sub pdf() Dim Ws As Worksheet, nom As String For Each Ws In Worksheets 'enregistrement en pdf au nom de la feuille If Ws.Range("A1").Value = "1" Then nom = Ws.Name save_pdf nom MsgBox "La feuille: " & nom & " est enregistrée en pdf dans le dossier de ce classeur." End If Next Ws 'enregistrement du classeur xls au nom se trouvant sur la feuille1 en C1 Sheets("Feuil1").Select ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & [C1].Value & "." & [I1].Value & Format([I4], "_dd_mm_yy") & ".xls" End Sub Sub save_pdf(nom As String) chemin = ThisWorkbook.Path & "\Feuil4_A2_Feuil4_F2_Feuil4_F5_" & nom & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ chemin, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False End Sub
Ainsi, via ALT+F8, tu n'as plus qu'une seule procédure qui apparait.
Cela limite les erreurs.
25 janv. 2015 à 12:32
En fait, la macro enregistre uniquement le classeur et ne génère pas de pdf.
Il faudrait que les feuilles contenant la valeur 1 en cellule A1 soit enregistrée en pdf, dans le meme classeur que celui d'origine avec un nom de fichier qui soit: la valeur de la cellule C1 de la feuille 1 et le nom de la feuille qui est enregistrée en pdf (dans laquelle se trouve le bouton de la macro).
http://cjoint.com/?3AzmNgyrZ1w
25 janv. 2015 à 12:54
Sub Rec()
ActiveWorkbook.SaveAs Filename:=[C1].Value & "." & [I1].Value & ".xls"
' Rec Macro
'
' Touche de raccourci du clavier : Option+Cmd+r
'
End Sub
Il ne reste plus qu'à ajouter l'enregistrement en pdf des feuilles contenant 1 dans la cellule A1 avec le même nom que pour le classeur (Filename:=[C1].Value & "." & [I1].Value) mais avec en plus à la fin le nom de la feuille...
Pensez-vous que ce soit possible?
Merci encore+++