Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
@Didier03

J'ai compris ton erreur :
Tu as en fait 3 erreurs
1) E6 est au format date
2) E16 est au format date
Il faut modifié E6 et E16 comme expliqué dans mon post précédent

Et 3) C'est cette phrase qui m'a fait comprendre ton erreur

mais quand j'ouvre de nouveau le fichier EXCEL

Le mot de nouveau à fait tilt ..... cela veut dire que tu ouvres le fichier excel et DONC tu es déjà ici :

ThisWorkbook.Path

Et quand tu veux l'enregistrer tu lui donnes ce chemin

ThisWorkbook.Path & "\" & PathToSave & "\" & Filename & ".pdf"
Tu vois le problème .... en clair tu lui dis ceci je veux enregistrer le fichier dans ce chemin

C:\......\2023_MlsP_Fiches Alertes Qualité\2023_MlsP_Fiches Alertes Qualité\123_Tout va bien .pdf

au lieu de ce chemin

C:\......\2023_MlsP_Fiches Alertes Qualité\123_Tout va bien .pdf

Tu vois la différence !!!

Fais ce test tu comprendras encore mieux

MsgBox ThisWorkbook.Path & "\" & PathToSave & "\" & Filename & ".pdf"
MsgBox ThisWorkbook.Path & "\" & Filename & ".pdf"
Si tu enregistres ton fichier excel et PDF dans le dossier ou il est tu n'as pas besoin de "PathToSave"

"ThisWorkbook.Path" est suffisant car c'est le dossier du fichier qui contient ton fichier excel

J’espère avoir été clair dans mon explication..... (Pas trop sur)

@Phil69970
 

Didier03

XLDnaute Junior
le seul truc que je ne comprend pas bien tu mets ces deux lignes

MsgBox ThisWorkbook.Path & "\" & PathToSave & "\" & Filename & ".pdf"
MsgBox ThisWorkbook.Path & "\" & Filename & ".pdf"
faut que je les intègre dans la macro ?
 

Phil69970

XLDnaute Barbatruc
Re

VB:
Filename = Sheets("Quality Alert").Cells(6, 5) & "_" & Sheets("Quality Alert").Cells(16, 5)

'*********

'==> ICI
MsgBox ThisWorkbook.Path & "\" & PathToSave & "\" & Filename & ".pdf"
MsgBox ThisWorkbook.Path & "\" & Filename & ".pdf"
'********

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & PathToSave & "\" & Filename & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, OpenAfterPublish:=True

@Phil69970
 

Phil69970

XLDnaute Barbatruc
Re

En fait

MsgBox ThisWorkbook.Path & "\" & PathToSave & "\" & Filename & ".pdf"
MsgBox ThisWorkbook.Path & "\" & Filename & ".pdf"

Permet juste de te montrer ce qu'excel voit et essaye de faire

Une fois que tu auras compris tu pourras modifier ton fichier en conséquence et si tu n'y arrives pas je le ferais.

Perso je trouve plus enrichissant si tu le fais toi même surtout que tu as l'air de chercher à comprendre.

@Phil69970
 

Didier03

XLDnaute Junior
oui je suis d'accord avec toi , je préfère le faire car cela m'intéresse beaucoup et comme on utilise beaucoup
ces macros , du coup je me suis mis à essayer de comprendre ce langage et la création aussi et ça m'intéresse vraiment
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…