Sauvegarde automatique + Numerotation Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
R
Rabbitgay
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 24 avril 2014
Version d'Excel : 2007

Message par Rabbitgay » 24 avril 2014, 10:15

Bonjour, je fais appel à vous pour un problème que je n'arrive pas à résoudre malgres qu'il y est différent sujets similaire au miens.

Je vous explique:
J'ai creer sur un exel un systeme me permettant de faire des devis. Je souhaiterai qu'a chaque ouverture de mon fichier "devis", une sauvegarde se créer dans un autre dossier et qu'une numerotation du devis se fasse.
Pour le moment j'ai reussi à trouver une macro sur internet me permettant à chaque ouverture de numéroter mon devis automatiquement. Mais impossible de reussir à créer une sauvegarde sans que mon fichier "devis" reste 'vierge' à la prochaine ouverture.

Voici ma macro pour le moment:

Private Sub Workbook_Open()
Dim num As Integer
Worksheets("Infos").Range("b11").Select
num = Worksheets("Infos").Range("b11").Value
num = num + 1
Worksheets("Infos").Range("b11").Value = num
End Sub


Si vous pouvez me conseiller cela m'aiderai beaucoup, merci d'avance.
Avatar du membre
uras
Membre habitué
Membre habitué
Messages : 55
Inscrit le : 27 mars 2014
Version d'Excel : 2007

Message par uras » 24 avril 2014, 14:03

Salut,

Ne serait-il pas plus simple de faire une sauvegarde à la fermeture sous le nom "devis<numéro>" et fermer le template vierge sans sauvegarde automatique (comme ça il reste vierge pour la prochaine ouverture)?

A te relire,

cldt,

Uras
R
Rabbitgay
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 24 avril 2014
Version d'Excel : 2007

Message par Rabbitgay » 24 avril 2014, 14:14

Ouai je pense que il faut laisser tomber pour la sauvegarde auto (ça fait 2 heures que je cherche des solutions),
mais il faudrait que je fasse une sauvegarde du document 'vierge' à son ouverture avec la nouvelle numérotation afin que la numérotation automatique puisse se faire à la prochaine ouverture du document vierge.

Je sais pas si tu connais la ligne VBA permettant de faire une sauvegarde auto dès l'ouverture du excel..
Avatar du membre
uras
Membre habitué
Membre habitué
Messages : 55
Inscrit le : 27 mars 2014
Version d'Excel : 2007

Message par uras » 24 avril 2014, 14:46

Re,

Voilà, un code que je viens de faire qui fonctionne (à la femeture de ton template vierge rempli, sauvegarde sous le nom "devis_n2" et ferme le template vierge sans sauvegarde (donc quand tu vas le réouvir, il sera de nouveau vierge).
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim NouveauDevis As Workbook
Dim numero As Integer

numero = 2 'à remplacer par une fonction qui définit le numéro du dévis

    Set NouveauDevis = ActiveWorkbook
    
    Application.DisplayAlerts = False 'Désactive les message d'erreur
    NouveauDevis.SaveAs Filename:="Devis_n" & numero, FileFormat:=xlWorkbookDefault ' <=>Enregistrer sous
    NouveauDevis.Close 'on ferme ce qu'on vient d'enregistrer (le nouveau devis)
    Application.DisplayAlerts = True  ' réactive les messages d'erreur
    
End Sub
A te relire,

cldt,

Uras

Edit : A mettre dans la feuille Workbook à la place de ton ancienne macro.
R
Rabbitgay
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 24 avril 2014
Version d'Excel : 2007

Message par Rabbitgay » 24 avril 2014, 15:31

Ouai merci mais j'arrive pas a faire les modifications nécessaires, je veux bien juste une ligne me permettant une sauvegarde auto sur le même fichier, qu'il ecrase l'ancien direct à l'ouverture.
Avatar du membre
uras
Membre habitué
Membre habitué
Messages : 55
Inscrit le : 27 mars 2014
Version d'Excel : 2007

Message par uras » 24 avril 2014, 16:04

Re,

Propose un exemple en pièce jointe stp. Je pourrais écrire et tester la macro comme ça en plus de mieux comprendre ce que tu veux.

Merci

cldt,

Uras
R
Rabbitgay
Nouveau venu
Nouveau venu
Messages : 7
Inscrit le : 24 avril 2014
Version d'Excel : 2007

Message par Rabbitgay » 24 avril 2014, 16:20

Private Sub Workbook_Open()
Dim num As Integer
Worksheets("Infos").Range("b11").Select
num = Worksheets("Infos").Range("b11").Value
num = num + 1
Worksheets("Infos").Range("b11").Value = num
ActiveWorkbook.Save
End Sub



Pour le moment sa ressemble a sa.

Pour resume, jai ma numerotation qui marche quand jouvre mon document. Après avoir rempli mon devis je l'enregistre sous manuellement.

Je veux juste creer une sauvegarde auto dès que ma numerotation est faite à l'ouverture du document afin que quand je réouvrirai celui-ci pour un autre devis je puisse avoir la nouvelle numerotation qui apparaisse.
J'ai essayé en rajoutant ActiveWorkbook.Save mais j'ai un message d'alerte en fermant excel, alors j'ai cherché en rajoutant Application.DisplayAlerts = false à la fin mais sa ne marche pas..

Je sais pas si j'ai étais clair.

EDIT Je retire tout ce que je viens de dire, la macro marche niquel, j'ai ce que je veux !

Merci ;).
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message