Forcer le nom d'un fchier Excel

Bonjour à tous.

J'aimerais savoir s'il est possible de forcer le nom que porte un fichier Excel. Par macro ou par formule, peu importe.

En fait, je vais créer un fichier Excel qui va aller lire dans plusieurs autres, et pour les retrouver et fiabiliser mon outil "lecteur", j'aurais besoin de standardiser les noms des fichiers dans lesquels il va lire.

Merci d'avance de votre aide à tous.

Onafe57

Bonjour,

Alors non ce n'est pas possible de forcer un utilisateur à nommer un fichier de telle ou telle façon (ça ça revient à faire du management), en revanche tu peux choisir le nom que tu donnes à ton fichier si c'est toi qui l'enregistre par macro, tu peux par exemple nommer le fichier "Fichier VBA du " et ajouter ensuite la date et l'heure d'enregistrement par exemple.

Donc si tu enregistres à la place de l'utilisateur, pas de soucis pour le nommer comme tu le souhaites

Il reste à voir comment tu veux procéder et comment est utilisé le fichier, si tu fais déjà une macro dessus par exemple, il ne te restera plus qu'à ajouter en fin de programme ton enregistrement avec un nom standard.

Certains te donneront peut-être un moyen de suggérer le nom du fichier sinon

Bonjour à tous

Ce n'est possible qu'en interceptant la sauvegarde par VBA.

Salut à tous les deux.

Merci pour vos réponses.

Le but serait d'empêcher les utilisateurs de renseigner des noms exotiques que mon outil "lecteur" ne pourrait alors pas reconnaitre de manière automatique.

Donc à la fermeture du fichier, je peux contourner le message d'alerte d'Excel qui dit "Voulez vous enregistrer votre fichier ?" si des modifications ont été apportées et l'enregistrer automatiquement avec le nom que je souhaite, à l'endroit où le fichier est stocké ? Quitte même à écraser un fichier existant qui porterait le même nom ?

Si oui, pouvez vous m'indiquer le code que je dois utiliser pour ça ?

Merci.

Cordialement,

Onafe57.

Bonjour,

Pour ma solution, il faudrait mettre ça dans chaque fichier :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
'Me.SaveAs([Filename], [FileFormat], [Password], [WriteResPassword], [ReadOnlyRecommended], [CreateBackup], [AccessMode As XlSaveAsAccessMode = xlNoChange], [ConflictResolution], [AddToMru], [TextCodepage], [TextVisualLayout], [Local])
End Sub

Application.displayalerts = false désactive le message voulez-vous enregistrer etc...

le Me.saveas permet d'enregistrer toit-même le fichier

Pas sûr que ce soit la meilleure solution mais c'est une piste

Bonjour

J'avais fait cela pour un client

De mémoire il y avait un bouton pour sauvegarder.

Le code associé à de bouton valorisait une variable indiquant qu'on était passé par ce bouton.

L'événement BeforeSave vérifiait l'état de la variable et rejetait la sauvegarde si faite par un autre moyen.

Tu peux donc

  • soit forcer le nom à la sauvegarde avec un message
  • soit associer au bouton de sauvegarde un pseudo dialog : fichier = Application.GetSaveAsFilename("monfichier.xlsx") où tu gères ce que saisit l'utilisateur...
Rechercher des sujets similaires à "forcer nom fchier"