Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

sauvegarde de fichier

  • Initiateur de la discussion Initiateur de la discussion sadx2005
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sadx2005

XLDnaute Nouveau
Bonjour ,

Je prepare un petit prog pour sauvegarder une feuille excel sous un nom precis + la date à partir du bouton
CommandButton1.

voici ce que ca donne :

Private Sub CommandButton1_Click()

Dim wk As Workbook
Dim ws As Worksheet

Set wk = Workbooks.Add(xlWBATWorksheet)
Set ws = ThisWorkbook.Worksheets("facture")
ws.Copy After:=wk.Sheets(Sheets.Count)

Dim nom As String

nom = (Range("A9").Value) & "-" & Format(Date, "dd-mm-yyyy")

ActiveWorkbook.ActiveSheet.SaveAs Filename:="F:\Document boulot\module\facture" & "\" & nom & ".xls"

rep = MsgBox("La facture est sauvegardée : " & nom, vbYes + vbInformation, "Sauvegarde de facture")
ActiveWorkbook.Close

End sub

Le probleme est que je n arrive pas a gérer les doublons , si par exemple je sauvegarde 2 ou 3 fois j ai le message " le fichier exite deja , voulez vous le remplacer ?"
J aimerai ne pas ecraser mais , par exemple incrementer les sauvegardes.
Voila voila 🙁
 
Re : sauvegarde de fichier

Salut Sadx2005 et bienvenue sur le forum

Le fait de créer un nouveau classeur puis de copier la feuille "facture" dedans et à la fin, pour moi n'a aucune utilité, donc supprimé ce bout de code

De plus quand tu déclares des variables objet :
Code:
Set ws = ThisWorkbook.Worksheets("facture")
Penses à les fermer à la fin de ton code
Code:
Set ws = Nothing

Mais là, je ne pense pas non plus que ce soit nécessaire

Donc voici le code épuré 😉
Code:
Private Sub CommandButton1_Click()
Dim VPath As String, VNom As String, Ind As Integer
ThisWorkbook.Worksheets("facture").Copy
VPath = "F:\Document boulot\module\facture\"
' Compilation du nom du fichier
VNom = (Range("A9").Value) & "-" & Format(Date, "dd-mm-yyyy") & ".xls"
' Vérifie que le fichier n'existe pas déjà
Do While Dir(VPath & VNom) <> ""
  ' Sinon on créé un nouveau nom avec un indice
  Ind = Ind + 1
  ' On récupère la bonne partie du nom de fichier
  If Ind = 1 Then
    VNom = Left(VNom, InStr(1, VNom, ".xls") - 1)
  Else
    VNom = Left(VNom, InStr(1, VNom, ".xls") - 3)
  End If
  VNom = VNom & "-" & Ind & ".xls"
Loop
' Quand le nom est Ok on sauvegarde
ActiveWorkbook.SaveAs Filename:=VPath & VNom
MsgBox "La facture est sauvegardée : " & VNom, vbYes + vbInformation, "Sauvegarde de facture"
ActiveWorkbook.Close
End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
588
Réponses
4
Affichages
867
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…