renomer un fichier actif et supprimer l'ancien

wrap food

XLDnaute Occasionnel
Bonjour à tous

j'ai encore besoin de vos service.

je souhaiterais pourvoir en VBA changer le nom du fichier actif mais.... c'est la que je bloque supprimer le fichier de départ.
Le fichier d'origine et le nouveau fichier son toujours dans le même classeur .

j'ai commençais a créer un code mais sa ne supprime pas le fichier d'origine.

je mets en pj une partie de mon fichier.

Par avance merci de votre aide
 

Pièces jointes

  • enregistrer sous un autre nom.xls
    191 KB · Affichages: 34
C

Compte Supprimé 979

Guest
Re : renomer un fichier actif et supprimer l'ancien

Bonjour wrap food

Tout simplement
Code:
Sub SaveAsDelete()
  OldPathName = ThisWorkbook.Path & "\" & ThisWorkbook.Name
  ThisWorkbook.SaveAs NewPathName
  Kill OldPathName
End Sub
Sinon, dans ton UsF, ça donne
Code:
Private Sub changement_mon_Click()
  Dim OldName As String, PathWB As String
  PathWB = ActiveWorkbook.Path & "\"


  If PathWB = "\" Then
    'le fichier n'est pas encore enregistré
    ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Range("y1") & ".xls"
  Else
    'enregistre sous le nouveau nom et supprime l'ancien
    OldName = PathWB & ActiveWorkbook.Name
    ActiveWorkbook.SaveAs Filename:=PathWB & Range("y1") & ".xls"
    ' Supprimer l'ancien fichier
    Kill OldName
  End If
End Sub

Ou alors, je n'ai pas tout compris :eek:

A+
 
Dernière modification par un modérateur:

wrap food

XLDnaute Occasionnel
Re : renomer un fichier actif et supprimer l'ancien

merci beaucoup brunoM45

désolé mais j'ai voulu adapter le code( avec un de mes code) pour pouvoir envoyer le nouveau fichier en pièce jointe et cel ne fonctionne pas .
j'ai un code erreur " erreur d'exécution '70'
permission refusé "
ci-dessous le code

Private Sub CommandButton1_Click()
OldName = ThisWorkbook.Name
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Range("y1") & ".xls"
Kill OldName
Dim MonOutlook As Object
Dim MonMessage As Object
Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.CreateItem(0)
MonMessage.To = Range("B5")
MonMessage.cc = Range("B6") & ";" & Range("A8") & ";" & Range("A9")
MonMessage.Subject = Range("AA1")
MonMessage.Body = Range("Y8")
MonMessage.Attachments.Add ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
MonMessage.Send
End Sub


seriez-vous pourquoi cela bloc.

Par avance merci
 
C

Compte Supprimé 979

Guest
Re : renomer un fichier actif et supprimer l'ancien

Bonjour wrap food

merci beaucoup brunoM45
désolé mais j'ai voulu adapter le code( avec un de mes code) pour pouvoir envoyer le nouveau fichier en pièce jointe et cel ne fonctionne pas
j'ai un code erreur " erreur d'exécution '70'
permission refusé "

Désolé c'est moi qui te mets dans l'erreur :rolleyes:

Pour OldName il faut le chemin complet + le nom du classeur
Mais si tu essayes d'envoyer le fichier actif tu auras toujours un souci

Si j'ai bine compris, je vois le code plutôt comme ça
Code:
Private Sub CommandButton1_Click()  Dim sPath As String, sFic As String
  Dim MonOutlook As Object
  Dim MonMessage As Object
  ' Définir le chemin et el nom du fichier
  sPath = ThisWorkbook.Path & "\"
  sFic = "FichierTemp.xls"
  ' Créer une copie du classeur
  ThisWorkbook.SaveCopyAs sPath & sFic
  ' Créer une instance Outlook
  Set MonOutlook = CreateObject("Outlook.Application")
  Set MonMessage = MonOutlook.CreateItem(0)
  MonMessage.To = Range("B5")
  MonMessage.cc = Range("B6") & ";" & Range("A8") & ";" & Range("A9")
  MonMessage.Subject = Range("AA1")
  MonMessage.Body = Range("Y8")
  MonMessage.Attachments.Add sPath & sFic
  MonMessage.Send
  ' Supprimer le fichier temporaire
  Kill sPath & sFic
End Sub

A+
 

wrap food

XLDnaute Occasionnel
Re : renomer un fichier actif et supprimer l'ancien

Re bonjour

Et encore merci de passer du temps sur mon probléme.
en faite, je souhaite renommer le fichier actif avec la contenu de la cellule Y1 et en suite envoyer ce fichier en pièce jointe par mail .
je souhaiterais que le fichier de base soit effacé et garder le dernier fichier crée ( avec comme non le contenue de la cellule Y1)

j'en demande peut être un peu trop .....

merci encore
 
C

Compte Supprimé 979

Guest
Re : renomer un fichier actif et supprimer l'ancien

Re,
Re bonjour
Et encore merci de passer du temps sur mon probléme.
Pas de souci :p

en faite, je souhaite renommer le fichier actif avec la contenu de la cellule Y1 et en suite envoyer ce fichier en pièce jointe par mail .
je souhaiterais que le fichier de base soit effacé et garder le dernier fichier crée ( avec comme non le contenue de la cellule Y1)
j'en demande peut être un peu trop .....
Nooooonnn ;)

Voici une façon de faire qui fonctionne :eek:
Code:
Private Sub CommandButton1_Click()
  Dim sPath As String, sFic As String, OldPathName As String
  Dim MonOutlook As Object, MonMessage As Object
  ' Définir le chemin et el nom du fichier
  sPath = ThisWorkbook.Path & "\"
  sFic = Range("Y1").Value & ".xls"
  ' Mémoriser l'ancien nom
  OldPathName = sPath & ThisWorkbook.Name
  ' Sauvegarde le classeur sous le nouveau nom
  ThisWorkbook.SaveAs sPath & sFic
  ' Supprimer l'ancien fichier
  Kill OldPathName
  ' Créer une instance Outlook
  Set MonOutlook = CreateObject("Outlook.Application")
  ' Créer un nouveau message
  Set MonMessage = MonOutlook.CreateItem(0)
  MonMessage.To = Range("B5").Value
  MonMessage.cc = Range("B6").Value & ";" & Range("A8").Value & ";" & Range("A9").Value
  MonMessage.Subject = Range("AA1")
  MonMessage.Body = Range("Y8")
  MonMessage.Attachments.Add sPath & sFic
  'MonMessage.Display ' Afficher le message
  MonMessage.Send ' Envoi du message
End Sub

A+
 
Dernière modification par un modérateur:

wrap food

XLDnaute Occasionnel
Re : renomer un fichier actif et supprimer l'ancien

Bonjour
C'est encore moi et j'ai nouveau problème.
Quand je relance la macro sur le fichier créé par cette même macro j'ai une erreur au niveau de "Kill OldPathName"
Seriez-vous pourquoi cela fonction la premier la premier fois et pas la deuxième fois .
cela vient il du fait que les fichiers deux fichiers ont le même nom?
si c'est la cas comment faire pour supprimer le fichier de base
par avance merci de votre aide
 
C

Compte Supprimé 979

Guest
Re : renomer un fichier actif et supprimer l'ancien

Bonjour wrap food,

Quel est le message d'erreur !?

Sinon, si la valeur de Y1 ne change pas à la 2ème exécution, forcément que tu auras un soucis :rolleyes:
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12