XL 2019 enregistrement pdf avec variable et format variable

  • Initiateur de la discussion Initiateur de la discussion sofmat
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sofmat

XLDnaute Junior
Bonjour, Je souhaiterai enregistrer mon fichier excel (excel 2019) en pdf avec des variables. Cependant l'une des variables a 4 chiffres (référence) et je n'arrive pas à l'enregistrer. J'utilise la syntaxe : Range("d7").NumberFormat = "0000" mais cela est incorrect puisque le fichier s'enregistre bien en pdf mais avec le nom "faux". Pouvez-vous m'aider. Merci d'avance.

Sub sauve_fiche_produit_pdf()

texte = Sheets("Fiche produit").Range("d7").NumberFormat = "0000" & " - Fiche produit - " & Range("d8") & " - " & Range("d9").Value & " - " & _
Format(Date, "dd.mm.yyyy") & ".pdf"

chemin = "C:\Users\sophi\Desktop\fiche produit" & "\"

Application.DisplayAlerts = False
ActiveSheet.ExportAsFixedFormat Type:=x1TypePDF, _
Filename:=chemin & texte, _
quality:=x1QualityMinimum, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True

MsgBox ("La fiche produit client a été générée")
End Sub
 

Pièces jointes

Bonjour, le nom devrait être correct en le spécifiant ainsi :
VB:
texte = Format(Sheets("Fiche produit").Range("d7"), "0000") & " - Fiche produit - " & Range("d8") & " - " & Range("d9").Value & " - " & _
              Format(Date, "dd.mm.yyyy") & ".pdf"
 
Excusez-moi, je me permets encore de solliciter votre aide. Si la référence du produit est par ex : 0001-1 : soit la 1ère partie est la référence et la 2ème partie est la quantité d'achat, donc il peut y avoir
0001-1
0001-20 (par 20 pièces par ex)
0001-150 ...
Donc la 1ère partie serait toujours de 4 chiffres puis un tiret et la 2ème partie serait standard)
Pouvez-vous m'aider. Merci d'avance.
 
Bonjour, En fait, la référence du produit peut se composer d'une partie à 4 chiffres, par ex 0001
Mais si ce même article peut se vendre par 2 pièces par ex, la référence devient 0001-2

La syntaxe ci-dessous fonctionne très bien avec 4 chiffres (donc lorsque l'article ne peut être vendu qu'à l'unité) mais lorsque le même article peut être vendu en pack de 2 ou 150..., il faudrait que la variable (d7) puisse s'enregistrer en pdf soit 0001-2 ou juste 0001 s'il n'y a pas de pack. Donc il faut conserver le format de la 1ère partie + tiret + chiffre standard

Dans mon fichier, Le nom enregistré en pdf devrait être :
0001-12 - Fiche produit - CHEMISE&CO - Loana
Et si ce produit n'est vendu qu'à l'unité, le nom serait :
0001 - Fiche produit - CHEMISE&CO - Loana

Je ne sais pas si cela est possible ? Merci beaucoup pour votre aide

Sub sauve_fiche_produit_pdf()

texte = Sheets("Fiche produit").Range("d7").NumberFormat = "0000" & " - Fiche produit - " & Range("d8") & " - " & Range("d9").Value & " - " & _
Format(Date, "dd.mm.yyyy") & ".pdf"

chemin = "C:\Users\sophi\Desktop\fiche produit" & "\"

Application.DisplayAlerts = False
ActiveSheet.ExportAsFixedFormat Type:=x1TypePDF, _
Filename:=chemin & texte, _
quality:=x1QualityMinimum, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True

MsgBox ("La fiche produit client a été générée")
End Sub
 

Pièces jointes

Bonjour à tous,
une proposition suite à la précision du post 6 :
1- dans la feuille catalogue modifier le format de la référence en Texte et modifier les valeurs 1, 2 en 00001, 00002 ...
2- remplacer la formule pour renseigner la variable texte par
VB:
texte = Sheets("Fiche produit").Range("d7").Value & " - Fiche produit - " & Range("d8") & " - " & Range("d9").Value & " - " & Format(Date, "dd.mm.yyyy") & ".pdf"
EDIT : vous n'indiquez pas d'où provient la quantité.
Fait-elle partie de la référence ? Donc c'est ce qui est en colonne A de la feuille Catalogue et que l'on retrouve dans la liste déroulante de la feuille Fiche Produit
Sinon, est-elle saisie ?
EDIT 2 : Le pourquoi d'avoir une référence au format Texte :
ce que vous voyez dans la cellule (son format) est ce qui est réellement saisi.
Et accessoirement, évite dans la formule à "trafiquer" en ajoutant un format
 
Dernière édition:
La syntaxe ci-dessous fonctionne très bien avec 4 chiffres (donc lorsque l'article ne peut être vendu qu'à l'unité) mais lorsque le même article peut être vendu en pack de 2 ou 150..., il faudrait que la variable (d7) puisse s'enregistrer en pdf soit 0001-2 ou juste 0001 s'il n'y a pas de pack. Donc il faut conserver le format de la 1ère partie + tiret + chiffre standard
Comme quoi, une explication à peu près claire dès le départ est quand même beaucoup plus utile qu'un texte nébuleux...

texte = Sheets("Fiche produit").Range("d7").Value & " - Fiche produit - " & Range("d8") & " - " & Range("d9").Value & " - " & Format(Date, "dd.mm.yyyy") & ".pdf"
 
Bonjour à tous,
une proposition suite à la précision du post 6 :
1- dans la feuille catalogue modifier le format de la référence en Texte et modifier les valeurs 1, 2 en 00001, 00002 ...
2- remplacer la formule pour renseigner la variable texte par
VB:
texte = Sheets("Fiche produit").Range("d7").Value & " - Fiche produit - " & Range("d8") & " - " & Range("d9").Value & " - " & Format(Date, "dd.mm.yyyy") & ".pdf"
EDIT : vous n'indiquez pas d'où provient la quantité.
Fait-elle partie de la référence ? Donc c'est ce qui est en colonne A de la feuille Catalogue et que l'on retrouve dans la liste déroulante de la feuille Fiche Produit
Sinon, est-elle saisie ?
EDIT 2 : Le pourquoi d'avoir une référence au format Texte :
ce que vous voyez dans la cellule (son format) est ce qui est réellement saisi.
Et accessoirement, évite dans la formule à "trafiquer" en ajoutant un format
C'est génial ! En fait c'est beaucoup + simple comme ça et cela fonctionne très bien !! Merci beaucoup !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
455
Réponses
3
Affichages
518
Retour