XL 2013 supprimer un fichier excel sur lequel on travail

rochethomas

XLDnaute Nouveau
Bonjour ,
J'aurais besoin de votre aide .
Voici le problème, j'ai un fichier excel qui quand on l'enregistre se nomme grace a certaine donner du classeur . Ces paramètres change et quand on enregistre il crée un nouveau fichier avec le nouveau nom ( tout est normal ) sauf que je souhaiterais supprimé l'ancien et gardé que le dernier modifier avec le nouveau nom
et ce que cela est possible ?
si besoin je peux joindre le fichier
PS: Je suis débutant et ne métrise pas parfaitement le VBA mais je demande que a apprendre
 
Solution
Bonsoir.
Simple :
VB:
Dim AncienNom As String, NouveauNom As String
…
AncienNom = ActiveWorkbook.FullName
NouveauNom = Chemin & "\" & Num_Semaine & "\" & Ouvrage_IDR & " - " & Nature_Travaux _
   & " - " & Appareil_concerné & " - " & Validation & ".xlsm"
ActiveWorkbook.SaveAs Filename:=NouveauNom
If NouveauNom <> AncienNom Then Kill AncienNom

xUpsilon

XLDnaute Accro
Bonjour,

Pour supprimer un fichier, se renseigner sur ce lien. Pour ce faire, il vous faudra connaitre le chemin du fichier, et donc son nom avant que celui-ci ne soit modifié.
Le nom du fichier en question a t'il une structure particulière ? Du genre TestXLD_User_Date avec User et Date qui correspondent à votre nom d'utilisateur et à la date d'hier ?

Bonne journée,
 
C

Compte Supprimé 979

Guest
Bonjour rochethomas et bienvenue ;)

Tout dépend comment le nouveau fichier est créé 🤔

Si c'est par
VB:
ThisWorkBook.SaveAs Chemin & Nom
Il suffit alors de mémoriser le nom de l'ancien fichier avant l'enregistrement
et de le supprimer par
Code:
Kill Chemin & Nom
Après l'enregistrement

J'espère que ce sera plus clair

A+

Edit : re-salut xUpsilon 😜
 

rochethomas

XLDnaute Nouveau
Bonjour,

Pour supprimer un fichier, se renseigner sur ce lien. Pour ce faire, il vous faudra connaitre le chemin du fichier, et donc son nom avant que celui-ci ne soit modifié.
Le nom du fichier en question a t'il une structure particulière ? Du genre TestXLD_User_Date avec User et Date qui correspondent à votre nom d'utilisateur et à la date d'hier ?

Bonne journée,
non il n'a pas une forme particulière ,
ActiveWorkbook.SaveAs Filename:= _
Chemin & "\" & Num_Semaine & "\" & Ouvrage_IDR & " - " & Nature_Travaux & " - " & Appareil_concerné & " - " & Validation & ".xlsm"
la seul variable qui change est la variable validation qui évolue et pour pas que cela crée plusieurs fichier identique mais avec des noms différent je voudrais supprimé le dernier sauvegarder a cette endroit avant de l'enregistrer
 

rochethomas

XLDnaute Nouveau
Bonjour rochethomas et bienvenue ;)

Tout dépend comment le nouveau fichier est créé 🤔

Si c'est par
VB:
ThisWorkBook.SaveAs Chemin & Nom
Il suffit alors de mémoriser le nom de l'ancien fichier avant l'enregistrement
et de le supprimer par
Code:
Kill Chemin & Nom
Après l'enregistrement

J'espère que ce sera plus clair

A+

Edit : re-salut xUpsilon 😜
voici le code
ActiveWorkbook.SaveAs Filename:= _
Chemin & "\" & Num_Semaine & "\" & Ouvrage_IDR & " - " & Nature_Travaux & " - " & Appareil_concerné & " - " & Validation & ".xlsm"
comment mémoriser le chemin ?
la variable qui bouge est la validation qui évolue 3 fois ! Je ne sais pas comment faire pour lui dire enregistre le nouveau fichier avec la variable modifier et supprimer le chier qui porte le nom actuelle
 

rochethomas

XLDnaute Nouveau
Bonsoir.
Simple :
VB:
Dim AncienNom As String, NouveauNom As String
…
AncienNom = ActiveWorkbook.FullName
NouveauNom = Chemin & "\" & Num_Semaine & "\" & Ouvrage_IDR & " - " & Nature_Travaux _
   & " - " & Appareil_concerné & " - " & Validation & ".xlsm"
