Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL pour MAC Export en pdf d'une plage de cellule, avec nom de fichier dans une cellule

CM1090

XLDnaute Nouveau
Bonsoir,

Après avoir traîné ici et là, je n'ai pas trouvé ma solution ... Je fais donc appel aux bonnes âmes présentes ici !

Je souhaiterais créer une macro (click sur un bouton) pour exporter une plage de cellules dans un fichier pdf. Le nom de celui-ci est dans une cellule de la feuille.

mon classeur a 3 feuilles : Home, Prop, Dev (dans cet ordre-là)
Plage de cellules à exporter : H9 à O55 (sur la page Dev) ; toujours la même plage exportée, mais avec des résultats qui varient
Nom du fichier destination : se situe en V13 (page Dev), et est variable
Chemin de destination : C:\NUM\CONT

Merci pour aide !

Christophe
 

Jacky67

XLDnaute Barbatruc
Bonjour,
Le code pourrait ressembler à ceci
VB:
Sub export()
    Dim Chemin$
    Chemin = "C:\NUM\CONT\"
    With Sheets("Dev")
        .PageSetup.PrintArea = "H9:O55"
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & .[v13]
    End With
End Sub
**Code pour PC, à voir si cela fonctionne sur Mac
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Merci bien.
2 Messages d'erreurs :
fenêtre "Erreur d'impression", et à débuguer (surligné en jaune) : .ExportAsFixedFormat Type:=xlTypePDF, FileName:=Chemin & .[v13]••••ˇˇˇˇ
Re..
Tester sur Xl pc
Si le chemin existe et la cellule V13 est renseignée sans caractères interdits et cela ne fonctionne pas sur mac, je ne serais plus d'aucun secours.
Désolé!
 

CM1090

XLDnaute Nouveau
Bonjour,
A force de chercher et d'adapter, ça y est, ça fonctionne !
Merci à ceux qui passe du temps pour les autres.
Voici le fichier et le code pour ceux que ça intéresserait.
Bon dimanche.
Christophe

Sub Classeur2B()

Dim sRep As String
Dim sFilename As String
Dim FichierExistant As Boolean

Range("H9:O55").Select

sRep = "/Users/xxxxxx/Desktop/NUM/CONT/"
'Mettre le nom de l'emplacement souhaité.

sFilename = ThisWorkbook.Worksheets("Dev").Range("V13").Value
'Mettre le nom de la cellule voulu pour le nom du fichier.

'sFilename = InputBox("Veuillez renseigner un nom de fichier :", "Nom de fichier", ThisWorkbook.Worksheets("Dev").Range("V13").Value)
'Cette ligne permet de saisir un autre nom de fichier, sinon c'est le texte de la cellule J1 qui est pris.

If sFilename = "" Then Exit Sub
'Sort de la macro si aucun nom n'a été donné ou que Annuler a été choisit précédemment

FichierExistant = (Dir(sRep & sFilename & ".pdf") <> "")
'La variable devient Vrai si le fichier existe

If FichierExistant = True Then
If MsgBox("Le fichier existe déjà, voulez-vous le remplacer ?", vbYesNo, "Demande de confirmation") = vbNo Then
ThisWorkbook.Worksheets("Dev").Select
Exit Sub
End If
End If
'Vérifie et demande une confirmation si il y a déjà un fichier du même nom

ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=sRep & sFilename, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True

Sheets(Array("Dev")).Select
ActiveSheet.Range("V13").Copy

End Sub
 

Pièces jointes

  • Classeur2.xlsm
    49.4 KB · Affichages: 13

Mafalda78

XLDnaute Nouveau
Bonjour,
Si vous rajouter des lignes celles-ci sont elles prises automatiquement dans votre macro ? Je cherche à automatiser la mise en page automatiquement selon le nombre de lignes ajoutées. Pourriez-vous me dire ce qu'il faut ajouter comme programmation ? D'avance merci.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…