Excel création macro avec chemin relatif [Résolu]

Signaler
Messages postés
8
Date d'inscription
jeudi 9 avril 2020
Statut
Membre
Dernière intervention
29 avril 2020
-
Messages postés
8
Date d'inscription
jeudi 9 avril 2020
Statut
Membre
Dernière intervention
29 avril 2020
-
Bonjour,
J'ai bien regardé tout ce qui était sur votre site, j'ai appris déjà beaucoup de choses, et je vous en remercie.
J'essaie de compiler plusieurs lignes de code..mais je n'y arrive pas...Grrrr
Néanmoins je coince sur un soucis depuis qqs jours et je me dis qu'il vaut mieux 10 qui savent que 1 qui cherche.
Je vais essayer d'exposer ma problématique.

J'aimerai pouvoir exporter en PDF une "partie" d'une feuille excel prédéfinie (A1:D10) par exemple dans un sous repertoire.
si possible (mais cela ne serait qu'un bonus), donner le nom d'une cellule (A1) au fichier pdf créé
Pour que mon logiciel puisse etre transposable sur d'autres pc, je souhaite ecrire cette macro avec des chemins RELATIFS

repertoire source : C:/temp
fichier excel : toto
feuille : poules

repertoire destination : C:/temp/impressions
fichier pdf créé : "A1".pdf ou xxxx.pdf

Par avance merci pour votre aide

Nicolas

3 réponses

Messages postés
6945
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
113
Messages postés
8
Date d'inscription
jeudi 9 avril 2020
Statut
Membre
Dernière intervention
29 avril 2020

merci pour les explications, je vais essayer de les intégrer dans ma macro.
pour le dossier destination, je suppose qu'il y a une différence entre activeworbook.path et thisworkbook.path (que je tente d'utiliser actuellement).

J'essaie d'integrer totu ca, merci
Messages postés
6945
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
113 >
Messages postés
8
Date d'inscription
jeudi 9 avril 2020
Statut
Membre
Dernière intervention
29 avril 2020

Pour une plage de cellule

Sub Save_pdf()
Dim nom As String
Dim chemin As String
Dim Plage As Range
Set Plage = ActiveSheet.Range("A1:D10")
chemin = "C:\Users\LePivert\Documents\" 'chemin du dossier destination à adapter
nom = Range("A1").Value
Plage.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        chemin & nom & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
Set Plage = Nothing
        MsgBox "Enregistrer" 'on peut supprimer
End Sub


Activeworbook.path et Thisworkbook.path indique tous les 2 le dossier dans lequel se trouve le classeur actif

@+ Le Pivert
Messages postés
8206
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 octobre 2020
19 >
Messages postés
8
Date d'inscription
jeudi 9 avril 2020
Statut
Membre
Dernière intervention
29 avril 2020

Comme les noms l'indiquent :
- ActiveWorkbook est le fichier actif (celui qui a le focus)
- ThisWorkbok est le fichier qui contient la macro.

Pour avoir un répertoire relatif, en général on utilises ThisWorkbook, par exemple :
Chemin = ThisWorkbook.Path & " \impressions\"
nomFichier = "xxxx.pdf"
nomCompletFichier = Chemin & nomFichier


Cdlt
Patrice
Messages postés
14855
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2020
444
Bonjour

les macros Excel ne se codent pas en VB.Net, mais en VBA, j'ai déplacé ta question dans le bon forum.
Messages postés
8
Date d'inscription
jeudi 9 avril 2020
Statut
Membre
Dernière intervention
29 avril 2020

Un GRAND MERCIIIII pour votre aide...Grace à vous, j'ai énormément avancé, et mon adage se vérifie une fois de plus... et maintenant, mes macros fonctionnent dans mon logiciel, quel que soit le pc sur lequel il est installé.