Microsoft 365 sauvegarde par VBA

Didier03

XLDnaute Junior
Bonjour tout le monde , voilà j'ai créé une macro avec un bouton qui enregistre une feuille excel en XLSM et , en même temps cela créer la même feuille en PDF. cela donne ça;

Sub SaveToPDF()
ActualYear = Year(Now())
FolderName = "_MlsP_Fiches Alertes Qualité"
PathToSave = ActualYear & FolderName
Filename = Sheets("Quality Alert").Cells(6, 5) & "_" & Sheets("Quality Alert").Cells(16, 5)
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & PathToSave & "\" & Filename & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, OpenAfterPublish:=True

End Sub

Sub SaveToXls()
ActualYear = Year(Now())
FolderName = "_MlsP_Fiches Alertes Qualité"
PathToSave = ActualYear & FolderName
Filename = Sheets("Quality Alert").Cells(6, 5) & "_" & Sheets("Quality Alert").Cells(16, 5)
Fichier = Filename & ".xlsm"
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & PathToSave & "\" & Fichier

End Sub

après on peut rouvrir le fichier excel enregistré et rajouté des informations mais en appuyant sur le bouton pour enregistrer une nouvelle fois cela me bloque car cela me dit que le fichier existe déjà

cela veut dire qu'avec cette macro je ne peut pas enregistrer les modif que j'ai faite et remplacer aussi le PDF

qu'est ce qu'il faudrait que je rajoute sur la macro pour que cela puisse modifier les fichiers existants, voir les remplacer

j'espère que vous comprendrez ma demande


merci beaucoup d'avance
 

Phil69970

XLDnaute Barbatruc
Re

Si par macro tu enregistres le fichier en XLSM en début et fin de macro tu fais pareil et l'enregistrement se fera en écrasant le fichier existant sans avertissement

Au début de la macro qui enregistre
Application.DisplayAlerts = False

...... Le code de ta macro

A la fin de cette même macro
Application.DisplayAlerts = True

@Phil69970
 

Didier03

XLDnaute Junior
ah j'ai un petit souci, cela me met ,

erreur d'execution 1004: document non enregistré.Le document est peut être ouvert ou une erreur s'est produite lors de l'enregistrement
ça beug à ce niveau
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & PathToSave & "\" & Filename & ".pdf", Quality:=xlQualityStandard, IncludeDocPropert
 

Phil69970

XLDnaute Barbatruc
Re
@Didier03

Chez moi cela fonctionne bien
J'ai ouvert ton fichier et j'ai lancé les macros :

SaveToPDF et SaveToXls

J'ai obtenu ceci :

1682594191247.png


Puis 5 minutes après sans fermer excel j'ai relancé les 2 macros et j'ai eu ceci sans aucun message

1682594330717.png


Tu remarqueras que les 2 fichiers ont pour nom "_" et c'est normal car il y a rien en E6 et E16

Par contre la cellule E6 est formaté comme une date donc des que tu mets un numéro excel le transforme en date et PLANTAGE immédiat

1682594754440.png


1682594901902.png


Par contre si tu mets la cellule E6 au format standard

1682594974530.png


Tu obtiens ceci
1682595117593.png


1682595065818.png


Je te laisse faire la modif sur ton fichier !!!

1682595208405.png


Et tout fonctionnera !!! C'est magique ... ;)

Merci de ton retour

@Phil69970
 

Didier03

XLDnaute Junior
Bon faut que je regarde car cela me plante pareil ..... la première fois ça enregistre nickel , mais quand j'ouvre de nouveau le fichier EXCEL que je modifie ou rajoute un texte et que j'enregistre de nouveau j'ai le même défaut

faut que je regarde quelle bêtise je fais ........
 

Discussions similaires

Statistiques des forums

Discussions
315 127
Messages
2 116 507
Membres
112 765
dernier inscrit
SIDIANW