Macro pour enregistrer dans un nouveau classeur Excel

Bastien43

XLDnaute Occasionnel
Bonjour,

Je souhaite lorsque je clique sur un bouton , extraire la feuille excel et l'enregistrer comme nouveau classeur excel.

Voici la macro :

Sheets("DDP").Select
Sheets("DDP").Copy

Dim chemin As String
chemin = ThisWorkbook.Path & "\Détails de prix"
ActiveWorkbook.SaveAs Filename:=chemin & "\" & [S1].Value & [T1].Value & ".xlsx"

Cela fonctionne.

Par contre si le document existe déjà, ou si il est déjà ouvert. Je ne veux ou ne peux pas le supprimer. Excel me prévient.

Je clique donc sur "non" dans l'invite de commande Excel et une boite de dialogue "débogage" s'affiche.

Comment éviter ce bug et sortir proprement si je clique sur "non"

Je vous remercie pour votre aide

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re

Tu as mis résolu mais sans poster la solution que tu utilises.
Je me permets donc un petit recyclage (pour les autres lecteurs du fil)
La fonction
VB:
Function FileExiste(F$) as Boolean
FileExiste = Dir(F) <> vbNullString
End Function
Voir exemple d'emploi ci-dessous
'Dans un module standard
VB:
Sub a()
Dim p$, f$
'juste utile pour le test - A SUPPRIMER une fois le test fait
Randomize
f = Application.WorksheetFunction.Rept(Int((Rnd * 123454321) ^ 1.618), 2) & ".xls"
'/////////////////////////////////////////////////////////////
p = Split(Environ(23) & Application.PathSeparator, "=")(1)
If FileExiste(p & f) Then
Workbooks.Open (p & f)
Else
MsgBox "Le fichier " & p & f & " n'existe pas!"
End If
End Sub
 

Discussions similaires