ActiveWorkbook.SaveAs Filename:=NouveauNom
If NouveauNom <> AncienNom Then Kill AncienNom
Bonjour
Merci pour votre réponse
Je viens de faire un essaie et sa bloque avec un message qui me dit Impossible d'utilisé cette extention avec le type de fichier sélectrionné. modifier l'extention du fichier dans la zone de texte nom du fichier ou sélectionné un autre type de fichier dans la zone type fichier
sa bloque la ou j'ai surligné en rouge dans la fenetre VB
VB:
Sub Enregistre_Prepa()
'
Chemin = "K:\MALINTRAT\MAINTENANCE\A-Préparations Travail - Consignation\Préparation de travail\Année\2022"
Num_Semaine = Sheets("Page de Garde").Range("H4").Value
Type_DJ = Sheets("Page de Garde").Range("M24").Value
Ouvrage_IDR = Sheets("Page de Garde").Range("D10").Value
Nature_Travaux = Sheets("Page de Garde").Range("D30").Value
Appareil_concerné = Sheets("Page de Garde").Range("M24").Value
Validation = Sheets("Page de Garde").Range("L58").Value

If Sheets("Page de Garde").Range("H4") <> "" And Sheets("Page de Garde").Range("D10") <> "" And Sheets("Page de Garde").Range("M24") <> "" And Sheets("Page de Garde").Range("D30") <> "" And Sheets("Page de Garde").Range("D35") <> "" Then
  


Dim AncienNom As String, NouveauNom As String

AncienNom = ActiveWorkbook.FullName
NouveauNom = Chemin & "\" & Num_Semaine & "\" & Ouvrage_IDR & " - " & Nature_Travaux _
   & " - " & Appareil_concerné & " - " & Validation & ".xlsm"
[COLOR=rgb(184, 49, 47)][U][B][I]ActiveWorkbook.SaveAs Filename:=NouveauNom[/I][/B][/U][/COLOR]
If NouveauNom <> AncienNom Then Kill AncienNom

        

    
    'ActiveWorkbook.SaveAs Filename:= _
'Chemin & "\" & Num_Semaine & "\" & Ouvrage_IDR & " - " & Nature_Travaux & " - " & Appareil_concerné & " - " & Validation & ".xlsm" _
        ', FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False


        
        
        Workbooks.Open Filename:="K:\MALINTRAT\MAINTENANCE\A-Préparations Travail - Consignation\Préparations de travail pour chantiers 2022 indice 3.xlsx"
        MsgBox ("Votre préparation a été enregistré" & vbLf & "Veuillez renseigner le fichier Préparation de travail pour chantier 2022 ")
        
        Else
    
        
    MsgBox ("Veuillez entrer la date, le départ,la nature des travaux, le nom du rédacteur ansi que de cocher le type de maintenance ")
      
        End If
        
    
End Sub
 

rochethomas

XLDnaute Nouveau
Bonjour J'ai un problème avec mon code il m'affiche une erreur d'éxecution 70 "permission refusée

Sub Enregistre_Prepa()

Chemin = "K:\MALINTRAT\0.Préparation de travail\Départ\"
Num_Semaine = Sheets("Page de Garde").Range("D4").Value
Type_DJ = Sheets("Page de Garde").Range("M24").Value
Ouvrage_IDR = Sheets("Page de Garde").Range("D10").Value
Nature_Travaux = Sheets("Page de Garde").Range("D30").Value
Appareil_concerné = Sheets("Page de Garde").Range("M24").Value
Validation = Sheets("Page de Garde").Range("L58").Value

If Sheets("Page de Garde").Range("D4") <> "" And Sheets("Page de Garde").Range("D10") <> "" And Sheets("Page de Garde").Range("M24") <> "" And Sheets("Page de Garde").Range("D30") <> "" And Sheets("Page de Garde").Range("C35") <> "" Then



Dim AncienNom As String, NouveauNom As String

AncienNom = ActiveWorkbook.FullName
NouveauNom = Chemin & "\" & Ouvrage_IDR & "\" & Num_Semaine & " - " & Nature_Travaux _
& " - " & Appareil_concerné & " - " & Validation & ".xlsm"



If NouveauNom <> AncienNom Then Kill AncienNom




'ActiveWorkbook.SaveAs Filename:= _
'Chemin & "\" & Num_Semaine & "\" & Ouvrage_IDR & " - " & Nature_Travaux & " - " & Appareil_concerné & " - " & Validation & ".xlsm" _
', FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False




Workbooks.Open Filename:="K:\MALINTRAT\MAINTENANCE\A-Préparations Travail - Consignation\Préparations de travail pour chantiers 2022 indice 3.xlsx"
MsgBox ("Votre préparation a été enregistré" & vbLf & "Veuillez renseigner le fichier Préparation de travail pour chantier 2022 ")

Else


MsgBox ("Veuillez entrer la date, le départ,la nature des travaux, le nom du rédacteur ansi que de cocher le type de maintenance ")

End If


End Sub
 

Dranreb

XLDnaute Barbatruc
Sur quelle instruction, le message ?
Si c'est sur le Kill, vérifiez si l'ancien fichier n'est pas toujours encore aussi ouvert …
et si c'est sur le SaveAs, au contraire si un autre classeur ouvert ne porte pas déjà le nouveau nom.
 
Dernière édition:

Discussions similaires