Macro "enregistrer en PDF" particulière [Résolu]

Signaler
-
 John -
Bonjour la communauté,

Après plusieurs recherches infructueuses (ou trop compliquées ?) je me décide à vous demander un coup de pouce...

J'ai un fichier que j'imprime pour l'emploi du temps du lendemain.
2 boutons sont en place:
- le 1er pour insérer la date+1 dans la case A7 pour l'EDT du lendemain
-le 2e pour insérer la date+3 toujours en A7 pour l'EDT fait le vendredi pour le lundi.

J'ai créé un autre bouton pour imprimer la feuille nommée "ODJ".

J'essaie maintenant de créer un bouton pour enregistrer la feuille en PDF.
J'ai pu créer 2 boutons pour exporter en PDF J+1 et J+3 dans un répertoire voulu.

Or je me demande si je peux créer un seul bouton qui va simplement copier la valeur de A7 pour l'insérer dans le nom du fichier.
J'ai trouvé plusieurs formules qui pourraient fonctionner avec une date saisie manuellement.
Là où je pêche, c'est que dans A7 c'est une formule (AUJOURDHUI()+1 ou +3), et la macro ne fonctionne pas... alors que si je mets autre chose ça prend... j'ai tenté de faire une copie puis collage spécial dans une autre case mais ça ne prend pas non plus...

Y a t-il possibilité d'adapter cette macro d'export pour récupérer la date dans A7?

Sub Export()
Dim LaDate$, Nom$, Rep$ 'Déclaration des variables
LaDate = Format(Now() + 1, "dd-mm-yyyy")
Nom = "ODJ" 'Nom de l'onglet à entregistrer
Rep = "O:\Public\SECRETARIAT\ORDRES DU JOUR\Archives ODJ\" ' Chemin du répertoire à adapter depuis votre PC
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Rep & Nom & " " & LaDate & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=1, OpenAfterPublish:=False 'enregistrement du fichier en PDF
End Sub

Je vous remercie pour aide et désolé pour la pavé :)

Amicalement,

John

6 réponses

Messages postés
12989
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
10 avril 2021
2 170
Bonsoir John

1) Je m’étonne qu'il te faille 2 boutons pour mettre la date en A7, une seule petite macro peut faire insérer la date + 3 si on est vendredi ou la date + 1 autrement :
Sub modif_date()
If Application.WorksheetFunction.Weekday(Date, 2) = 5 Then plus = 3 Else plus = 1
Range("A7") = Date + plus
End Sub


2) Je m'étonne ensuite qu'après tes boutons et l'insertion de la date il y ait encore une formule avec AUJOURDHUI en A7, il ne devrait y avoir qu'une date en "dur"
Si tu obtiens une date en "dur" comme avec ma macro tu n'auras plus de problème pour copier la valeur en A7 pour l'insérer dans le nom du PDF

Cdlmnt
Via
Bonjour Via,

Merci beaucoup pour ta réponse, effectivement c'est tellement plus simple!!

Concernant la 2e partie, j'ai modifié ma macro mais j'ai une erreur de syntaxe et je n'arrive pas à la détecter :

Sub Test_export()
Dim LeNom As String
LeNom = Sheets("ODJ").Range("A7")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"O:\Public\SECRETARIAT\ORDRES DU JOUR\Archives ODJ\" & LeNom & ".pdf" _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, From:=1, To:=1, OpenAfterPublish:=False
End Sub

J'ai comparer avec d'autres macro je ne vois pas l'erreur, la vois-tu ?

Je te remercie !

Amicalement,

John
Messages postés
12989
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
10 avril 2021
2 170
Re

Il manque une virgule après ".pdf" :
Sub Test_export()
Dim LeNom As String
LeNom = Sheets("ODJ").Range("A7")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"O:\Public\SECRETARIAT\ORDRES DU JOUR\Archives ODJ\" & LeNom & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, From:=1, To:=1, OpenAfterPublish:=False
End Sub

Cdlmnt
Via


Haaa je l'avais pas vu celle là :)

Alors la macro fonctionne mais pas complètement :(

Elle refuse de mettre la valeur de A7 dans le nom de fichier.
J'ai donc tester avec une autre cellule (B32) et là, ça fonctionne !

Est-ce un problème de format avec A7?

Merci à toi :)

Amicalement,

John
Messages postés
12989
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
10 avril 2021
2 170
Oui Excel n'admet pas de / dans un nom de fichier il faut leur substituer des tirets par exemple :
LeNom = WorksheetFunction.Substitute(Sheets("ODJ").Range("A7"), "/", "-")


Cdlmnt
Via
Effectivement ça fonctionne mieux !
J'avais compris que les / ne sont pas pris en compte dans les noms de fichier, mais j'avais changé l'affichage de la case pour mettre jeudi 1 avril 2021 pour palier ce problème... sans succès apparemment, ou je m'y suis encore mal pris :)
Je tâtonne et j'avance doucement !

Merci à toi pour ton aide précieuse !

Amicalement,

John