XL 2010 création d'un pdf a chaque changement de date

  • Initiateur de la discussion Initiateur de la discussion TAOK
  • 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 !

TAOK

XLDnaute Nouveau
Bonjour à tous les pro
dans le fichier joint, onglet mai2022utilisateur, je souhaiterais qu'à chaque changement de date, via le bouton créer pdf, il génère un pdf

j'ai trouvé un code qui fonctionne et me génère bien une feuille sauf que si je change de date, la feuille est vide
C'est normal mais je ne sais pas comment adapté le code
Merci à vous tous

Tao

Sub testimpression()
'
' testimpression Macro
'

Dim Chemin As String
Chemin = ActiveWorkbook.Path


'
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Chemin & "\" & Range("A9").Value & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

MsgBox "le pdf a été généré"


End Sub
 

Pièces jointes

Solution
Bonjour @TAOK

Si tu veux une autre date tu as 2 solutions :

1) Tu vas manuellement dans le code et tu mets par exemple


2) Tu mets la date dans une cellule dédiée par exemple en A3
Regarde la pièce jointe 1136049
ET dans le code tu mets :

Ensuite il te suffira de modifier la date en A3 SANS avoir besoin d'aller dans le code

Les 2 solutions sont indépendantes soit tu choisis la 1ere soit la 2eme solution


@Phil69970
Super Merci
je teste le deuxième solution
Bonjour TAOK, Phil69970,

Ceci doit être suffisant :
VB:
Sub testimpression()
If Not IsDate([A2] & " " & [A1]) Or IsNumeric([A2]) Then Exit Sub
ActiveSheet.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\" & [A2] & " " & [A1] & ".pdf"
MsgBox "le pdf a été généré"
End Sub
A+
 
Bonjour @TAOK

Si tu veux une autre date tu as 2 solutions :

1) Tu vas manuellement dans le code et tu mets par exemple
Date1 = Range("A44").Value

2) Tu mets la date dans une cellule dédiée par exemple en A3
1649247400357.png

ET dans le code tu mets :
Date1 = Range("A3").Value
Ensuite il te suffira de modifier la date en A3 SANS avoir besoin d'aller dans le code

Les 2 solutions sont indépendantes soit tu choisis la 1ere soit la 2eme solution


@Phil69970
 
Bonjour TAOK, Phil69970,

Ceci doit être suffisant :
VB:
Sub testimpression()
If Not IsDate([A2] & " " & [A1]) Or IsNumeric([A2]) Then Exit Sub
ActiveSheet.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\" & [A2] & " " & [A1] & ".pdf"
MsgBox "le pdf a été généré"
End Sub
A+
Merci Job
cela fonctionne pour le 1 mai mais si je sélectionne le 2 mai, il génère bien le pdf mais il ne contient que les titres et pas le contenu

merci

le but est de sélectionner les dates via le filtres dates et de générer autant de pdf que de dates sélectionnées

TAOK
 
Bonjour @TAOK

Si tu veux une autre date tu as 2 solutions :

1) Tu vas manuellement dans le code et tu mets par exemple


2) Tu mets la date dans une cellule dédiée par exemple en A3
Regarde la pièce jointe 1136049
ET dans le code tu mets :

Ensuite il te suffira de modifier la date en A3 SANS avoir besoin d'aller dans le code

Les 2 solutions sont indépendantes soit tu choisis la 1ere soit la 2eme solution


@Phil69970
Super Merci
je teste le deuxième solution
 
Bonjour @TAOK

Si tu veux une autre date tu as 2 solutions :

1) Tu vas manuellement dans le code et tu mets par exemple


2) Tu mets la date dans une cellule dédiée par exemple en A3
Regarde la pièce jointe 1136049
ET dans le code tu mets :

Ensuite il te suffira de modifier la date en A3 SANS avoir besoin d'aller dans le code

Les 2 solutions sont indépendantes soit tu choisis la 1ere soit la 2eme solution


