[VBA] Sauvegarder et écraser un Classeur
Clem
-
Clem -
Clem -
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
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:
- [VBA] Sauvegarder et écraser un Classeur
- Imprimer un classeur excel sur mac - Guide
- Sauvegarder favoris chrome - Guide
- Sauvegarder sms iphone - Guide
- Sauvegarder favoris firefox - Guide
- Comment sauvegarder un mail - Guide
3 réponses
Bonjour,
Bonne suite
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
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
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
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
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