[VBA] Sauvegarder et écraser un Classeur

Fermé
Clem - 27 juil. 2012 à 08:37
 Clem - 31 juil. 2012 à 11:11
Bonjour,

Je rencontre actuellement un petit problème lors de la création d'un fichier excel par VBA.
J'ai 2 onglets contenant chacun plusieurs lignes, chacune possédant un "état d'avancement" défini.
je cherche à créer un bouton "importer" permettant d'ouvrir un nouveau classeur (possédant un nom fixé) et d'y entrer dans différents onglets les lignes classées par état.

Jusque là tout va bien, le sub rempli son rôle à merveille. Cependant, l'état caractérisant les différentes lignes change constamment, donc l'interet de ma fonction est, après l'importation, d'avoir un fichier actualisé, donc remplacant celui créé précédemment. J'aimerais ne pas avoir l'apparation du message "Ce fichier existe déja, voulez-vous le remplacer?" qui stoppe le calcul au début...

Mon code est actuellement celui-ci pour la création du fichier:

Application.DisplayAlerts = False
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application")
xlApp.SheetsInNewWorkbook = 4
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Add
xlBook.SaveAs ("ImportPapet.xls")
Set xlSheet = xlBook.Worksheets(1)
xlSheet.name = "Non Traité"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(2)
xlSheet.name = "En cours de traitement"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(3)
xlSheet.name = "En attente"
Set xlSheet = Nothing
Set xlSheet = xlBook.Worksheets(4)
xlSheet.name = "Problème résolu"
Set xlSheet = Nothing
Application.DisplayAlerts = True


J'avais vu que Application.DisplayAlerts permettait de supprimer ce problème, mais ca ne change rien ici :(

Auriez-vous une idée pour résoudre mon petit soucis?
Ou, est-il possible de créer un classeur comme précédemment possédant de base des fonctions vba permettant la suppression de celui-ci à sa fermeture?

Merci!

Cordialement;
Clem
A voir également:

3 réponses

f894009 Messages postés 17221 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 4 janvier 2025 1 712
27 juil. 2012 à 22:00
Bonjour,

Sub test()
  Dim xlApp As Excel.Application
  Dim xlBook As Excel.Workbook
  Dim xlSheet As Excel.Worksheet
  Set xlApp = CreateObject("Excel.Application")
  xlApp.SheetsInNewWorkbook = 4
  xlApp.Visible = True
  Set xlBook = xlApp.Workbooks.Add
  
  xlApp.Application.DisplayAlerts = False
  
  xlBook.SaveAs ("ImportPapet.xls")
  Set xlSheet = xlBook.Worksheets(1)
  xlSheet.Name = "Non Traité"
  Set xlSheet = Nothing
  Set xlSheet = xlBook.Worksheets(2)
  xlSheet.Name = "En cours de traitement"
  Set xlSheet = Nothing
  Set xlSheet = xlBook.Worksheets(3)
  xlSheet.Name = "En attente"
  Set xlSheet = Nothing
  Set xlSheet = xlBook.Worksheets(4)
  xlSheet.Name = "Problème résolu"
  Set xlSheet = Nothing
  'Application.DisplayAlerts = True
End Sub


Bonne suite
0
Bonjour,

Tout d'abord, désolé pour le temps de réponse un peu longuet...

Je viens d'apporter les modifications que vous m'avez proposé, mais j'ai toujours le message demandant confirmation de la suppression de ce fichier... Ce n'est pas si génant que ca, mais c'est surtout pour mon information personnelle que je cherche a comprendre comment marche les DisplayAlerts. Si quelqu'un a une idée, je suis preneur, sinon merci de votre aide :)

Cordialement,
Clem
0
Bonjour!

J'ai finalement réussi à régler le problème, même si je n'ai pas tout compris -_-

Il semble que mettre :

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="ImportPapet.xls"
Application.DisplayAlerts = True

fonctionne.

Voila voila, merci encore pour votre aide.

Cordialement,
Clem
0