Macro enregistrer sous PDF + Renommer avec contenu de cellules

Résolu/Fermé
LNA2002
Messages postés
6
Date d'inscription
jeudi 21 août 2014
Statut
Membre
Dernière intervention
21 août 2014
- 21 août 2014 à 11:06
Styla27
Messages postés
44
Date d'inscription
mardi 16 février 2016
Statut
Membre
Dernière intervention
18 mars 2016
- 16 févr. 2016 à 12:03
Bonjour,

Je souhaite éditer une feuille excel en PDF et la classer dans un dossier spécifique.
J'ai réussi à l'aide de la macro suivante :

Sub Macro6()
'
' Macro6 Macro
'

'
ChDir _
"S:\10 Compta\Facturation Q42013\Facturation Excellium\FACTURES A CLASSER PAR MOIS"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"S:\10 Compta\Facturation Q42013\Facturation Excellium\FACTURES A CLASSER PAR MOIS\MACRO PDF.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
End Sub

Mon problème : je souhaite renommer le fichier en prenant des informations contenues dans les cellules de la feuille
R7 = numéro de facture
R8 = nom du client
R9 = date de facture

pour avoir quelque chose comme : 14-199 NOM CLIENT 21-08-2014

J'ai essayé de remplacer "MACRO PDF" dans le titre par différents essais du style [R7].value&[R8].value etc...
mais cela ne fonctionne pas.

Quelqu'un pourrait-il me venir en aide ?
Merci beaucoup

1 réponse

skk201
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
55
21 août 2014 à 11:18
Bonjour

pour récupéré la valeur d'une cellule c'est

Cells(numéro de ligne, numéro de colonne).Value

Enfin il y a plein d'autres manières...

je vous conseille aussi de précisier le nom de la feuille. Donc par exemple la valeur de la cellule E4 de la "Feuil1".

Sheets("Feuil1").Cells(4, 5).Value

0
LNA2002
Messages postés
6
Date d'inscription
jeudi 21 août 2014
Statut
Membre
Dernière intervention
21 août 2014

21 août 2014 à 11:32
Bonjour,

Je tente d'appliquer votre conseil mais il doit me manquer une étape.
J'ai fait ceci :

Sub Macro6()
'
' Macro6 Macro
'

'
ChDir _
"S:\10 Compta\Facturation Q42013\Facturation Excellium\FACTURES A CLASSER PAR MOIS"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"S:\10 Compta\Facturation Q42013\Facturation Excellium\FACTURES A CLASSER PAR MOIS\Sheets("sheet2").Cells(7, 18).Value.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
End Sub

Mais sans succès...
0
LNA2002
Messages postés
6
Date d'inscription
jeudi 21 août 2014
Statut
Membre
Dernière intervention
21 août 2014

21 août 2014 à 11:33
Est ce que sheet doit être nommé comme sur la feuille "New Fac" (2ème onglet)
J'ai essayé aussi.

Merci à vous
0
skk201
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
55
Modifié par skk201 le 21/08/2014 à 11:37
Il faut différencié les chaine de texte est les méthodes comme Sheets() ou Cells

Les chaines de caractère sont entre "guimmets" et les méthodes non.

Tu peux les lier grace à un "&" qui fait un concaténation.

Plus simplement il faut l'écrire comme ça :

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
"S:\10 Compta\Facturation Q42013\Facturation Excellium\FACTURES A CLASSER PAR MOIS" & Sheets("sheet2").Cells(7, 18).Value & ".pdf" 


Plus qu'a l'appliquer partout. Pardon de pas avoir été assez précis dès le début ;)
0
LNA2002
Messages postés
6
Date d'inscription
jeudi 21 août 2014
Statut
Membre
Dernière intervention
21 août 2014

21 août 2014 à 11:45
Nous ne sommes pas loin de la réussite, mais il y a peut être un espace qui bloque.
j'ai enlevé aussi le \ après "MOIS"
Ou le tiret en fin de phrase est-il indispensable ?

Voici ce que j'ai fait :

Sub Macro6()
'
' Macro6 Macro
'

'
ChDir _
"S:\10 Compta\Facturation Q42013\Facturation Excellium\FACTURES A CLASSER PAR MOIS"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"S:\10 Compta\Facturation Q42013\Facturation Excellium\FACTURES A CLASSER PAR MOIS&Sheets("sheet2").Cells(7, 18).Value & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
End Sub
Merci
0
skk201
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
55
Modifié par skk201 le 21/08/2014 à 12:01
Le souligner sert à faire un retour ligne en VBA car en VBA 1 ligne = une commande.

Vous pouvez très bien écrire :

Sub Macro6()
ChDir "S:\10 Compta\Facturation Q42013\Facturation Excellium\FACTURES A CLASSER PAR MOIS"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="S:\10 Compta\Facturation Q42013\Facturation Excellium\FACTURES A CLASSER PAR MOIS" & Sheets("sheet2").Cells(7, 18).Value & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub


ça devrai être bon

Pour ma part ça marche :)
0