Enregistrer en format pdf sous VBA

Bonjour à tous ,

j'ai un problème que je n'arrive pas à solutionner car je ne comprend ma faute,

quelqu’un pourrais m'aider SVP, je vous en remercie d'avance.

Voici le code :

sheets(4).Range("c11") = Me.Label_info.Caption

sheets(4).ExportAsFixedFormat _

Type:=xlTypePDF,  _

Filename:= " C:\Users\Steve\Documents\Gestion des stocks.pdf" & Me.Cbx_fournisseur & "-" Me.Label_info.Caption,  _

openafterpublish = True

Bonjour,

Malheureusement ... il peut y avoir plus d'une erreur ...

surtout compte tenu du très peu de détails que tu donnes ...

La première chose qui surprend ... c'est que tu as placé l'extension pdf ...

en plein mileu de ton instruction ...

Merci james007 de ta réponse rapide voici le nouveau code qui malheureusement ne fonctionne pas

sheets(4).Range("c11") = Me.Label_info.Caption
sheets(4).ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:= " C:\Users\Steve\Documents\Gestion des stocks\" & Me.Cbx_fournisseur & "-" Me.Label_info.Caption, _

openafterpublish = True

Re,

Ce que tu devrais faire ... au strict minimum ...

1. Poster la totalité de ta macro ...

et

2. Indiquer la ligne ou l'instruction qui bloque ...

ok déso , voici ci dessous le macros entier et la ligne qui bloque c'est juste après next ligne +/- vers le milieu

Option Explicit
Public memoire As Integer

Private Sub CommandButton1_Click()
Dim part_name As String
Dim part_prix As Currency

If Me.Cbx_article.ListIndex >= 0 And Me.Txt_nombre <> "" Then

If Me.List_order.ListCount = 20 Then 'si il ya plus de 20 articles
MsgBox "trop d'article pour cette commande il faut créer une autre commande "
Else

'rechercher dans article

  part_name = WorksheetFunction.VLookup(Me.Cbx_article, sheets(2).Range("b:i"), 2, 0)
  part_prix = WorksheetFunction.VLookup(Me.Cbx_article, sheets(2).Range("b:i"), 4, 0)

  'remplire  la zone de liste

With Me.List_order
.AddItem
.List(memoire, 0) = Me.Cbx_article
.List(memoire, 1) = part_name
.List(memoire, 2) = CCur(part_prix)
.List(memoire, 3) = Me.Txt_nombre

End With
memoire = memoire + 1

'vider l'article et le nombre

Me.Cbx_article = ""
Me.Txt_nombre = ""
End If

End If
End Sub

Private Sub CommandButton2_Click()
Dim nombre_ligne As Integer
Dim ligne As Integer
Dim dl As Integer

If Me.List_order.ListCount > 0 And Me.Cbx_fournisseur.ListIndex >= 0 Then
'demander une confirmation de la commande .
If MsgBox(" Voulez-vous passer la commande ?", vbYesNo) = vbYes Then

nombre_ligne = Me.List_order.ListCount - 1
For ligne = 0 To nombre_ligne
sheets(3).ListObjects(1).ListRows.Add
dl = sheets(3).Range("b9999").End(xlUp).Row

'afficher nos information dans la base de donnée order
sheets(3).Range("B" & dl) = Me.Label_info.Caption
sheets(3).Range("C" & dl) = CDate(Now())
sheets(3).Range("D" & dl) = Me.List_order.List(ligne, 0)
sheets(3).Range("E" & dl) = Me.List_order.List(ligne, 1)
sheets(3).Range("G" & dl) = CCur(Me.List_order.List(ligne, 2))
sheets(3).Range("F" & dl) = CInt(Me.List_order.List(ligne, 3))
sheets(3).Range("I" & dl) = Me.Cbx_fournisseur

Next ligne

'Sauvegarder le fichier pdf

sheets(4).Range("c11") = Me.Label_info.Caption

sheets(4).ExportAsFixedFormat _

Type:=xlTypePDF, _

Filename:= " C:\Users\Steve\Documents\Gestion des stocks\" & Me.Cbx_fournisseur & "-" Me.Label_info.Caption, _

openafterpublish = True

sheets(8).Range("d20") = sheets(8).Range("d20") + 1

Unload Add_order

End If

Else
MsgBox "pas de commande disponible"
End If

End Sub

Private Sub Label3_Click()

End Sub

Private Sub Label4_Click()

End Sub

Private Sub Label6_Click()

End Sub

Private Sub List_order_Change()

End Sub

Private Sub List_order_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If MsgBox("Voulez-vous supprimer cette entrée", vbYesNo) = vbYes Then
Me.List_order.RemoveItem Me.List_order.ListIndex

memoire = memoire - 1
End If

End Sub

Private Sub Txt_nombre_Change()

If Not IsNumeric(Txt_nombre) And Txt_nombre <> "" Then
MsgBox "uniquement des chiffres !"
Txt_nombre = ""
End If

End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
Me.Label_info.Caption = sheets(8).Range("e20")

End Sub

Re,

Merci ...

Je vais supposer que tu as déjà vérifié toutes tes variables ...et leur contenu respectif ...

Cela dit ... tu pourrais tester :

'Sauvegarder le fichier pdf
Sheets(4).Range("c11") = Me.Label_info.Caption
Sheets(4).ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=" C:\Users\Steve\Documents\Gestion des stocks\" & Me.Cbx_fournisseur & "-" & Me.Label_info.Caption & ".pdf", _
OpenAfterPublish:=True

En espèrant que cela t'aide

Un tout grand merci james007 cela fonctionne et encore merci de ton professionnalisme

Re,

Content que tout fonctionne ...

Merci pour tes remerciements ...

Rechercher des sujets similaires à "enregistrer format pdf vba"