Gérer les conflits lors d'un "Enregistrer sous"

Troudz

XLDnaute Occasionnel
Bonsoir tout le monde,

Je suis en train de créer une commande qui permette à l'utilisateur de sauvegarder une partie d'une classeur dans un nouveau fichier. Je laisse donc à l'utilisateur la possibilité de choisir le chemin de destination puis je lance la copie.

Mon soucis est que, si le nom choisi existe déjà et que l'utilisateur refuse d'écraser le fichier existant, le code me renvoi une erreur.

Comment puis je faire pour cela annule tout simplement l'enregistrement ?

Je vous remercie par avance pour votre aide.

Mon code :

Code:
Private Sub CommandButton4_Click()
    Dim NouveauClasseur As Workbook
    Dim FichierDest As Variant
    FichierDest = Application.GetSaveAsFilename(FileFilter:="Fichiers Excel (*.xls),*.xls", Title:="Destination de l'enregistrement")
    If FichierDest <> False Then
        Application.ScreenUpdating = False
        ThisWorkbook.Sheets("Toto").Cells.Copy
        ThisWorkbook.Sheets("Toto").Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        ThisWorkbook.Sheets("Titi").Cells.Copy
        ThisWorkbook.Sheets("Titi").Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        ThisWorkbook.Sheets(Array("Toto", "Toto")).Copy
        Set NouveauClasseur = ActiveWorkbook
        NouveauClasseur.SaveAs FichierDest
        NouveauClasseur.Close False
        Application.ScreenUpdating = True
     End If
End Sub
 

vmatthieu

XLDnaute Occasionnel
Re : Gérer les conflits lors d'un "Enregistrer sous"

bonsoir,
j'essayerai deux choses
la plus simple un "on errore resume next"
et sinon de demander avant l'enregistrement avec une msgbox que l'utilisateur veuille bien écraser le fichier sinon il répond annulé ou non
tu peux le gérer avec

select case msgbox("ton texte",vbyesno)

case vbyes
goto line 1 'la reprise de ta macro tu auras mis line1 en début de ligne

case vbno
exit sub
end select

Ce n'est peut être pas la solution que tu attendais mais on fait selon ses moyens et les miens sont limités.
bonne soirée
 

Pierrot93

XLDnaute Barbatruc
Re : Gérer les conflits lors d'un "Enregistrer sous"

Bonjour,

peut être avec ceci :
Code:
Application.DisplayAlerts = False
NouveauClasseur.SaveAs FichierDest
Application.DisplayAlerts = True
l'utilisateur n'aura pas la boite de dialogue comme quoi le fichier existe déjà.... on peut supposer qu'il le sait puisque c'est lui qui a choisi le chemin et nom fichier.....

bonne journée
@+
 

Discussions similaires

Réponses
2
Affichages
733

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87