macro - rendre dynamique la zone de destination d'un fichier

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 !

gvives

XLDnaute Occasionnel
Bonjour,

J’ai un petit souci concernant une macro que j’essaie de réaliser.

Cette macro me permet de convertir une page excel en fichier pdf (la zone à éditer est définie par l’utilisateur).

Cette macro fonctionne lorsque la destination du fichier pdf est fixe (cf version OK ci-dessous)

Sub editpdf()
'
' pdf Macro
'

'
ActiveWindow.DisplayZeros = True
LigFin = [A:A].Find("fin", SearchOrder:=xlByRows, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Row
ColFin = [2:2].Find("0", SearchOrder:=xlByColumns, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Column
If Err = 0 Then
ActiveSheet.PageSetup.PrintArea = Range("B2", Cells(LigFin - 1, ColFin - 1)).Address
Else
ActiveSheet.PageSetup.PrintArea = [A1].CurrentRegion.Address
End If
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
" C:\Documents\stagiaire\stagiaire1\2011\aptitude\compterendu.pdf ", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

En revanche lorsque j’essaie de rendre variable la destination du fichier grâce à des valeurs saisies sur des onglets elle ne marche pas (cf version avec beug ci-dessous)

Sub editpdf()
'
' pdf Macro
'

'
ActiveWindow.DisplayZeros = True
LigFin = [A:A].Find("fin", SearchOrder:=xlByRows, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Row
ColFin = [2:2].Find("0", SearchOrder:=xlByColumns, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Column
If Err = 0 Then
ActiveSheet.PageSetup.PrintArea = Range("B2", Cells(LigFin - 1, ColFin - 1)).Address
Else
ActiveSheet.PageSetup.PrintArea = [A1].CurrentRegion.Address
End If
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Documents\stagiaire\"&onglet1!$A$1&"\2011\"&onglet2!$F$7&"\compterendu.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

Pourriez-vous m’aiguiller sur la solution.

Merci à tous.
 
Re : macro - rendre dynamique la zone de destination d'un fichier

Bonjour gvive,Remplace
VB:
"&onglet1!$A$1&"
Par
VB:
& sheets("Onglet1").Range("$A$1").Value &
même chose pour
VB:
"&onglet2!$F$7&
avec
VB:
& sheets("Onglet2").Range("$F$7").Value &
Cordialement
 
Re : macro - rendre dynamique la zone de destination d'un fichier

Bonjour Efgé,

Merci pour ta réponse mais je saisie donc comme tu me l'a indiqué mais ça m'affiche "Erreur compilation : Attendu fin instruction" en me surlignant "onglet 2".

Sub test()
'
' test Macro
'

'
ActiveWindow.DisplayZeros = True
LigFin = [A:A].Find("fin", SearchOrder:=xlByRows, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Row
ColFin = [2:2].Find("0", SearchOrder:=xlByColumns, SearchDirection:=xlNext, LookAt:=xlWhole, LookIn:=xlValues).Column
If Err = 0 Then
ActiveSheet.PageSetup.PrintArea = Range("B2", Cells(LigFin - 1, ColFin - 1)).Address
Else
ActiveSheet.PageSetup.PrintArea = [A1].CurrentRegion.Address
End If
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Documents\stagiaire\&sheets("Onglet2").range("$A$1").Value&\2011\sheets("onglet2").range("$F$7").value&"\compterendu.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End Sub

Merci encore pour ton aide.
 
Re : macro - rendre dynamique la zone de destination d'un fichier

RE, Problme de " double quotes...
VB:
Filename:= "C:\Documents\stagiaire\" & sheets("Onglet2").range("$A$1").Value & "\2011\" & sheets("onglet2").range("$F$7").value & "\compterendu.pdf",
Cordialement
 
Re : macro - rendre dynamique la zone de destination d'un fichier

Re, Désolé mais je suis sous 2003 à l'heure actuelle. Je ne peux donc pas tester l'erreur (pas de ExportAsFixedFormat). D'autres pourront regarder à ma place... Cordialement
 
Re : macro - rendre dynamique la zone de destination d'un fichier

J'ai solutionné le problème Efgé ton aide m'a été précieuse tout de même 😉

Filename:= _
"C:\Documents\...

au lieu de :

Filename:= "C:\

J'ai tenté par hasard et ça a marché 😕

Si tu peux m'expliquer la différence ce serait sympa ...

Bonne journée...
 
- 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
5
Affichages
842
Retour