XL 2016 Devis / Facture avec bouton de Sauvegarde en .pdf + archivage

PrY_oO

XLDnaute Nouveau
Bonjour à la communauté,

J'ai pu parcourir les différents posts qui traite ce sujet mais comme toujours, il y a autant de variables que d'utilisateur.
Je vous expose le fichier souhaité.

Je suis traiteur et je souhaiterai via un classeur excel comprenant les feuilles suivantes :
- Devis
- Archives devis
- Facture
-Archive devis
- Base de données

J'ai cherché quelques tutorial et j'arrive a mettre en place un bouton avec macro pour Archiver, remettre à zéro la page et mettre à jour le numéro de facture.
Concernant la sauvegarde en .pdf je nage en eaux troubles.
Et aujourd'hui en voulant retravailler sur mon fichier, mes menus déroulant (basé sur les plages d'info de la feuille "paramètre") n'affiche plus aucune information.

Pourriez-vous m'aider a asainir mon fichier et le rendre opérationnel ?

Merci à tout ceux qui prendront le temps de m'aider
 

Pièces jointes

  • Modele Facture avec archivage et sauv. pdf.xlsm
    30.2 KB · Affichages: 111

frangy

XLDnaute Occasionnel
Corrections du code :
Nom = "Facture" & Range("B6").Value 'Nom de l'onglet à entregistrer
Rep = "C:\Users\maxime\Desktop\SOCIETE\Factures\" ' Chemin du répertoire à adapter depuis votre PC

De plus, j'ai modifié les formules des noms associés aux listes de validation.

Cordialement.
 

Sarmat31

XLDnaute Nouveau
Bonjour,
J'ai un problème similaire. J'ai un classeur excel .xlsm (2016) et des onglets devis, factures, listes devis et liste factures. J'ai réussi à faire un "reset" qui enregistre d'abord dans un autre classeur sans macro eux, soit nommé archive devis ou archive facture, le devis ou la facture établi. Puis qui efface et remet à vide pour les futurs devis et facture. J'espère être claire. Apparemment tout va bien sauf que lors du déroulement de cette macro (ci dessous) j'ai cette fenêtre popup qui s'ouvre systématiquement :
Capture2.JPG

Donc je clique sur oui et la macro finie de s’exécuter normalement.
Ma question pour que ce soit plus propre, y-a-t-il un moyen de ne plus avoir cette fenêtre popup ?

Voici le code en question :
VB:
' Bouton "Validation devis"
Sub validation_devis_Click()
'ote la protection de la feuille
ActiveSheet.Unprotect "nom_de_mon_fichier"

'je supprime le reste qui n'a rien a voir pour simplifier le code
'enregistre le devis dans le fichier "Archive_devis_sms.xls"
Dim fichier_data As Workbook
Dim ws_data As Worksheet

Dim fichier_Archive_devis_nom_de_mon_fichier As Workbook
Dim onglet As Worksheet
Dim ws_liste As Worksheet
Dim chemin_Archive_devis_nom_de_mon_fichier As String

'identifier chemin fichier archive devis !!!! ATTENTION AMODIFIER QUAND DEPLACEMENT DU FICHIER !!!
chemin_Archive_devis_nom_de_mon_fichier = "C:\Users\.........\Archive_Devis_nom_de_mon_fichier.xlsx"

'identifier les fichiers et onglets
Set fichier_data = ActiveWorkbook
Set ws_data = fichier_data.Worksheets("Devis")

Set fichier_Archive_devis_nom_de_mon_fichier = Application.Workbooks.Open(chemin_Archive_devis_nom_de_mon_fichier)
Set ws_liste = fichier_Archive_devis_nom_de_mon_fichier.Worksheets("Liste")

'copier coller l'ongler après l'onglet Liste
ws_data.Copy after:=ws_liste

'copie coller les dates en enlevant la formule aujoudhui()
fichier_Archive_devis_nom_de_mon_fichier.Worksheets(2).Range("h2:h3").Copy
fichier_Archive_devis_nom_de_mon_fichier.Worksheets(2).Range("h2:h3").PasteSpecial Paste:=xlPasteValues

'efface les boutons inutiles dans ce fichier
fichier_Archive_devis_nom_de_mon_fichier.Worksheets(2).Shapes.Range(Array("Quitter_devis")).Select
    Selection.Delete
fichier_Archive_devis_nom_de_mon_fichier.Worksheets(2).Shapes.Range(Array("validation_devis")).Select
    Selection.Delete

'renommer l'onglet
fichier_Archive_devis_nom_de_mon_fichier.Worksheets(2).Name = Range("H1")

'sauvegarde avant de fermer le fichier Archive_Devis_nom_de_mon_fichier.xlsx
With ActiveWorkbook
    .Close savechanges:=True
End With

'enregistre au format PDF le devis
  ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        ignorePrintAreas:=False
        
reverouille la feuille après l'avoir vidée
 ActiveSheet.Protect "nom_de_mon_fichier"

'rend la feuille masquée
Sheets("Devis").Visible = xlSheetVeryHidden
Sheets("Accueil").Activate

Je n'ai mis que la partie du code "incriminé" (pour la partie facture ce sera la même chose).
Merci de vos éclairages ! Si vous voyez une solution merci.
 

Discussions similaires

Réponses
7
Affichages
2 K

Statistiques des forums

Discussions
312 185
Messages
2 086 009
Membres
103 089
dernier inscrit
johnjohn1969