VBA: Ecraser/renommer un fichier

Bonjour,
J'ai un fichier excel nommé :
Fiche-Client-Nom

Dans ce fichier :
J'ai la cellule Q10 R10 S10 fusionnée. Dedans je mets le client (par exemple "dupont")
J'ai la cellule Q13 R13 S13 fusionnée? Dedans je mets le nom (par exemple "voiture")

Je veux un bouton qui renomme le fichier se renomme Fiche-dupont-voiture

J'ai l'impression qu'il faudrait passer par un enregistrer sous et écraser le fichier inital mais je n'y arrive pas.

Ce fichier excel comporte des macros il faut donc le format xlsm

En vous remerciant par avance
MJ

Bonjour,

Il n'y a malheureusement pas de commande "renommer" sur un fichier ouvert en VBA, c'est d'ailleurs assez logique car windows empeche cela de base. On peut contourner en sauvegardant une copie comme vous le vouliez, et supprimant l'original. La seconde étape étant selon moi optionnelle si vous avez un "model". Enfin bon, pour répondre exactement à la question :

Il suffit de mettre en commentaire la dernière ligne du Sub EnregistrerInfos pour ne pas supprimer le fichier original.

Un exemple ci-joint.

Sub EnregistrerInfos()
  Dim nomCl As String: nomCl = ActiveSheet.Range("Q10").Value2
  Dim infoCl As String: infoCl = ActiveSheet.Range("Q13").Value2

  ' sauvegarde d'une copie
  ThisWorkbook.SaveCopyAs "Fiche-" & nomCl & "-" & infoCl & ".xlsm"
  ' suppression de ce fichier
  KillMe
End Sub

Sub KillMe()
  With ThisWorkbook
    If Len(Dir(.FullName)) Then
      .Saved = True
      On Error Resume Next
      .ChangeFileAccess Mode:=xlReadOnly
      On Error GoTo 0
      SetAttr Pathname:=.FullName, Attributes:=vbNormal
      Kill .FullName
      .Close SaveChanges:=False
    End If
  End With
End Sub

Bonjour,
Merci mais je suis dsl cela ne fonctionne pas...

Le nouveau fichier renommé doit supprimer le fichier original...

En vous remerciant,

MJ

Bonjour à vous tous et toutes,

Je ne comprend pas un fichier nommer exemple Fiche-Client-Nom-xxx

Si l'on renomme le fichier Fiche-Client-Nom-dddd il ne peut pas l’écraser le fichier Fiche-Client-Nom-xxx puisque ce n'est pas le même nom,

Bonne continuation JCF

Bonjour,

Désolé, la macro fonctionne mais elle enregistrait les fichiers dans votre dossier Documents, regardez vous devriez les y retrouver.

La correction du code à apporter ci-dessous, pour enregistrer la fiche dans le dossier actuel :

Sub EnregistrerInfos()
  Dim nomCl As String: nomCl = ActiveSheet.Range("Q10").Value2
  Dim infoCl As String: infoCl = ActiveSheet.Range("Q13").Value2

  ' sauvegarde d'une copie
  With ThisWorkbook
    .SaveCopyAs .Path & "\Fiche-" & nomCl & "-" & infoCl & ".xlsm"
  End With
  ' suppression de ce fichier
  KillMe
End Sub
Rechercher des sujets similaires à "vba ecraser renommer fichier"