@Phil69970
ok Phil
j'ai testé la deuxième solution qui permettra aux collègues de ne pas aller dans le code
c'est ok mais lorsque je choisit une autre date, le pdf n'affiche que les titres et pas le contenu
je mets le pdf du 1 et du 2/5

Bien merci à toi
 

Pièces jointes

@TAOK

Je suis étonné que tu mettes ton propre post en résolu car tu n'as rien trouvé du tout .
La logique est de valider la réponse qui correspond à la question que tu as posé, donc soit la réponse de Job soit la mienne mais pas la tienne.
Le but est de montrer qu'une réponse a été trouvée et montrer au forum laquelle correspond à ton problème et donc à ta question.

*Voir autre explication ici ou ici

@Phil69970
 
Le fil n'est pas terminé car le plus simple est de créer tous les fichiers pdf d'un seul coup.

Voyez le fichier joint et cette macro qui utilise le filtre automatique :
VB:
Sub testimpression()
Dim mois$, dossier$, nf$, dat As Long
mois = [A2] & " " & [A1]
If Not IsDate(mois) Or IsNumeric([A2]) Then Exit Sub
dossier = ThisWorkbook.Path & "\" & mois & "\" 'chemin à adapter au besoin
If Dir(dossier, vbDirectory) = "" Then MkDir dossier 'crée le dossier
Application.ScreenUpdating = False
With [A9].CurrentRegion
    .Parent.PageSetup.PrintArea = .Address 'zone d'impression
    nf = .Cells(2, 1).NumberFormat 'mémorise le format date
    For dat = Application.EoMonth(CDate(mois), 0) To .Cells(2, 1) Step -1
        .Columns(1).NumberFormat = "0"
        .AutoFilter 1, dat 'filtre automatique
        .Columns(1).NumberFormat = nf 'restitue le format date
        .Parent.ExportAsFixedFormat xlTypePDF, dossier & Format(dat, "dd mmm yyyy") & ".pdf"
    Next
End With
MsgBox "Les " & Day(Application.EoMonth(CDate(mois), 0)) & " fichiers pdf de " & mois & " ont été générés"
End Sub
Les fichiers pdf sont stockés dans le dossier du mois créé par la macro.
 

Pièces jointes

Le fil n'est pas terminé car le plus simple est de créer tous les fichiers pdf d'un seul coup.

Voyez le fichier joint et cette macro qui utilise le filtre automatique :
VB:
Sub testimpression()
Dim mois$, dossier$, nf$, dat As Long
mois = [A2] & " " & [A1]
If Not IsDate(mois) Or IsNumeric([A2]) Then Exit Sub
dossier = ThisWorkbook.Path & "\" & mois & "\" 'chemin à adapter au besoin
If Dir(dossier, vbDirectory) = "" Then MkDir dossier 'crée le dossier
Application.ScreenUpdating = False
With [A9].CurrentRegion
    .Parent.PageSetup.PrintArea = .Address 'zone d'impression
    nf = .Cells(2, 1).NumberFormat 'mémorise le format date
    For dat = Application.EoMonth(CDate(mois), 0) To .Cells(2, 1) Step -1
        .Columns(1).NumberFormat = "0"
        .AutoFilter 1, dat 'filtre automatique
        .Columns(1).NumberFormat = nf 'restitue le format date
        .Parent.ExportAsFixedFormat xlTypePDF, dossier & Format(dat, "dd mmm yyyy") & ".pdf"
    Next
End With
MsgBox "Les " & Day(Application.EoMonth(CDate(mois), 0)) & " fichiers pdf de " & mois & " ont été générés"
End Sub
Les fichiers pdf sont stockés dans le dossier du mois créé par la macro.
C'est super
testé et nickel
je mettrais deux boutons (bouton 1 macro par jour et boutons 2 macro par mois)

merci bien

TAOK
 
- 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
536
Réponses
3
Affichages
820
Réponses
10
Affichages
480
Retour