Renommer document Excel

Bonjour,

Je souhaite renommer via VBA le nom du document Excel dans lequel je me situe par la suite de caractère qui se trouve dans une cellule.

Comment puis-je faire ?

Merci d'avance !

Bonjour Tisajeff,

Imaginons que le nom de ton Fichier soit écrit en A1.

Je penses que si tu mets la ligne de code suivant, tu pourras enregistrer avec le nom écris en A1.

ActiveWorkbook.SaveAs Filename:=[A1].Value

Explication de la ligne de code ci-dessus :

  • ActiveWorkbook = le classeur actif (en gros le classeur sur lequel tu es)
  • Saveas = enregistrer sous
  • filename = le nom du fichier
  • [A1].Value = la valeur de la cellule A1.

Si jamais dans ta cellule A1, tu n'as qu'un nombre ou un texte, (en gros si tu n'as pas à la fin le type de fichier soit .xls pour fichier Excel) tu peux rajouter à la fin .xls comme ceci : ActiveWorkbook.SaveAs Filename:=[A1].Value & ".xls"

pour ton information le & permet de pouvoir écrire cote à cote ce qu'il y a an A1 suivi immédiatement de ce qu'il ya derrière le & .

Imaginons que dans la cellule A1, il y est écrit kiwi alors le fichier sera enregistré sous le nom de kiwi.xls

J'espère que ceci aura répondu à ta question et aura pu t'aider.

Cdt.

Parfait, c'est exactement ce que je cherchais à faire. Par contre il me faut maintenant réussir à l'adapter à mon cas et ce n'est pas gagné.

Si vous avez quelques instants je vous explique.

Pour le moment j'ai ce code là sur la feuille Workbook du VBA qui me permet de remplir 5 cellules en décomposant le nom du dossier dans lequel se trouve mon fichier excel.

Je souhaite donc donner au fichier excel le nom de l'une de ces 5 cellules. A quel endroit dois je insérer votre formule ? Dans le même Private Sub ? En créer une nouvelle ?

Private Sub Workbook_Open()

Dim Nomdossier As String
Dim A() As String
Nomdossier = Right(Workbooks(ActiveWorkbook.Name).Path, Len(Workbooks(ActiveWorkbook.Name).Path) - 12)
A = Split(Nomdossier, " - ")
Cells(5, 24) = A(0)
Cells(7, 24) = A(1)
Cells(5, 4) = A(2)
Cells(7, 7) = A(3)
Cells(5, 21) = A(4)

End Sub

J'ai réussi, je l'ai mis directement à la suite des lignes. Tout ce qui doit être fait à l'ouverture du fichier doit être directement mis dans cette fonction ? Workbook_Open()

Par contre, lorsque je ferme le fichier excel, je l'enregistre mais ne supprime pas l'original.

Lorsque je le réouvre et que je l'enregistre de nouveau il me dit que le fichier de ce même nom est déjà présent...

  • Lorsque tu fermes ton fichier Excel est ce un souhait de ne pas l'enregistrer sur l'original ? ou au contrairetu ne veux pas enregistrer sur l'original ?
  • Workbook_Open() = quand le classeur s'ouvre tout ce qu'il y a dessous doit être fait.
  • et tu peux aussi utiliserWorkbook_BeforeClose qui veut dire en gros "A la fermeture du classeur faire tout ce qu'il y a dessous".
    Private Sub Workbook_BeforeClose(Cancel As Boolean)

Ha d'accord je vois.

Je souhaite écraser l'existant à la fermeture du fichier, ce n'est pas le cas avec cette formule ?

Que dois-je changer ?

Private Sub Workbook_Open()

Dim Nomdossier As String
Dim A() As String
Nomdossier = Right(Workbooks(ActiveWorkbook.Name).Path, Len(Workbooks(ActiveWorkbook.Name).Path) - 12)
A = Split(Nomdossier, " - ")
Cells(5, 24) = A(0)
Cells(7, 24) = A(1)
Cells(5, 4) = A(2)
Cells(7, 7) = A(3)
Cells(5, 21) = A(4)

ActiveWorkbook.SaveAs Filename:="TEST - Fiche de suivi - AFF " & [X5].Value & ".xlsm"

End Sub
Rechercher des sujets similaires à "renommer document"