Exporter un fichier en PDF et enreg sous chemin précis

Bonjour à tous,

Je pense que ce sujet à déjà était ouvert mais je ne trouve absolument pas de réponse à ma question !

J'ai donc créer une grande partie de ce code moi même en apprenant sur le tas à coder.

Je voulais donc arriver à ce que lorsque que j'appuie sur ctrl + t, ma macro s’exécute mais n'ouvre pas la boite de dialogue de mon chemin où je dois simplement cliquer sur "Ok" pour qu'excel enregistre mon fichier en PDF sous ce répertoire.

Ci-dessous mon code :

Sub BCD()

Dim NomDossier As String
Dim CheminDossier As String

CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\"

'.InitialFileName = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES"

'Application.FileDialog(msoFileDialogFolderPicker).Show

If Val(Application.Version) >= 10 Then
       With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = ActiveWorkbook.Path & "\"
        .Show

        If .SelectedItems.Count > 0 Then
           ChoixDossier = "BONS DE COMMANDES"
        Else
           ChoixDossier = "BONS DE COMMANDES"
        End If
       End With
     Else
       ChoixDossier = InputBox("G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\")
     End If

If ActiveCell.Range("D1").Value = "20" Then GoTo 1
If ActiveCell.Range("D1").Value <= 20 Then GoTo 3
If ActiveCell.Range("D1").Value < 21 > 40 Then GoTo 3
If ActiveCell.Range("D1").Value > 48 Then GoTo 3
If ActiveCell.Range("D1").Value = "40" Or "41" Or "42" Or "43" Or "44" Or "45" Or "46" Or "47" Or "48" Then GoTo 2

1
' ImpBcdHMbc Macro
'
' Touche de raccourci du clavier: Ctrl+r
'
ActiveCell.Range("A1:AJ1").Select
    Selection.Copy
    Sheets("PAS TOUCHE").Select
   Range("A6").Select
    ActiveSheet.Paste
    Sheets("Hors MBC Démat").Select
    Application.CutCopyMode = False

 NomDossier = (Range("Num").Value & "_" & Range("Initiales") & "_" & Range("Bat").Value & "_" & Range("Design").Value & "_" & Range("Compt").Value & ".pdf")

CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\"

'MsgBox NomDossier
'MsgBox CheminDossier

ChDir CheminDossier
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        NomDossier, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False        

GoTo 4

2

' Form_Fourniture_Print Macro
' Création du formulaire de demande d'achat dématérialisé
'
' Touche de raccourci du clavier: Ctrl+f
'
' Impression de la fiche de renseignements du technicien au comptable pour l'élaboration du commande dans le cadre
' des marchés à bon de commande de fourniture

ActiveCell.Range("A1:u1").Select
    Selection.Copy
    Sheets("PAS TOUCHE").Select
    Range("A6").Select
    ActiveSheet.Paste
    Sheets("Dmd Achat Fourniture DEMAT").Select
    Application.CutCopyMode = False

NomDossier = (Range("Num").Value & "_" & Range("Initiales") & "_" & Range("Bat").Value & "_" & Range("Design").Value & "_" & Range("Compt").Value & ".pdf")

CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\"

'MsgBox NomDossier
'MsgBox CheminDossier

ChDir CheminDossier
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        NomDossier, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False  

GoTo 4

3

' BcdMBCPrint Macro
' Création de la demande de bon de commande démat MBC
'
' Touche de raccourci du clavier: Ctrl+b
'
ActiveCell.Range("A1:AJ1").Select
   Selection.Copy
    Sheets("PAS TOUCHE").Select
    Range("A6").Select
   ActiveSheet.PasteSpecial xlPasteValuesAndNumberFormats
    Sheets("MBC Démat").Select
    Application.CutCopyMode = False

    NomDossier = (Range("A1").Value & "_" & Range("AO10") & "_" & Range("AX3").Value & "_" & Range("AR9").Value & "_" & Range("AO9").Value & ".pdf")

CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\"

'MsgBox NomDossier
'MsgBox CheminDossier

ChDir CheminDossier
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        NomDossier, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

GoTo 4

4

Shell "explorer.exe " & CheminDossier, 1

Sheets("Commandes").Select

End Sub

Mon soucis proviens du .Show que je ne peux changer.

Sachant que si celui-ci ne s'active pas mon fichier ne s'enregistre pas dans mon dossier ...

Dans l'attente de votre aide,

Bonjour,

Désolé mais sans fichier test difficile de comprendre ce code

-Le chemin est indiqué en dur dès les premières déclarations :

CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\" ...Donc déjà inutile de le répéter X fois.

  • Idem pour les if choix du dossier …. aucun intérêt puisque cela ne va pas servir apparemment
  • Beaucoup trop de lignes inutiles.

Activecell.range(" ").select si c'est pour sélectionner des cellules pourquoi partir de la cellule active

Evites de tout mettre dans la même macro on comprendra peut-être un peut mieux.

Fais une deuxième macro uniquement pour l'enregistrement en pdf.

Ensuite dans ta première macro quand les conditions que je n'ai pas compris à la lecture de ton code

sont remplies alors ajoute la ligne de commande pour lancer la macro 2.

Un fichier test avec les explications de ce que tu souhaites obtenir serait souhaitable.

Bonjour,

Comme je l'ai dit, je suis encore débutant et me suis débrouillé pour que tout cela fonctionne.

J'avais supprimé ce chemin intempestif sur ma fiche test mais en le collant sur le bon classeur cela s'est mis a déconner et en le mettant de nouveau cela a fonctionné.

Mes conditions sont la car en fonction du code métier nous passons d'un MBC (marché à bon de commandes) ou un HMBC(hors marché) ou MBC Fourniture.

Dim NomDossier As String
Dim CheminDossier As String
CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES"

ChDir CheminDossier
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        NomDossier, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

Voilà mon code pour le PDF, il fonctionne mais ne s'enregistre pas sous me chemin. A savoir que je travaille sur un serveur ...

En sois, toutes les données que j'ai entrée sont censés fonctionner mais si sur cette partie du codage :

If Val(Application.Version) >= 10 Then
       With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = ActiveWorkbook.Path & "\"
        .Show

        If .SelectedItems.Count > 0 Then
           ChoixDossier = "BONS DE COMMANDES"
        Else
           ChoixDossier = "BONS DE COMMANDES"
        End If
       End With
     Else
       ChoixDossier = InputBox("G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\")
     End If

Je "gèle" le .Show alors il enregistre les bons dans mes documents et pas dans le répertoire renseigné : "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\"

Mon problème est surtout porté sur ce .Show. En effet, si je ne le laisse pas agir et donc que je ne clique pas sur la terminaisons de mon chemin celui-ci n'est pas validé et le fichier pdf qui en sort ne va pas dans le chemin que j'ai pourtant renseigné.

Je ne peux vous joindre un fichier d'exemple car même compressé il prend trop de place ...

Rechercher des sujets similaires à "exporter fichier pdf enreg chemin precis"