Msgbox "voulez vous sauvegarder", sauvegarde en PDF

Bonjour à tous !

J'aimerais créer une macro qui m'affiche une boite dialogue avec "voulez vous sauvegarder" (oui / non), et qui ensuite enregistre en format PDF seulement la deuxième feuille de calcul (et pas tout le fichier). La difficulté c'est que j'aimerais l'enregistrer dans un dossier et un sous dossier bien précis qui dépendent du nom du fichier (qu'il faudra d'ailleurs renommer dans la macro). Le fichier (soit la deuxième feuille de calcul) doit s'appeler DEV-"le n°du devis"- "la date du devis" (exemple DEV-2-090321 pour le devis n°2 en date du 9 mars 2021.) Le numéro du devis est inscrit en F10 et la date du devis en F11 (sur la deuxième feuille de calcul). J'aimerais enregistrer ce fichier dans le dossier "devis borne" ("/Users/laurianefrancois/Desktop/devisborne/) qui contient des sous dossiers correspondant au mois de l'année (01-21, 02-21, 03-21, 04-21 ... 12-21) et je voudrais que le fichier soit enregistrer dans le dossier correspondant au bon mois. (exemple : le devis avec comme date 9 mars 2021 => dans le dossier /devis borne/03-21/

Aussi (si possible) j'aimerais trouver un moyen pour qu'à chaque fois qu'un devis soit enregistré, le numéro du devis change automatiquement.

Je remercie infiniment l'âme charitable qui acceptera de m'aider !!!

Une novice en VBA

Bonjour,

Sans répondre à votre question, je m'en pose de mon côté :

Pourquoi mettre des fichiers dans des dossiers séparés pour chaque mois ?

Si c'est pour une histoire de tri, alors c'est l'architecture du nom du fichier qu'il faut modifier :

DEV Année Mois Chrono devis du mois :

DEV202103001 avec ici un chrono sur 3 digits

@ bientôt

LouReeD

Bonjour

Pourquoi mettre deux fois la même demande ? --> https://forum.excel-pratique.com/excel/recopier-automatiquement-les-informations-d-un-devis-dans-un-...

@LooReeD : Lol ! même pensée et réponse sans en discuter ensemble...

Crdlt

Merci pour vos réponses. J'ai crée une nouvelle demande car celle-ci était plus spécifique.

J'ai bien suivi vos conseils à tous les deux et j'ai crée la macro suivante :

Sub enregistrementfeuille2PDF()

'Boite de dialogue
If MsgBox("voulez-vous sauvegarder le devis", vbYesNo + vbDefaultButton2) = vbYes Then

'Isoler feuille 2 :
Sheets("Sheet2").Select
Sheets("Sheet2").Copy

'sauvegarde
Dim dossierSauvegarde As String, nomFichier As String, LaDate As String
On Error GoTo fin
With ThisWorkbook.Sheets("sheet2")
LaDate = Format(Date, "yyyyddmm")
dossierSauvegarde = "/Users/laurianefrancois/Desktop/DEVIS Borne/"
nomFichier = "DEV_" & LaDate & ".pdf"
sauvegarde = dossierSauvegarde & "\" & nomFichier
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=sauvegarde, _
Quality:= _
xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With
MsgBox "Le devis a bien été enregistré"
Exit Sub
fin: MsgBox "Problème de sauvegarde ! Le devis n'est pas enregistré"
End If
End Sub

Cependant, la macro ne fonctionne pas :( . Je désespère

Bonjour à tous,

Il y avait un problème de séparateur dans le code. Et malheureusement, avec le on error, impossible de le détecter. Voici un essai :

Sub enregistrementfeuille2PDF()

'Boite de dialogue
If MsgBox("voulez-vous sauvegarder le devis", vbYesNo + vbDefaultButton2) <> vbYes Then exit sub

'Isoler feuille 2 :
with Sheets("Sheet2")
    '.Copy '???
    LaDate = Format(Date, "yyyyddmm")
    dossierSauvegarde = "/Users/laurianefrancois/Desktop/DEVIS Borne/"
    nomFichier = "DEV_" & LaDate & ".pdf"
    sauvegarde = dossierSauvegarde & "/" & nomFichier
    .ExportAsFixedFormat Type:=xlTypePDF, FileName:=sauvegarde, IgnorePrintAreas:=False, _
End With

MsgBox "Le devis a bien été enregistré"

End Sub

Cdlt,

Bonsoir,

pour info, dans les codes, le numéro chrono du devis "dans la journée" à disparu... il n'y a plus que la date...

@ bientôt

LouReeD

Ca fonctionne !!! Merci beaucoup !!!

Dernière petite question et je vous embête plus : Savez vous comment créer une nouvelle cellule, au sein du devis, dans laquelle il y aurait le numéro du devis en question (numéro du dernier devis enregistré +1) ? Le problème c’est que je ne sais pas comment « l’automatiser » (comment faire pour qu’à chaque fois que j’enregistre un devis, le numéro du devis dans mon template s’actualise automatiquement).
Je voudrais commencer par le numéro 1000.

Auriez vous des idées ?

Merci infiniment pour votre aide à tous !

Bonjour,

Voici un exemple à adapter (mettre la bonne référence de cellule) :

Sub enregistrementfeuille2PDF()

'Boite de dialogue
If MsgBox("voulez-vous sauvegarder le devis", vbYesNo + vbDefaultButton2) <> vbYes Then exit sub

'Isoler feuille 2 :
with Sheets("Sheet2")
    '.Copy '???
    LaDate = Format(Date, "yyyyddmm")
    dossierSauvegarde = "/Users/laurianefrancois/Desktop/DEVIS Borne/"
    nomFichier = "DEV_" & LaDate & ".pdf"
    sauvegarde = dossierSauvegarde & "/" & nomFichier
    .ExportAsFixedFormat Type:=xlTypePDF, FileName:=sauvegarde, IgnorePrintAreas:=False
    .range("A1").value = .range("A1").value + 1 '<<<< A1 incrémenté
End With

MsgBox "Le devis a bien été enregistré"

End Sub

Cdlt,

Merci beaucoup !!!!!!

Rechercher des sujets similaires à "msgbox voulez sauvegarder sauvegarde pdf"