Génération automatique d'un nom de fichier

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

N

Natiffar

Guest
Bonjour,

Après avoir fouiné un long moment sur les forums espérant régler seul mon problème, je me résigne à faire appel à plus calé.

J'ai créé des modèles de bons de commande sur EXCEL 2003 (au format xlt) et je souhaiterai pouvoir utiliser, entre autre, le numéro de commande inscrit par l'utilisateur dans une cellule pour forcer le nom du fichier lors de son enregistrement.

Pour essayer d'être plus clair, voici un petit exemple:

En G15 j'ai le numéro de commande '05 T 001',
En G2 le nom d'un fournisseur

J'aimerai qu'en cliquant sur 'enregistrer' le fichier soit enregistré avec le nom '05 T 001_nomdufournisseur.xls', le tout placé dans un dossier spécifique biensûr et si possible en lecture seul.

Biensûr, si les infos ne sont pas saisies dans les champs, il faudrait un nom de fichier du type 'brouillon 1' avec un numéro qui s'incrémente.

Idéalement, si cela pouvait aussi l'enregistrer en pdf...

Vous allez sûrement trouvé que j'abuse, mais je galère.

En espérant lire prochainement une solution simple et clair (si c'est possible !).

Merci d'avance
 
Bonjour Nattifar, bonjour Baside,

Pour l'enregistrement en PDF, le plus simple est d'ajouter à la macro de baside une impression du fichier sur l'imprimante Adobe PDF en ajoutant les 3 lignes suivantes à la macro de Baside:

Application.ActivePrinter = 'Adobe PDF sur Ne02:'
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
'Adobe PDF sur Ne02:', Collate:=True

Pour que cela fonctionne automatiquement, il faut décocher les cases:

'Afficher le fichier PDF obtenu'
'Demander le nom du fichier PDF'

dans les paramètres par défaut de l'imprimante Adobe PDF.

@+

Gael
 
Merci à vous deux !

Je rencontre encore 2 difficultés:

1 / Concernant l'enregistrement en .xls cela fonctionne bien, mais ma feuille et tous mes objets étant protégés, la ligne de code :

ActiveSheet.Shapes('Rectangle 1').Cut

ne fonctionne pas et le bouton reste affiché dans mon fichier final. J'ai essayé de placer d'autres codes afin de déverrouiller l'objet mais cela ne fonctionne pas:

ActiveSheet.Shapes('Rectangle 1').Locked = False,
ou ActiveSheet.Shapes('Rectangle 1').Protected = False,...


2 / Gael, ton code me génére une erreur dès la première ligne de code. En fait, je crois qu'il ne reconnait pas l'imprimante. J'ai tenté de remplacé le nom dans la ligne de commande mais sans succés.

Merci d'avance pour vos précisions sur ces points.

Et enfin oui, tous les fichiers seront stockés dans le même dossier! Pourquoi ?


Merci pour votre aide à tous les 2.

Natiffar
 
Rebonjour,


Suite à mes échanges précédents avec Baside et Gael, il m'est venu l'envie, en plus de générer un pdf, de vouloir imprimer sur une vrai imprimante en réseau.
Jusque-là pas de difficultés, sauf que tous les utilisateurs n'auront pas accès à mon imprimante à moi. Donc, je dois prévoir non pas d'imprimer, mais d'ouvrir le gestionnaire d'impression pour que l'utilisateur puisse choisir son imprimante.
Et là, s'en est trop pour moi !
Vous avez encore des bons tuyaux ?

Merci d'avance à tous.

Natiffar

😉
 
Bonjour Nattifar,

En fait les lignes de code que je t'ai envoyées proviennent d'un enregistrement automatique.

ce que tu peux faire est de créer une nouvelle macro ce qui va enregistrer toutes tes actions. puis tu lances l'impression sur l'imprimante adobe PDF et tu arrêtes l'enregistrement.

Tu copie ensuite les lignes de code de la nouvelle macro (sans les Sub et End sub à la suite de la macro de baside.

Pour l'impression en réseau, on pourrait d'abord lancer une impression sans modifier l'imprimante (ce qui lance sur l'imp par défaut) puis lancer l'impression sur l'imp PDF:

2 problèmes dans ce cas,

* La date du fichier PDF sera postérieure à l'impression
* Si ti relances à nouveau la macro, c'est l'imp PDF qui sera active.

Gael
 
Merci Gael.

Effectivement, cela marche mieux.

J'ai réussi à intégrer les commandes d'impression ainsi que de génération du pdf avec un nom prédéfini. Mais le pdf ne se stocke pas dans le chemin que je lui indique dans la commande prtofilename. En fait la commande suivante:

Application.ActivePrinter = 'Acrobat PDFWriter sur LPT1:'
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:='Acrobat PDFWriter sur LPT1:', prtofilename:='X:\\Commandes\\UL\\2005\\Archives\\' & x & '.pdf'


me donne un résultat assez bizzare. Il enregistre bien un pdf dans le dossier indiqué, mais ce fichier pèse 0K et ne s'ouvre pas. Par contre, en parallèle, il me crée bien un pdf dans le dossier par défaut indiqué dans mes options excel.

Soit je n'utilise pas le bon paramétrage, soit ce n'est pas possible avec le commande printout. Dans ce cas, existe-t-il une possibilité de déplacer le fichier dans le bon dossier une fois enregistré dans le dossier par défaut?

merci d'avance
 
Bonjour,

Concernant le problème que j'évoquais avec la commande :

ActiveSheet.Shapes('rectangle 1').Cut


J'ai réglé le problème en utilisant la commande:

Worksheets('Feuil1').Protect Password:='password', UserInterfaceOnly:=True

placée dans la procédure Workbook_Open de mon classeur comme le préconise Laurent Longre (voir Lien supprimé)

Gràce à ce forum, j'avance gentillement.

C'est cool. Merci 🙂
 
Bonjour,


C'est avec un peu de retard que j'arrive sur le forum avec le même problème:

Je n'arrive pas à imprimer un fichier excel dans un fichier pdf de nom prédéfini .

As tu résolu ton problème . Peux tu m'indiquer la procédure.


Merci à tous...
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

V
Réponses
0
Affichages
1 K
VBAnovicegirl
V
H
Réponses
5
Affichages
1 K
H
P
Réponses
6
Affichages
1 K
M
Réponses
2
Affichages
1 K
Mariano
M
I
Réponses
4
Affichages
1 K
I
D
Réponses
1
Affichages
743
delouest
D
Retour